正規表現エンジンを作成しようとしています。私は手で再帰的な降下パーサーを記述したいと思います。正規表現の言語(正規表現で記述できる言語ではない)の再帰を伴わない文脈自由文法はどのように見えますか?構文糖を再解析するのが最も簡単なのでしょうか?つまり、a+
をaa*
に変更しますか?前もって感謝します!正規表現を記述する文脈自由文法?
7
A
答えて
7
左再帰:
Expression = Expression '|' Sequence
| Sequence
;
Sequence = Sequence Repetition
| <empty>
;
右再帰:
Expression = Sequence '|' Expression
| Sequence
;
Sequence = Repetition Sequence
| <empty>
;
あいまいな形:
Expression = Expression '|' Expression
| Sequence
;
Sequence = Sequence Sequence
| Repetition
| <empty>
;
0
Left Recursionのウィキペディアの記事では、これをどうやって解消するかについてかなり良い情報が得られます。
+0
左回帰で文法を再因子化する必要はありませんが、文法が一般的にどのように見えるかを感じるようにしようとしています。私はそれらについて多くのことを読んでいましたが、私は実際には「野生の中で」文脈自由な文法を使っていませんでした。 – wkf
2
あなたはsource code for Plan 9 grepで見ることができます。 grep.yファイルには、正規表現のためのyacc(正しくリコールすればLALR(1))文法があります。 yacc文法から始め、再帰的な下降解析のためにそれを書き直すことができます。
関連する問題
- 1. NLTK文脈自由文法
- 2. 文脈自由文法
- 3. 任意の正規表現から文脈自由文法を生成するアルゴリズム
- 4. 文の文脈自由文法
- 5. 文脈自由文法の左回帰規則
- 6. 文脈自由文法 - 計算理論
- 7. 文脈自由文法変換
- 8. NLTK文脈自由文法の制作
- 9. 文脈自由文法の解析
- 10. 文脈自由文法とC++
- 11. 文脈自由文法と逆転
- 12. 文脈自由文法のアルゴリズム
- 13. 正規表現のパターンを記述する正規表現ですか?
- 14. パイソン/正規表現 - テキスト記述
- 15. 文法の正規表現
- 16. 音声認識用文脈自由文法を作成する
- 17. Chomsky Normal Formで文脈自由文法を構築する
- 18. 複数の正規表現は、私は、文字列をチェックする正規表現文を記述しようとしています
- 19. 記述ロジックでこの文を表現する方法は?
- 20. 現代プログラミング言語の「正規表現」は本当に「文脈依存文法」ですか?
- 21. ヘルプには、正規表現記述する必要が
- 22. Pythonで内部DSLとして文脈自由な設計文法を表現するには?
- 23. 流暢なインターフェースは文脈自由であるか規則的な文法で記述されていますか?
- 24. ネストと不等式を持つ文脈自由文法
- 25. 正規表現は、私は次のパターンにマッチする正規表現を記述する必要が
- 26. 正規表現 - SQL文
- 27. 正規表現文字列
- 28. 正規表現 - 文字
- 29. 文字の正規表現、
- 30. 正規表現文字
右上。あなたは今夜すべての私の質問に答えました。ありがとう! – wkf