# YAML Test Matrix

--- &test-CN3R
  Title: Various location of anchors in flow sequence
  Tags: [ anchor, flow, mapping, sequence ]

YAML

&flowseq [
 a: b,
 &c c: d,
 { &e e: f },
 &g { g: h }
]

Expected Events

+STR
+DOC
+SEQ [] &flowseq
+MAP {}
=VAL :a
=VAL :b
-MAP
+MAP {}
=VAL &c :c
=VAL :d
-MAP
+MAP {}
=VAL &e :e
=VAL :f
-MAP
+MAP {} &g
=VAL :g
=VAL :h
-MAP
-SEQ
-DOC
-STR

Expected JSON

[
{
"a": "b"
},
{
"c": "d"
},
{
"e": "f"
},
{
"g": "h"
}
]

c-libfyaml-event

 ok

c-libyaml-event

 ok

cpp-rapidyaml-event

 ok

cpp-yamlcpp-event

 ok

dotnet-yamldotnet-event

 ok

hs-hsyaml-event

 ok

js-yaml-event

 ok

nim-nimyaml-event

 ok

perl-pp-event

 ok

perl-refparser-event

 ok

py-pyyaml-event

 ok

py-ruamel-event

 ok

rust-yamlrust-event

 ok

c-libfyaml-json

 json_ok

dotnet-yamldotnet-json

 json_ok

go-yaml-json

 json_ok

hs-hsyaml-json

 json_ok

js-jsyaml-json

 json_ok

js-yaml-json

 json_ok

lua-lyaml-json

 json_ok

perl-pp-json

 json_ok

perl-pplibyaml-json

 json_ok

perl-syck-json

 json_ok

perl-xs-json

 json_ok

py-pyyaml-json

 json_ok

py-ruamel-json

 json_ok

ruby-psych-json

 json_ok

perl-yaml-json

 error
YAML Error: Expected separator '---'
   Code: YAML_PARSE_ERR_NO_SEPARATOR
   Line: 1
   Document: 2
 at /perl5/lib/perl5/YAML/Loader.pm line 88.

perl-yaml-perl

 error
YAML Error: Expected separator '---'
   Code: YAML_PARSE_ERR_NO_SEPARATOR
   Line: 1
   Document: 2
 at /perl5/lib/perl5/YAML/Loader.pm line 88.

hs-reference-yeast

 na
Line  Col Char Byte Token|Content
   1    0    0    0 +DOC |
   1    0    0    0 +NODE|
   1    0    0    0 +PROP|
   1    0    0    0 +ANCH|
   1    0    0    0 =SYNX|&
   1    1    1    1 =META|flowseq
   1    8    8    8 -ANCH|
   1    8    8    8 -PROP|
   1    8    8    8 =WSPC|.
   1    9    9    9 +SEQ |
   1    9    9    9 =SYNX|[
   1   10   10   10 =EOL |\x0a
   2    0   11   11 =WSPC|.
   2    1   12   12 +MAP |
   2    1   12   12 +PAIR|
   2    1   12   12 +NODE|
   2    1   12   12 +VAL |
   2    1   12   12 =TEXT|a
   2    2   13   13 -VAL |
   2    2   13   13 -NODE|
   2    2   13   13 =SYNX|:
   2    3   14   14 =WSPC|.
   2    4   15   15 +NODE|
   2    4   15   15 +VAL |
   2    4   15   15 =TEXT|b
   2    5   16   16 -VAL |
   2    5   16   16 -NODE|
   2    5   16   16 -PAIR|
   2    5   16   16 -MAP |
   2    5   16   16 =SYNX|,
   2    6   17   17 =EOL |\x0a
   3    0   18   18 =WSPC|.
   3    1   19   19 +MAP |
   3    1   19   19 +PAIR|
   3    1   19   19 +NODE|
   3    1   19   19 +PROP|
   3    1   19   19 +ANCH|
   3    1   19   19 =SYNX|&
   3    2   20   20 =META|c
   3    3   21   21 -ANCH|
   3    3   21   21 -PROP|
   3    3   21   21 =WSPC|.
   3    4   22   22 +VAL |
   3    4   22   22 =TEXT|c
   3    5   23   23 -VAL |
   3    5   23   23 -NODE|
   3    5   23   23 =SYNX|:
   3    6   24   24 =WSPC|.
   3    7   25   25 +NODE|
   3    7   25   25 +VAL |
   3    7   25   25 =TEXT|d
   3    8   26   26 -VAL |
   3    8   26   26 -NODE|
   3    8   26   26 -PAIR|
   3    8   26   26 -MAP |
   3    8   26   26 =SYNX|,
   3    9   27   27 =EOL |\x0a
   4    0   28   28 =WSPC|.
   4    1   29   29 +NODE|
   4    1   29   29 +MAP |
   4    1   29   29 =SYNX|{
   4    2   30   30 =WSPC|.
   4    3   31   31 +PAIR|
   4    3   31   31 +NODE|
   4    3   31   31 +PROP|
   4    3   31   31 +ANCH|
   4    3   31   31 =SYNX|&
   4    4   32   32 =META|e
   4    5   33   33 -ANCH|
   4    5   33   33 -PROP|
   4    5   33   33 =WSPC|.
   4    6   34   34 +VAL |
   4    6   34   34 =TEXT|e
   4    7   35   35 -VAL |
   4    7   35   35 -NODE|
   4    7   35   35 =SYNX|:
   4    8   36   36 =WSPC|.
   4    9   37   37 +NODE|
   4    9   37   37 +VAL |
   4    9   37   37 =TEXT|f
   4   10   38   38 -VAL |
   4   10   38   38 -NODE|
   4   10   38   38 -PAIR|
   4   10   38   38 =WSPC|.
   4   11   39   39 =SYNX|}
   4   12   40   40 -MAP |
   4   12   40   40 -NODE|
   4   12   40   40 =SYNX|,
   4   13   41   41 =EOL |\x0a
   5    0   42   42 =WSPC|.
   5    1   43   43 +NODE|
   5    1   43   43 +PROP|
   5    1   43   43 +ANCH|
   5    1   43   43 =SYNX|&
   5    2   44   44 =META|g
   5    3   45   45 -ANCH|
   5    3   45   45 -PROP|
   5    3   45   45 =WSPC|.
   5    4   46   46 +MAP |
   5    4   46   46 =SYNX|{
   5    5   47   47 =WSPC|.
   5    6   48   48 +PAIR|
   5    6   48   48 +NODE|
   5    6   48   48 +VAL |
   5    6   48   48 =TEXT|g
   5    7   49   49 -VAL |
   5    7   49   49 -NODE|
   5    7   49   49 =SYNX|:
   5    8   50   50 =WSPC|.
   5    9   51   51 +NODE|
   5    9   51   51 +VAL |
   5    9   51   51 =TEXT|h
   5   10   52   52 -VAL |
   5   10   52   52 -NODE|
   5   10   52   52 -PAIR|
   5   10   52   52 =WSPC|.
   5   11   53   53 =SYNX|}
   5   12   54   54 -MAP |
   5   12   54   54 -NODE|
   5   12   54   54 =EOL |\x0a
   6    0   55   55 =SYNX|]
   6    1   56   56 -SEQ |
   6    1   56   56 -NODE|
   6    1   56   56 =EOL |\x0a
   7    0   57   57 -DOC |

perl-pp-perl

 na
[
  {
    'a' => 'b'
  },
  {
    'c' => 'd'
  },
  {
    'e' => 'f'
  },
  {
    'g' => 'h'
  }
]

perl-pplibyaml-perl

 na
[
  {
    'a' => 'b'
  },
  {
    'c' => 'd'
  },
  {
    'e' => 'f'
  },
  {
    'g' => 'h'
  }
]

perl-syck-perl

 na
[
  {
    'a' => 'b'
  },
  {
    'c' => 'd'
  },
  {
    'e' => 'f'
  },
  {
    'g' => 'h'
  }
]

perl-xs-perl

 na
[
  {
    'a' => 'b'
  },
  {
    'c' => 'd'
  },
  {
    'e' => 'f'
  },
  {
    'g' => 'h'
  }
]

py-pyyaml-py

 na
[{'a': 'b'}, {'c': 'd'}, {'e': 'f'}, {'g': 'h'}]

py-ruamel-py

 na
[{'a': 'b'}, {'c': 'd'}, {'e': 'f'}, {'g': 'h'}]

perl-tiny-json

 ni
YAML::Tiny failed to classify line '&flowseq [' at /yaml/bin/perl-tiny-json line 12.

perl-tiny-perl

 ni
YAML::Tiny failed to classify line '&flowseq [' at /yaml/bin/perl-tiny-perl line 15.