# yaml-quote-requirements

YAML のスカラー値で、どの文字がクォートなしだと壊れるかを実測する。値の**先頭**に置いた場合と
**途中**に置いた場合を分け、単クォートで足りるか二重クォートが要るかまで測る。

パーサーは `yaml` (eemeli)。`lib/tooling.ts` の yaml-to-json が使っている実装そのもので、
呼び出しも同じ `YAML.parse(input)` (オプションなし) に揃えてある。**js-yaml はこのプロジェクトの
依存に入っていない**ので、js-yaml を「FormatArc の変換ツールのパーサー」と書いてはならない。

パーサー別のエラー文字列そのものを比べたい場合は `../yaml-syntax-errors/` を見る。こちらは
「壊れるかどうか」と「クォートの要否」だけを測る別の測定である。

## 実行

```bash
cd scripts/benchmarks/yaml-quote-requirements
npm install
node measure.mjs      # 表を標準出力に出し、results.json を書く
```

## 出力

- `rows` — 21 文字 x 5 条件 (素の先頭 / 素の途中 / 単クォート先頭 / 単クォート途中 / 二重クォート先頭)
  - `ok-string` はその文字を含む文字列として正しく読めた
  - `error` はパースエラー
  - `wrong-value` はエラーにならずに別の値になった (`#` がコメント、`&` がアンカー、`!` がタグ)
- `followUps` — 先頭の `-` `?` `:` が「単独」と「直後にスペース」で挙動が分かれる境界、および
  クォート文字自身のエスケープ 14 ケース

記事側の参照箇所は `content/blog/{ja,en,es,pt}/yaml-syntax-guide.md` の「クォートが必要なとき」節。
