1
나는 대략 이와 비슷한 문법을 정의했다.JavaCC 문법 충돌
TOKEN:{
<T_INT: "int"> |
<T_STRING: ["a"-"z"](["a"-"z"])*>
}
SKIP: { " " | "\t" | "\n" | "\r" }
/** Main production. */
SimpleNode Start() : {}
{
(LOOKAHEAD(Declaration()) Declaration() | Function())
{ return jjtThis; }
}
void Declaration() #Decl: {}
{
<T_INT> <T_STRING> ";"
}
void Function() #Func: {}
{
<T_STRING> "();"
}
이 같은 물건 잘 작동 :
int a;
foo();
하지만 나를 위해 법적 및 기능()에 의해 해석되어야하는, int();
을하려고 할 때, 대신 선언에 간다. 이 "충돌"을 어떻게 수정합니까? 나는 다양한 조합을 시도했다.