2015-05-01 41 views
5

我试图写基于JavaCC的解析器,包括以下令牌/词法状态:使用“〜[]”令牌词法状态

TOKEN : 
{ 
    <"{"> : FIRST 
} 
<FIRST, DEFAULT> TOKEN : 
{ 
    <"~[]"> : DEFAULT 
} 

试图解析“{;}”导致词汇错误

遇到:“;” (59)之后:“”

我不明白。我可以通过两种方式避免错误:

  • 通过用显式“;”替换“〜[]”模式;文字
  • 通过去除前词法状态

不过,我确实需要这两个(你可以猜到,上面只是一个很小的测试案例),所以这不是一个合适的解决办法。任何想法上述令牌定义有什么问题?

谢谢!

回答

1

太多引号。你想要的是

TOKEN : 
{ 
    <"{"> : FIRST 
} 
<FIRST, DEFAULT> TOKEN : 
{ 
    <~[]> : DEFAULT 
} 
相关问题