3

私が書いた:

a:
-b
-c

パーサーはそれを次のように理解しました:

!!map {
  ? !!str "a"
  : !!seq [
      !!str "b",
      !!str "c"
    ]
}

しかし、私は意味しました:

!!map {
  ? !!str "a"
  : !!null ""
}
!!seq [
  !!str "b",
  !!str "c"
]

仕様によると:

「-」、「?」ブロックコレクションエントリを示すために使用される「:」文字は、インデントの一部であると人々に認識されます。これは、関連するプロダクションによってケースバイケースで処理されます。

それで、両方の解釈は許容されますか?そうでない場合、それを妨げる仕様のセクションを指摘できますか?

「関連するプロダクションによるケースバイケース」に応じて?「関連作品」とは?

4

2 に答える 2

1

あなたの例は PyYAML 3.11 では解析できません。

http://yaml-online-parser.appspot.com/?yaml=a%3A%0A-b%0A-c&type=json

これを試して:

a:
- b
- c

http://yaml-online-parser.appspot.com/?yaml=a%3A%0A-+b%0A-+c&type=json

于 2011-07-22T09:25:13.967 に答える
0

これを試して:

-a:
-b
- c
%YAML 1.1
---
!!シーケンス [
    !!マップ {
        ? !!str "a"
        : !!null "ヌル",
    }、
    !!str "b",
    !!str "c",
]
...

于 2010-10-27T14:54:51.997 に答える