1

次の架空の文法があるとします。句の再帰的な定義があります。

sentence := clause +
subject := (qualifier *) subjectiveNoun
objects := object +
object := nothing | (qualifier *) objectiveNoun
clause := subject objects verb
qualifier := adjective | clause

他のすべてが非再帰的な定義を持っていると仮定すると、「節」の JavaScript 文法を書くにはどうすればよいでしょうか? 誰かがこれを行う XRegExp ライブラリに精通している場合、それは追加のプラスになります。

4

2 に答える 2

2

XRegExp ライブラリ再帰的マッチング1をサポートしていますが、ここでの目標は何ですか? これを正規表現と一致させることができたら、どうしますか? 解析ツリーを処理する予定がある場合、正規表現はほとんど役に立ちません。これは、ソースが一致したかどうかだけを教えてくれます。その場合は、PEG.jsまたはJisonを調べてください。

1 http://xregexp.com/plugins/#matchRecursive

于 2013-02-28T15:09:17.740 に答える
0

Ometaを使用すると、分析文法用の JS でパーサーを簡単に記述でき、LR を処理するためのいくつかのトリックを実行できます。つまり、文法を処理できるはずですが、自然言語の解析に PEG 文法が使用されることはほとんどありません。

于 2013-02-26T07:57:49.113 に答える