在词法状态中使用"〜[]"标记

Ste*_*eld 5 javacc

我正在尝试编写一个基于javacc的解析器,它涉及以下标记/词法状态:

TOKEN :
{
  <"{"> : FIRST
}
<FIRST, DEFAULT> TOKEN :
{
  <"~[]"> : DEFAULT
}
Run Code Online (Sandbox Code Playgroud)

试图解析"{;}"会导致词法错误

遇到:";" (59),之后:""

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

  • 通过显式";"替换"〜[]"模式 文字
  • 通过删除FIRST词汇状态

但是,我确实需要这两个(你可以猜到,上面只是一个最小的测试用例),所以这不是一个合适的解决方法.知道上面的标记定义有什么问题吗?

谢谢 !

The*_*ell 1

引号过多。你想要的是

TOKEN :
{
  <"{"> : FIRST
}
<FIRST, DEFAULT> TOKEN :
{
  <~[]> : DEFAULT
}
Run Code Online (Sandbox Code Playgroud)