# YAML Test Matrix

--- &test-K54U
  Title: Tab after document header
  Tags: [ header, whitespace ]

YAML

---	scalar

Expected Events

+STR
+DOC ---
=VAL :scalar
-DOC
-STR

Expected JSON

"scalar"

cpp-event

 ok

hs-yaml-event

 ok

js-event

 ok

libyaml-event

 ok

nimyaml-event

 ok

perl5-pegex-event

 ok

perl5-pp-event

 ok

hs-yaml-json

 json_ok

js-json

 json_ok

js-yaml-json

 json_ok

luajit-json

 json_ok

perl5-pm-json

 json_ok

perl5-pp-json

 json_ok

perl5-tiny-json

 json_ok

perl5-xs-json

 json_ok

ruby-json

 json_ok

perl5-syck-json

 json_diff
"---\tscalar"

java-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 1, column 4:
    ---	scalar
       ^

	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:419)
	at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:227)
	at org.yaml.snakeyaml.parser.ParserImpl$ParseDocumentContent.produce(ParserImpl.java:272)
	at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)
	at org.yaml.snakeyaml.Yaml$3.hasNext(Yaml.java:711)
	at org.yaml.editor.Snake2Events.yamlToEvents(Snake2Events.java:111)
	at org.yaml.editor.Snake2Events.main(Snake2Events.java:119)

java-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 1, column 4:
    ---	scalar
       ^

	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:419)
	at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:227)
	at org.yaml.snakeyaml.parser.ParserImpl$ParseDocumentContent.produce(ParserImpl.java:272)
	at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)
	at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148)
	at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:124)
	at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:85)
	at org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java:123)
	at org.yaml.snakeyaml.Yaml$1.next(Yaml.java:547)
	at org.yaml.editor.Snake2Json.yamlToJson(Snake2Json.java:18)
	at org.yaml.editor.Snake2Json.main(Snake2Json.java:25)

pyyaml-event

 error
+STR
+DOC ---
Traceback (most recent call last):
  File "/bin/pyyaml-event", line 10, 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 210, in parse_document_content
    DocumentStartToken, DocumentEndToken, StreamEndToken):
  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 260, in fetch_more_tokens
    % ch.encode('utf-8'), self.get_mark())
yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<string>", line 1, column 4:
    ---	scalar
       ^

pyyaml-json

 error
Traceback (most recent call last):
  File "/bin/pyyaml-json", line 19, in <module>
    for doc in yaml.load_all(sys.stdin.read()):
  File "/lib/python2.7/site-packages/yaml/__init__.py", line 90, in load_all
    yield loader.get_data()
  File "/lib/python2.7/site-packages/yaml/constructor.py", line 33, in get_data
    return self.construct_document(self.get_node())
  File "/lib/python2.7/site-packages/yaml/composer.py", line 27, in get_node
    return self.compose_document()
  File "/lib/python2.7/site-packages/yaml/composer.py", line 55, in compose_document
    node = self.compose_node(None, None)
  File "/lib/python2.7/site-packages/yaml/composer.py", line 64, in compose_node
    if self.check_event(AliasEvent):
  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 210, in parse_document_content
    DocumentStartToken, DocumentEndToken, StreamEndToken):
  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 260, in fetch_more_tokens
    % ch.encode('utf-8'), self.get_mark())
yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<string>", line 1, column 4:
    ---	scalar
       ^

pyyaml-py

 error
Traceback (most recent call last):
  File "/bin/pyyaml-py", line 36, in <module>
    for doc in yaml.load_all(sys.stdin.read()):
  File "/lib/python2.7/site-packages/yaml/__init__.py", line 90, in load_all
    yield loader.get_data()
  File "/lib/python2.7/site-packages/yaml/constructor.py", line 33, in get_data
    return self.construct_document(self.get_node())
  File "/lib/python2.7/site-packages/yaml/composer.py", line 27, in get_node
    return self.compose_document()
  File "/lib/python2.7/site-packages/yaml/composer.py", line 55, in compose_document
    node = self.compose_node(None, None)
  File "/lib/python2.7/site-packages/yaml/composer.py", line 64, in compose_node
    if self.check_event(AliasEvent):
  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 210, in parse_document_content
    DocumentStartToken, DocumentEndToken, StreamEndToken):
  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 260, in fetch_more_tokens
    % ch.encode('utf-8'), self.get_mark())
yaml.scanner.ScannerError: while scanning for the next token
found character '\t' that cannot start any token
  in "<string>", line 1, column 4:
    ---	scalar
       ^

ruamel-event

 error
+STR
+DOC ---
Traceback (most recent call last):
  File "/bin/ruamel-event", line 10, in <module>
    for event in ruamel.yaml.parse(sys.stdin.read()):
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/main.py", line 880, in parse
    while loader._parser.check_event():
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 141, in check_event
    self.current_event = self.state()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 259, in parse_document_content
    DirectiveToken, DocumentStartToken, DocumentEndToken, StreamEndToken
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 169, in check_token
    self.fetch_more_tokens()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 321, 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 "<byte string>", line 1, column 4:
    ---	scalar
       ^ (line: 1)

ruamel-json

 error
Traceback (most recent call last):
  File "/bin/ruamel-json", line 19, in <module>
    for doc in ruamel.yaml.load_all(sys.stdin.read(), Loader=ruamel.yaml.Loader):
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/main.py", line 949, in load_all
    yield loader._constructor.get_data()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/constructor.py", line 101, in get_data
    return self.construct_document(self.composer.get_node())
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 68, in get_node
    return self.compose_document()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 101, in compose_document
    node = self.compose_node(None, None)
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 111, in compose_node
    if self.parser.check_event(AliasEvent):
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 141, in check_event
    self.current_event = self.state()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 259, in parse_document_content
    DirectiveToken, DocumentStartToken, DocumentEndToken, StreamEndToken
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 169, in check_token
    self.fetch_more_tokens()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 321, 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 "<byte string>", line 1, column 4:
    ---	scalar
       ^ (line: 1)

ruamel-py

 error
Traceback (most recent call last):
  File "/bin/ruamel-py", line 36, in <module>
    for doc in ruamel.yaml.load_all(sys.stdin.read(), Loader=ruamel.yaml.Loader):
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/main.py", line 949, in load_all
    yield loader._constructor.get_data()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/constructor.py", line 101, in get_data
    return self.construct_document(self.composer.get_node())
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 68, in get_node
    return self.compose_document()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 101, in compose_document
    node = self.compose_node(None, None)
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/composer.py", line 111, in compose_node
    if self.parser.check_event(AliasEvent):
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 141, in check_event
    self.current_event = self.state()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/parser.py", line 259, in parse_document_content
    DirectiveToken, DocumentStartToken, DocumentEndToken, StreamEndToken
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 169, in check_token
    self.fetch_more_tokens()
  File "/usr/local/lib/python2.7/dist-packages/ruamel/yaml/scanner.py", line 321, 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 "<byte string>", line 1, column 4:
    ---	scalar
       ^ (line: 1)

perl5-pm-pl

 na
'scalar'

perl5-pp-pl

 na
'scalar'

perl5-syck-pl

 na
'---	scalar'

perl5-tiny-pl

 na
'scalar'

perl5-xs-pl

 na
'scalar'