2012-03-03 17 views
1

ANTLRでは、次のように特定の問題を解決するためにsyntactic predicatesを使用できます。これは単純な例です。JAVACCのANTLR構文述語

a : (L K)=> b 
    | c 
    ; 

b : L K 
    ; 

c : L M 
    ; 

私が知りたいことは、JAVACCで同じことを達成する方法です。ありがとう。

答えて

2

javaccにはSYNTACTIC LOOKAHEADという概念があります。それを使って同じ振る舞いを達成することができます。

例として、文法ルールは次のようになっています。 void Expr(): {} { Call()| VAR() }

あなたは、未知回の先読みを行う必要があるならば、あなたはより多くの情報については

void Expr(): 
{} 
{ 
LOOKAHEAD(Call()) 
Call() | Var() 
} 

のようなもののためにhttp://javacc.java.net/doc/lookahead.html

+0

を参照してくださいすることができ、ありがとうございました。問題が解決しました。 – Bee