1307170376 YAMLのアンカーではアンダースコアに特別な意味が?


アンカーを記述したYAMLファイルをEmacsのyaml-modeで表示すると、アンダースコア以降が違う色で表示されます。アンダースコアには特別な意味があるのでしょうか?

yaml-mode: https://github.com/yoshiki/yaml-mode

ちなみに、Ruby標準添付のYAMLライブラリでは、アンダースコア以降もアンカー名として認識されています。

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2011/06/04 15:52:26
  • 終了:2011/06/05 23:41:48

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4596ベストアンサー獲得回数19352011/06/04 16:19:13

ポイント150pt

The Official YAML Web Site を見ても、アンダースコアには、エスケープされた場合を除けば、特別な意味を持たせてないですね。


yaml-mode.el の 208行目は余計だと思います。

    (modify-syntax-entry ?_ "_" yaml-mode-syntax-table)
id:Bookmarker

Emacs Lispはあまり読めないのですが、yaml-node-anchor-alias-reの定義を見ると"_"じゃなくて"w"な気がするんですがどうなんでしょう?

一応"w"にするとアンダースコア以降も同じ色で表示されました。

-----

あっ、でも仕様書の5.6. Miscellaneous Charactersを見ると、"_"はWord (alphanumeric) characters for identifiersの一部ではないですね。

2011/06/04 21:00:33

その他の回答(1件)

id:a-kuma3 No.1

a-kuma3回答回数4596ベストアンサー獲得回数19352011/06/04 16:19:13ここでベストアンサー

ポイント150pt

The Official YAML Web Site を見ても、アンダースコアには、エスケープされた場合を除けば、特別な意味を持たせてないですね。


yaml-mode.el の 208行目は余計だと思います。

    (modify-syntax-entry ?_ "_" yaml-mode-syntax-table)
id:Bookmarker

Emacs Lispはあまり読めないのですが、yaml-node-anchor-alias-reの定義を見ると"_"じゃなくて"w"な気がするんですがどうなんでしょう?

一応"w"にするとアンダースコア以降も同じ色で表示されました。

-----

あっ、でも仕様書の5.6. Miscellaneous Charactersを見ると、"_"はWord (alphanumeric) characters for identifiersの一部ではないですね。

2011/06/04 21:00:33
id:a-kuma3 No.2

a-kuma3回答回数4596ベストアンサー獲得回数19352011/06/05 14:12:58

ポイント50pt

あっ、でも仕様書の5.6. Miscellaneous Charactersを見ると、"_"はWord (alphanumeric) characters for identifiersの一部ではないですね。

でも、Mapping の key が "Word" のみで構成されなければいけない、とは、どこにも書いてない(気がする)。


GNU Emacs Lispリファレンスマニュアル: Syntax Class Table を見ると、"w" は、YAML の "Word" に近くて、"_" は、「シンボル構成文字」だって書いてあるから、

意味としては "_" でも良いような気がする。


yaml-node-anchor-alias-re の定義では、正規表現としての "\w" なので、シンボル構成文字の意味とはちょっと違います。


# ごめんなさい、全然、回答になってません m(_ _)m

id:Bookmarker

Emacs Lispはやっぱりわかりません(^^;

でも仕様書でアンカー名に使える文字の定義を見つけました。

6.9.2. Node Anchors

アンダースコアもアンカー名に使えるので、yaml-modeの問題のようですね。

2011/06/05 23:24:17

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません