--- &test-J3BT
Title: Spec Example 5.12. Tabs and Spaces
Tags: [ spec, upto-1.2, whitespace ]
# Tabs and spaces
quoted: "Quoted "
block: |
void main() {
printf("Hello, world!\n");
}
+STR
+DOC
+MAP
=VAL :quoted
=VAL "Quoted \t
=VAL :block
=VAL |void main() {\n\tprintf("Hello, world!\\n");\n}\n
-MAP
-DOC
-STR
{
"block": "void main() {\n\tprintf(\"Hello, world!\\n\");\n}\n",
"quoted": "Quoted \t"
}
json_diff
parse error: Invalid string: control characters from U+0000 through U+001F must be escaped at line 1, column 21
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 3, column 7:
block: |
^
at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:461)
at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:251)
at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:674)
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.composeKeyNode(Composer.java:313)
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:304)
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:289)
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:191)
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)
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 3, column 7:
block: |
^
at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:461)
at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:251)
at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:674)
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)
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 3, column 7:
block: |
^
at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:461)
at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:251)
at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:674)
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.composeKeyNode(Composer.java:313)
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:304)
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:289)
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:191)
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)
error
Syck parser (line 7, column -1): syntax error at /perl5/lib/perl5/x86_64-linux-thread-multi/YAML/Syck.pm line 60, <> line 1.
error
Syck parser (line 7, column -1): syntax error at /perl5/lib/perl5/x86_64-linux-thread-multi/YAML/Syck.pm line 60, <> line 1.
error
YAML Error: Invalid element in map
Code: YAML_LOAD_ERR_BAD_MAP_ELEMENT
Line: 3
Document: 1
at /perl5/lib/perl5/YAML/Loader.pm line 360.
error
YAML Error: Invalid element in map
Code: YAML_LOAD_ERR_BAD_MAP_ELEMENT
Line: 3
Document: 1
at /perl5/lib/perl5/YAML/Loader.pm line 360.
error
+STR
+DOC
+MAP
=VAL :quoted
=VAL "Quoted \t
=VAL :block
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 449, in parse_block_mapping_value
if not self.check_token(KeyToken, ValueToken, BlockEndToken):
File "/python/lib/python3.7/site-packages/yaml/scanner.py", line 116, in check_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 3, column 7:
block: |
^
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 55, in compose_document
node = self.compose_node(None, None)
File "/python/lib/python3.7/site-packages/yaml/composer.py", line 84, in compose_node
node = self.compose_mapping_node(anchor)
File "/python/lib/python3.7/site-packages/yaml/composer.py", line 133, in compose_mapping_node
item_value = self.compose_node(node, item_key)
File "/python/lib/python3.7/site-packages/yaml/composer.py", line 64, in compose_node
if self.check_event(AliasEvent):
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 449, in parse_block_mapping_value
if not self.check_token(KeyToken, ValueToken, BlockEndToken):
File "/python/lib/python3.7/site-packages/yaml/scanner.py", line 116, in check_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 3, column 7:
block: |
^
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 55, in compose_document
node = self.compose_node(None, None)
File "/python/lib/python3.7/site-packages/yaml/composer.py", line 84, in compose_node
node = self.compose_mapping_node(anchor)
File "/python/lib/python3.7/site-packages/yaml/composer.py", line 133, in compose_mapping_node
item_value = self.compose_node(node, item_key)
File "/python/lib/python3.7/site-packages/yaml/composer.py", line 64, in compose_node
if self.check_event(AliasEvent):
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 449, in parse_block_mapping_value
if not self.check_token(KeyToken, ValueToken, BlockEndToken):
File "/python/lib/python3.7/site-packages/yaml/scanner.py", line 116, in check_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 3, column 7:
block: |
^
error
+STR
+DOC
+MAP
=VAL :quoted
=VAL "Quoted \t
=VAL :block
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 630, in parse_block_mapping_value
if self.scanner.check_token(ValueToken):
File "/python/lib/python3.7/site-packages/ruamel/yaml/scanner.py", line 175, in check_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 3, column 7:
block: |
^ (line: 3)
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 99, in compose_document
node = self.compose_node(None, None)
File "/python/lib/python3.7/site-packages/ruamel/yaml/composer.py", line 143, in compose_node
node = self.compose_mapping_node(anchor)
File "/python/lib/python3.7/site-packages/ruamel/yaml/composer.py", line 223, in compose_mapping_node
item_value = self.compose_node(node, item_key)
File "/python/lib/python3.7/site-packages/ruamel/yaml/composer.py", line 113, in compose_node
if self.parser.check_event(AliasEvent):
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 630, in parse_block_mapping_value
if self.scanner.check_token(ValueToken):
File "/python/lib/python3.7/site-packages/ruamel/yaml/scanner.py", line 175, in check_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 3, column 7:
block: |
^ (line: 3)
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 99, in compose_document
node = self.compose_node(None, None)
File "/python/lib/python3.7/site-packages/ruamel/yaml/composer.py", line 143, in compose_node
node = self.compose_mapping_node(anchor)
File "/python/lib/python3.7/site-packages/ruamel/yaml/composer.py", line 223, in compose_mapping_node
item_value = self.compose_node(node, item_key)
File "/python/lib/python3.7/site-packages/ruamel/yaml/composer.py", line 113, in compose_node
if self.parser.check_event(AliasEvent):
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 630, in parse_block_mapping_value
if self.scanner.check_token(ValueToken):
File "/python/lib/python3.7/site-packages/ruamel/yaml/scanner.py", line 175, in check_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 3, column 7:
block: |
^ (line: 3)
na
Line Col Char Byte Token|Content
1 0 0 0 +COMM|
1 0 0 0 =SYNX|#
1 1 1 1 =META|.Tabs.and.spaces
1 17 17 17 -COMM|
1 17 17 17 =EOL |\x0a
2 0 18 18 +DOC |
2 0 18 18 +NODE|
2 0 18 18 +MAP |
2 0 18 18 +PAIR|
2 0 18 18 +NODE|
2 0 18 18 +VAL |
2 0 18 18 =TEXT|quoted
2 6 24 24 -VAL |
2 6 24 24 -NODE|
2 6 24 24 =SYNX|:
2 7 25 25 =WSPC|.
2 8 26 26 +NODE|
2 8 26 26 +VAL |
2 8 26 26 =SYNX|"
2 9 27 27 =TEXT|Quoted.\x09
2 17 35 35 =SYNX|"
2 18 36 36 -VAL |
2 18 36 36 -NODE|
2 18 36 36 =EOL |\x0a
3 0 37 37 -PAIR|
3 0 37 37 +PAIR|
3 0 37 37 +NODE|
3 0 37 37 +VAL |
3 0 37 37 =TEXT|block
3 5 42 42 -VAL |
3 5 42 42 -NODE|
3 5 42 42 =SYNX|:
3 6 43 43 +NODE|
3 6 43 43 =WSPC|\x09
3 7 44 44 +VAL |
3 7 44 44 =SYNX||
3 8 45 45 =EOL |\x0a
4 0 46 46 =DENT|..
4 2 48 48 =TEXT|void.main().{
4 15 61 61 =NEWL|\x0a
5 0 62 62 =DENT|..
5 2 64 64 =TEXT|\x09printf("Hello,.world!\x5cn");
5 29 91 91 =NEWL|\x0a
6 0 92 92 =DENT|..
6 2 94 94 =TEXT|}
6 3 95 95 =NEWL|\x0a
7 0 96 96 -VAL |
7 0 96 96 -NODE|
7 0 96 96 -PAIR|
7 0 96 96 -MAP |
7 0 96 96 -NODE|
7 0 96 96 -DOC |
na
{
'block' => 'void main() {
printf("Hello, world!\\n");
}
',
'quoted' => 'Quoted '
}
na
{
'block' => 'void main() {
printf("Hello, world!\\n");
}
',
'quoted' => 'Quoted '
}
na
{
'block' => 'void main() {
printf("Hello, world!\\n");
}
',
'quoted' => 'Quoted '
}
na
{
'block' => 'void main() {
printf("Hello, world!\\n");
}
',
'quoted' => 'Quoted '
}
na
{
block => "void main() \{\n\tprintf(\"Hello, world!\\n\");\n}\n".Str,
quoted => "Quoted \t".Str,
}