YAML.jl icon indicating copy to clipboard operation
YAML.jl copied to clipboard

Cannot treat backquote ` well

Open Paalon opened this issue 1 year ago • 2 comments

The following gives an error:

using YAML

text = """
a:
  "`b`": c
"""

dict1 = YAML.load(text)

# write YAML
io = IOBuffer()
YAML.write(io, dict1)

# read written YAML
seekstart(io)
dict2 = YAML.load(io)
ERROR: '`'
Stacktrace:
  [1] fetch_more_tokens(stream::YAML.TokenStream)
    @ YAML ~/.julia/packages/YAML/U6OOW/src/scanner.jl:281
  [2] peek(stream::YAML.TokenStream)
    @ YAML ~/.julia/packages/YAML/U6OOW/src/scanner.jl:198
  [3] parse_block_mapping_value(stream::YAML.EventStream)
    @ YAML ~/.julia/packages/YAML/U6OOW/src/parser.jl:461
  [4] peek(stream::YAML.EventStream)
    @ YAML ~/.julia/packages/YAML/U6OOW/src/parser.jl:54
  [5] compose_node(composer::YAML.Composer)
    @ YAML ~/.julia/packages/YAML/U6OOW/src/composer.jl:93
  [6] __compose_mapping_node(event::YAML.ScalarEvent, composer::YAML.Composer, node::YAML.MappingNode)
    @ YAML ~/.julia/packages/YAML/U6OOW/src/composer.jl:154
  [7] _compose_mapping_node(start_event::YAML.MappingStartEvent, composer::YAML.Composer, anchor::Nothing)
    @ YAML ~/.julia/packages/YAML/U6OOW/src/composer.jl:174
  [8] compose_mapping_node(composer::YAML.Composer, anchor::Nothing)
    @ YAML ~/.julia/packages/YAML/U6OOW/src/composer.jl:183
  [9] handle_event(event::YAML.MappingStartEvent, composer::YAML.Composer)
    @ YAML ~/.julia/packages/YAML/U6OOW/src/composer.jl:86
 [10] compose_node(composer::YAML.Composer)
    @ YAML ~/.julia/packages/YAML/U6OOW/src/composer.jl:94
 [11] compose_document(composer::YAML.Composer)
    @ YAML ~/.julia/packages/YAML/U6OOW/src/composer.jl:50
 [12] compose(events::YAML.EventStream)
    @ YAML ~/.julia/packages/YAML/U6OOW/src/composer.jl:38
 [13] load(ts::YAML.TokenStream, constructor::YAML.Constructor)
    @ YAML ~/.julia/packages/YAML/U6OOW/src/YAML.jl:38
 [14] load(ts::YAML.TokenStream, more_constructors::Nothing, multi_constructors::Dict{…}; dicttype::Type{…}, constructorType::typeof(YAML.SafeConstructor))
    @ YAML ~/.julia/packages/YAML/U6OOW/src/YAML.jl:44
 [15] load
    @ ~/.julia/packages/YAML/U6OOW/src/YAML.jl:44 [inlined]
 [16] load (repeats 2 times)
    @ ~/.julia/packages/YAML/U6OOW/src/YAML.jl:47 [inlined]
 [17] load(input::IOBuffer)
    @ YAML ~/.julia/packages/YAML/U6OOW/src/YAML.jl:47
 [18] top-level scope
    @ REPL[7]:1
Some type information was truncated. Use `show(err)` to see complete types.

Paalon avatar Jun 03 '24 10:06 Paalon

Heh - apparently github has issues with it too. Can you just confirm it's a bug using another YAML parse (plenty of web-based ones)?

kescobo avatar Jun 03 '24 18:06 kescobo

Parsing is well but there is a bug in writing. From https://www.bairesdev.com/tools/json2yaml/ スクリーンショット 2024-06-04 11 38 22

Paalon avatar Jun 04 '24 02:06 Paalon