1
文字列 "(example + another)* other"が特定の文法に属しているかどうかを判断する必要があるプログラムに取り組んでいます。はCFGプロダクションを表します
Start = Expr endline
Expr = Term Expr2
Expr2 = + Term Expr2 | - Term Expr2 | e
Term = Factor Term2
Term2 = * Factor Term2 |/Factor Term2 | e
Factor= id | (Expr) | num
例えば、私は上記の文法に似たものをJavaで実装しようとしています。これまでのところ私は欺瞞でswitch文を持っていますが、私はこれを行う方法ではないと感じています。 プロダクションをより簡単に表現できますか? ヒントをいただければ幸いです。 ありがとう
パーサで読むことをお勧めします。あなたのためのいくつかのキーワードがあります:LR解析、LL解析、最初のセット、再帰的な降下:-) – aioobe