# YAML Test Matrix

--- &test-HS5T
  Title: Spec Example 7.12. Plain Lines
  Tags: [ scalar, spec, upto-1.2, whitespace ]

YAML

1st non-empty

 2nd non-empty 
	3rd non-empty

Expected Events

+STR
+DOC
=VAL :1st non-empty\n2nd non-empty 3rd non-empty
-DOC
-STR

Expected JSON

"1st non-empty\n2nd non-empty 3rd non-empty"

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

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-xs-json

 json_ok

ruby-psych-json

 json_ok

perl-syck-json

 json_diff
"1st non-empty\n2nd non-empty \t3rd non-empty"

java-snakeengine-event

 error
Exception in thread "main" expected '<document start>', but found '<scalar>'
 in reader, line 4, column 2:
    	3rd non-empty
     ^

	at org.snakeyaml.engine.v2.parser.ParserImpl$ParseDocumentStart.produce(ParserImpl.java:292)
	at org.snakeyaml.engine.v2.parser.ParserImpl.lambda$produce$0(ParserImpl.java:185)
	at java.util.Optional.ifPresent(Optional.java:159)
	at org.snakeyaml.engine.v2.parser.ParserImpl.produce(ParserImpl.java:185)
	at org.snakeyaml.engine.v2.parser.ParserImpl.hasNext(ParserImpl.java:210)
	at org.yaml.editor.SnakeEngine2Events.yamlToEvents(SnakeEngine2Events.java:15)
	at org.yaml.editor.SnakeEngine2Events.main(SnakeEngine2Events.java:23)

java-snakeengine-json

 error
Exception in thread "main" while scanning for the next token
found character '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation)
 in 'reader', line 4, column 1:
    	3rd non-empty
    ^

	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:461)
	at org.yaml.snakeyaml.scanner.ScannerImpl.peekToken(ScannerImpl.java:274)
	at org.yaml.snakeyaml.parser.ParserImpl$ParseDocumentEnd.produce(ParserImpl.java:287)
	at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:166)
	at org.yaml.snakeyaml.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:59)
	at org.yaml.snakeyaml.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:45)
	at org.yaml.snakeyaml.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:140)
	at org.yaml.snakeyaml.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:119)
	at org.yaml.snakeyaml.composer.Composer.composeScalarNode(Composer.java:217)
	at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:187)
	at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:116)
	at org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java:135)
	at org.yaml.snakeyaml.Yaml$1.next(Yaml.java:514)
	at org.yaml.editor.Snake2Json.yamlToJson(Snake2Json.java:20)
	at org.yaml.editor.Snake2Json.main(Snake2Json.java:27)

java-snakeyaml-event

 error
Exception in thread "main" while scanning for the next token
found character '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation)
 in 'reader', line 4, column 1:
    	3rd non-empty
    ^

	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:461)
	at org.yaml.snakeyaml.scanner.ScannerImpl.peekToken(ScannerImpl.java:274)
	at org.yaml.snakeyaml.parser.ParserImpl$ParseDocumentEnd.produce(ParserImpl.java:287)
	at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:166)
	at org.yaml.snakeyaml.Yaml$3.hasNext(Yaml.java:677)
	at org.yaml.editor.Snake2Events.yamlToEvents(Snake2Events.java:134)
	at org.yaml.editor.Snake2Events.main(Snake2Events.java:142)

java-snakeyaml-json

 error
Exception in thread "main" while scanning for the next token
found character '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation)
 in 'reader', line 4, column 1:
    	3rd non-empty
    ^

	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:461)
	at org.yaml.snakeyaml.scanner.ScannerImpl.peekToken(ScannerImpl.java:274)
	at org.yaml.snakeyaml.parser.ParserImpl$ParseDocumentEnd.produce(ParserImpl.java:287)
	at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:166)
	at org.yaml.snakeyaml.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:59)
	at org.yaml.snakeyaml.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:45)
	at org.yaml.snakeyaml.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:140)
	at org.yaml.snakeyaml.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:119)
	at org.yaml.snakeyaml.composer.Composer.composeScalarNode(Composer.java:217)
	at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:187)
	at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:116)
	at org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java:135)
	at org.yaml.snakeyaml.Yaml$1.next(Yaml.java:514)
	at org.yaml.editor.Snake2Json.yamlToJson(Snake2Json.java:20)
	at org.yaml.editor.Snake2Json.main(Snake2Json.java:27)

perl-tiny-json

 error
YAML::Tiny failed to classify line '1st non-empty' at /yaml/bin/perl-tiny-json line 12.

perl-tiny-perl

 error
YAML::Tiny failed to classify line '1st non-empty' at /yaml/bin/perl-tiny-perl line 15.

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.

py-pyyaml-event

 error
+STR
+DOC
=VAL :1st non-empty\n2nd non-empty
Traceback (most recent call last):
  File "/yaml/bin/py-pyyaml-event", line 7, in <module>
    for event in yaml.parse(sys.stdin.read()):
  File "/python/lib/python3.7/site-packages/yaml/__init__.py", line 46, in parse
    while loader.check_event():
  File "/python/lib/python3.7/site-packages/yaml/parser.py", line 98, in check_event
    self.current_event = self.state()
  File "/python/lib/python3.7/site-packages/yaml/parser.py", line 193, in parse_document_end
    token = self.peek_token()
  File "/python/lib/python3.7/site-packages/yaml/scanner.py", line 129, in peek_token
    self.fetch_more_tokens()
  File "/python/lib/python3.7/site-packages/yaml/scanner.py", line 260, in fetch_more_tokens
    self.get_mark())
yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<unicode string>", line 4, column 1:
    	3rd non-empty
    ^

py-pyyaml-json

 error
Traceback (most recent call last):
  File "/yaml/bin/py-pyyaml-json", line 19, in <module>
    for doc in yaml.load_all(sys.stdin.read(), Loader=yaml.FullLoader):
  File "/python/lib/python3.7/site-packages/yaml/__init__.py", line 93, in load_all
    yield loader.get_data()
  File "/python/lib/python3.7/site-packages/yaml/constructor.py", line 45, in get_data
    return self.construct_document(self.get_node())
  File "/python/lib/python3.7/site-packages/yaml/composer.py", line 27, in get_node
    return self.compose_document()
  File "/python/lib/python3.7/site-packages/yaml/composer.py", line 58, in compose_document
    self.get_event()
  File "/python/lib/python3.7/site-packages/yaml/parser.py", line 118, in get_event
    self.current_event = self.state()
  File "/python/lib/python3.7/site-packages/yaml/parser.py", line 193, in parse_document_end
    token = self.peek_token()
  File "/python/lib/python3.7/site-packages/yaml/scanner.py", line 129, in peek_token
    self.fetch_more_tokens()
  File "/python/lib/python3.7/site-packages/yaml/scanner.py", line 260, in fetch_more_tokens
    self.get_mark())
yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<unicode string>", line 4, column 1:
    	3rd non-empty
    ^

py-pyyaml-py

 error
Traceback (most recent call last):
  File "/yaml/bin/py-pyyaml-py", line 36, in <module>
    for doc in yaml.load_all(sys.stdin.read(), Loader=yaml.FullLoader):
  File "/python/lib/python3.7/site-packages/yaml/__init__.py", line 93, in load_all
    yield loader.get_data()
  File "/python/lib/python3.7/site-packages/yaml/constructor.py", line 45, in get_data
    return self.construct_document(self.get_node())
  File "/python/lib/python3.7/site-packages/yaml/composer.py", line 27, in get_node
    return self.compose_document()
  File "/python/lib/python3.7/site-packages/yaml/composer.py", line 58, in compose_document
    self.get_event()
  File "/python/lib/python3.7/site-packages/yaml/parser.py", line 118, in get_event
    self.current_event = self.state()
  File "/python/lib/python3.7/site-packages/yaml/parser.py", line 193, in parse_document_end
    token = self.peek_token()
  File "/python/lib/python3.7/site-packages/yaml/scanner.py", line 129, in peek_token
    self.fetch_more_tokens()
  File "/python/lib/python3.7/site-packages/yaml/scanner.py", line 260, in fetch_more_tokens
    self.get_mark())
yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<unicode string>", line 4, column 1:
    	3rd non-empty
    ^

py-ruamel-event

 error
+STR
+DOC
=VAL :1st non-empty\n2nd non-empty
Traceback (most recent call last):
  File "/yaml/bin/py-ruamel-event", line 7, in <module>
    for event in ruamel.yaml.parse(sys.stdin.read()):
  File "/python/lib/python3.7/site-packages/ruamel/yaml/main.py", line 1024, in parse
    while loader._parser.check_event():
  File "/python/lib/python3.7/site-packages/ruamel/yaml/parser.py", line 146, in check_event
    self.current_event = self.state()
  File "/python/lib/python3.7/site-packages/ruamel/yaml/parser.py", line 253, in parse_document_end
    token = self.scanner.peek_token()
  File "/python/lib/python3.7/site-packages/ruamel/yaml/scanner.py", line 188, in peek_token
    self.fetch_more_tokens()
  File "/python/lib/python3.7/site-packages/ruamel/yaml/scanner.py", line 327, in fetch_more_tokens
    self.reader.get_mark(),
ruamel.yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<unicode string>", line 4, column 1:
    	3rd non-empty
    ^ (line: 4)

py-ruamel-json

 error
Traceback (most recent call last):
  File "/yaml/bin/py-ruamel-json", line 19, in <module>
    for doc in ruamel.yaml.load_all(sys.stdin.read(), Loader=ruamel.yaml.Loader):
  File "/python/lib/python3.7/site-packages/ruamel/yaml/main.py", line 1097, in load_all
    yield loader._constructor.get_data()
  File "/python/lib/python3.7/site-packages/ruamel/yaml/constructor.py", line 114, in get_data
    return self.construct_document(self.composer.get_node())
  File "/python/lib/python3.7/site-packages/ruamel/yaml/composer.py", line 66, in get_node
    return self.compose_document()
  File "/python/lib/python3.7/site-packages/ruamel/yaml/composer.py", line 102, in compose_document
    self.parser.get_event()
  File "/python/lib/python3.7/site-packages/ruamel/yaml/parser.py", line 168, in get_event
    self.current_event = self.state()
  File "/python/lib/python3.7/site-packages/ruamel/yaml/parser.py", line 253, in parse_document_end
    token = self.scanner.peek_token()
  File "/python/lib/python3.7/site-packages/ruamel/yaml/scanner.py", line 188, in peek_token
    self.fetch_more_tokens()
  File "/python/lib/python3.7/site-packages/ruamel/yaml/scanner.py", line 327, in fetch_more_tokens
    self.reader.get_mark(),
ruamel.yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<unicode string>", line 4, column 1:
    	3rd non-empty
    ^ (line: 4)

py-ruamel-py

 error
Traceback (most recent call last):
  File "/yaml/bin/py-ruamel-py", line 36, in <module>
    for doc in ruamel.yaml.load_all(sys.stdin.read(), Loader=ruamel.yaml.Loader):
  File "/python/lib/python3.7/site-packages/ruamel/yaml/main.py", line 1097, in load_all
    yield loader._constructor.get_data()
  File "/python/lib/python3.7/site-packages/ruamel/yaml/constructor.py", line 114, in get_data
    return self.construct_document(self.composer.get_node())
  File "/python/lib/python3.7/site-packages/ruamel/yaml/composer.py", line 66, in get_node
    return self.compose_document()
  File "/python/lib/python3.7/site-packages/ruamel/yaml/composer.py", line 102, in compose_document
    self.parser.get_event()
  File "/python/lib/python3.7/site-packages/ruamel/yaml/parser.py", line 168, in get_event
    self.current_event = self.state()
  File "/python/lib/python3.7/site-packages/ruamel/yaml/parser.py", line 253, in parse_document_end
    token = self.scanner.peek_token()
  File "/python/lib/python3.7/site-packages/ruamel/yaml/scanner.py", line 188, in peek_token
    self.fetch_more_tokens()
  File "/python/lib/python3.7/site-packages/ruamel/yaml/scanner.py", line 327, in fetch_more_tokens
    self.reader.get_mark(),
ruamel.yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<unicode string>", line 4, column 1:
    	3rd non-empty
    ^ (line: 4)

raku-yamlish-json

 error
Couldn't parse YAML
  in sub load-yamls at /raku/sources/44795C7AB0F35700F4CA9C3E2CC5C924EE4C608F (YAMLish) line 959
  in block <unit> at /yaml/bin/raku-yamlish-json line 6

raku-yamlish-raku

 error
Couldn't parse YAML
  in sub load-yamls at /raku/sources/44795C7AB0F35700F4CA9C3E2CC5C924EE4C608F (YAMLish) line 959
  in block <unit> at /yaml/bin/raku-yamlish-raku line 6

hs-reference-yeast

 na
Line  Col Char Byte Token|Content
   1    0    0    0 +DOC |
   1    0    0    0 +NODE|
   1    0    0    0 +VAL |
   1    0    0    0 =TEXT|1st.non-empty
   1   13   13   13 =EOL |\x0a
   2    0   14   14 =NEWL|\x0a
   3    0   15   15 =WSPC|.
   3    1   16   16 =TEXT|2nd.non-empty
   3   14   29   29 =WSPC|.
   3   15   30   30 =FOLD|\x0a
   4    0   31   31 =WSPC|\x09
   4    1   32   32 =TEXT|3rd.non-empty
   4   14   45   45 -VAL |
   4   14   45   45 -NODE|
   4   14   45   45 =EOL |\x0a
   5    0   46   46 -DOC |

perl-pp-perl

 na
'1st non-empty
2nd non-empty 3rd non-empty'

perl-pplibyaml-perl

 na
'1st non-empty
2nd non-empty 3rd non-empty'

perl-syck-perl

 na
'1st non-empty
2nd non-empty 	3rd non-empty'

perl-xs-perl

 na
'1st non-empty
2nd non-empty 3rd non-empty'