2012-03-10 3 views
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文を持っていますが、私はこれを行う方法ではないと感じています。 プロダクションをより簡単に表現できますか? ヒントをいただければ幸いです。 ありがとう

+0

パーサで読むことをお勧めします。あなたのためのいくつかのキーワードがあります:LR解析、LL解析、最初のセット、再帰的な降下:-) – aioobe

答えて

関連する問題