YAML Framework Matrix

Test #2SXE - Anchors With Colon in Name

YAML

&a: key: &a value
foo:
  *a:

Expected Events

+STR
+DOC
+MAP
=VAL &a: :key
=VAL &a :value
=VAL :foo
=ALI *a:
-MAP
-DOC
-STR

Expected JSON



cpp-event

 ok

java-event

 error
Exception in thread "main" mapping values are not allowed here
 in 'reader', line 1, column 8:
    &a: key: &a value
           ^

	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchValue(ScannerImpl.java:872)
	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:360)
	at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:226)
	at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:557)
	at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:157)
	at org.yaml.snakeyaml.Yaml$3.hasNext(Yaml.java:685)
	at org.yaml.editor.Snake2Events.yamlToEvents(Snake2Events.java:109)
	at org.yaml.editor.Snake2Events.main(Snake2Events.java:117)

java-json

 error
Exception in thread "main" mapping values are not allowed here
 in 'reader', line 1, column 8:
    &a: key: &a value
           ^

	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchValue(ScannerImpl.java:872)
	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:360)
	at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:226)
	at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:557)
	at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:157)
	at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:147)
	at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:227)
	at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:154)
	at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122)
	at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:84)
	at org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java:105)
	at org.yaml.snakeyaml.Yaml$1.next(Yaml.java:526)
	at org.yaml.editor.Snake2Json.yamlToJson(Snake2Json.java:18)
	at org.yaml.editor.Snake2Json.main(Snake2Json.java:25)

js-yaml-json

 error
YAMLException: end of the stream or a document separator is expected at line 1, column 8:
    &a: key: &a value
           ^
    at generateError (/node_modules/js-yaml/lib/js-yaml/loader.js:162:10)
    at throwError (/node_modules/js-yaml/lib/js-yaml/loader.js:168:9)
    at readDocument (/node_modules/js-yaml/lib/js-yaml/loader.js:1513:5)
    at loadDocuments (/node_modules/js-yaml/lib/js-yaml/loader.js:1549:5)
    at Object.loadAll (/node_modules/js-yaml/lib/js-yaml/loader.js:1557:19)
    at Object.<anonymous> (/bin/js-yaml-json:6:6)
    at Object.<anonymous> (/bin/js-yaml-json:3:1)
    at Module._compile (module.js:410:26)
    at Object.exports.run (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:173:23)
    at compileScript (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:224:29)
    at compilePath (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:174:14)
    at Object.exports.run (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:98:20)
    at Object.<anonymous> (/usr/local/lib/node_modules/coffee-script/bin/coffee:7:41)
    at Module._compile (module.js:410:26)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Function.Module.runMain (module.js:442:10)
    at startup (node.js:136:18)
    at node.js:966:3

libyaml-event

 error
Parse error: mapping values are not allowed in this context
+STR
+DOC
+MAP
=VAL &a :
=VAL :key

luajit-json

 error
luajit: mapping values are not allowed in this context at document: 1, line: 1, column: 8

stack traceback:
	[C]: in function 'load'
	/bin/luajit-json:6: in main chunk
	[C]: at 0x004044a0

nimyaml-event

 ok

perl5-pegex-event

 error
Maximum parsing rules reached (1000)

perl5-pm-json

 n/a
{"":"key: &a value","foo":{"":null}}

perl5-pm-pl

 n/a
{
  '' => 'key: &a value',
  'foo' => {
             '' => undef
           }
}

perl5-pp-event

 ok

perl5-pp-json

 n/a
{
   "foo" : null,
   "key" : "value"
}

perl5-pp-pl

 n/a
{
  'foo' => undef,
  'key' => 'value'
}

perl5-syck-json

 error
Syck parser (line 1, column 3): syntax error 

perl5-syck-pl

 error
Syck parser (line 1, column 3): syntax error 

perl5-tiny-json

 error
YAML::Tiny found illegal characters in plain scalar: 'key: &a value' 

perl5-tiny-pl

 error
YAML::Tiny found illegal characters in plain scalar: 'key: &a value' 

perl5-xs-json

 error
Use of uninitialized value in subroutine entry 

perl5-xs-pl

 error
Use of uninitialized value in subroutine entry 

pyyaml-event

 error
+STR
+DOC
+MAP
=VAL &a :
=VAL :key
Traceback (most recent call last):
  File "/bin/pyyaml-event", line 7, in <module>
    for event in yaml.parse(sys.stdin.read()):
  File "/lib/python2.7/site-packages/yaml/__init__.py", line 36, in parse
    while loader.check_event():
  File "/lib/python2.7/site-packages/yaml/parser.py", line 98, in check_event
    self.current_event = self.state()
  File "/lib/python2.7/site-packages/yaml/parser.py", line 428, in parse_block_mapping_key
    if self.check_token(KeyToken):
  File "/lib/python2.7/site-packages/yaml/scanner.py", line 116, in check_token
    self.fetch_more_tokens()
  File "/lib/python2.7/site-packages/yaml/scanner.py", line 220, in fetch_more_tokens
    return self.fetch_value()
  File "/lib/python2.7/site-packages/yaml/scanner.py", line 576, in fetch_value
    self.get_mark())
yaml.scanner.ScannerError: mapping values are not allowed here
  in "<string>", line 1, column 8:
    &a: key: &a value
           ^

ruamel-event

 ok

ruby-json

 error
/usr/lib/ruby/2.3.0/psych.rb:380:in `parse': (<unknown>): mapping values are not allowed in this context at line 1 column 8 (Psych::SyntaxError)
	from /usr/lib/ruby/2.3.0/psych.rb:380:in `parse_stream'
	from /usr/lib/ruby/2.3.0/psych.rb:463:in `load_stream'
	from /bin/ruby-json:6:in `<main>'