# YAML Test Matrix

--- &test-3UYS
  Title: Escaped slash in double quotes
  Tags: [ double ]

YAML

escaped slash: "a\/b"

Expected Events

+STR
+DOC
+MAP
=VAL :escaped slash
=VAL "a/b
-MAP
-DOC
-STR

Expected JSON

{
"escaped slash": "a/b"
}

c-libfyaml-event

 ok

c-libyaml-event

 ok

cpp-rapidyaml-event

 ok

cpp-yamlcpp-event

 ok

dotnet-yamldotnet-event

 ok

hs-hsyaml-event

 ok

java-snakeengine-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

c-libfyaml-json

 json_ok

dotnet-yamldotnet-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

py-pyyaml-json

 json_ok

py-ruamel-json

 json_ok

raku-yamlish-json

 json_ok

ruby-psych-json

 json_ok

perl-syck-json

 json_diff
{
  "escaped slash": "a\\/b"
}

perl-tiny-json

 json_diff
{
  "escaped slash": "a\\/b"
}

perl-yaml-json

 json_diff
{
  "escaped slash": "a\\/b"
}

go-yaml-json

 error
yaml: found unknown escape character

java-snakeengine-json

 error
Exception in thread "main" while scanning a double-quoted scalar
 in 'reader', line 1, column 16:
    escaped slash: "a\/b"
                   ^
found unknown escape character /(47)
 in 'reader', line 1, column 19:
    escaped slash: "a\/b"
                      ^

	at org.yaml.snakeyaml.scanner.ScannerImpl.scanFlowScalarNonSpaces(ScannerImpl.java:1979)
	at org.yaml.snakeyaml.scanner.ScannerImpl.scanFlowScalar(ScannerImpl.java:1913)
	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchFlowScalar(ScannerImpl.java:1068)
	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchDouble(ScannerImpl.java:1050)
	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:436)
	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)

java-snakeyaml-event

 error
Exception in thread "main" while scanning a double-quoted scalar
 in 'reader', line 1, column 16:
    escaped slash: "a\/b"
                   ^
found unknown escape character /(47)
 in 'reader', line 1, column 19:
    escaped slash: "a\/b"
                      ^

	at org.yaml.snakeyaml.scanner.ScannerImpl.scanFlowScalarNonSpaces(ScannerImpl.java:1979)
	at org.yaml.snakeyaml.scanner.ScannerImpl.scanFlowScalar(ScannerImpl.java:1913)
	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchFlowScalar(ScannerImpl.java:1068)
	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchDouble(ScannerImpl.java:1050)
	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:436)
	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)

java-snakeyaml-json

 error
Exception in thread "main" while scanning a double-quoted scalar
 in 'reader', line 1, column 16:
    escaped slash: "a\/b"
                   ^
found unknown escape character /(47)
 in 'reader', line 1, column 19:
    escaped slash: "a\/b"
                      ^

	at org.yaml.snakeyaml.scanner.ScannerImpl.scanFlowScalarNonSpaces(ScannerImpl.java:1979)
	at org.yaml.snakeyaml.scanner.ScannerImpl.scanFlowScalar(ScannerImpl.java:1913)
	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchFlowScalar(ScannerImpl.java:1068)
	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchDouble(ScannerImpl.java:1050)
	at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:436)
	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)

rust-yamlrust-event

 error
+STR
+DOC
+MAP
=VAL :escaped slash
Error: ScanError { mark: Marker { index: 15, line: 1, col: 15 }, info: "while parsing a quoted scalar, found unknown escape character" }

hs-reference-yeast

 na
Line  Col Char Byte Token|Content
   1    0    0    0 +DOC |
   1    0    0    0 +NODE|
   1    0    0    0 +MAP |
   1    0    0    0 +PAIR|
   1    0    0    0 +NODE|
   1    0    0    0 +VAL |
   1    0    0    0 =TEXT|escaped.slash
   1   13   13   13 -VAL |
   1   13   13   13 -NODE|
   1   13   13   13 =SYNX|:
   1   14   14   14 =WSPC|.
   1   15   15   15 +NODE|
   1   15   15   15 +VAL |
   1   15   15   15 =SYNX|"
   1   16   16   16 =TEXT|a
   1   17   17   17 +ESC |
   1   17   17   17 =SYNX|\x5c
   1   18   18   18 =META|/
   1   19   19   19 -ESC |
   1   19   19   19 =TEXT|b
   1   20   20   20 =SYNX|"
   1   21   21   21 -VAL |
   1   21   21   21 -NODE|
   1   21   21   21 =EOL |\x0a
   2    0   22   22 -PAIR|
   2    0   22   22 -MAP |
   2    0   22   22 -NODE|
   2    0   22   22 -DOC |

perl-pp-perl

 na
{
  'escaped slash' => 'a/b'
}

perl-pplibyaml-perl

 na
{
  'escaped slash' => 'a/b'
}

perl-syck-perl

 na
{
  'escaped slash' => 'a\\/b'
}

perl-tiny-perl

 na
{
  'escaped slash' => 'a\\/b'
}

perl-xs-perl

 na
{
  'escaped slash' => 'a/b'
}

perl-yaml-perl

 na
{
  'escaped slash' => 'a\\/b'
}

py-pyyaml-py

 na
{'escaped slash': 'a/b'}

py-ruamel-py

 na
{'escaped slash': 'a/b'}

raku-yamlish-raku

 na
{
  escaped slash => "a/b".Str,
}