定义令牌的最佳方式

时间:2015-10-16 13:09:35

标签: compiler-construction grammar compiler-optimization lexer javacc

我试图优化我的javacc解析器,我有一个关于在语法定义中定义标记的问题。

是好还是坏的做法?它是否会影响解析器的性能。

示例:

void name() :
{
  Token name;
}
{
  name = < NAME : ( < LETTER > | < DIGIT > ){2, 7}>
  {
    System.out.println(name.image);
  }
}

1 个答案:

答案 0 :(得分:2)

它不会影响性能,但会影响可读性和可维护性。请记住,令牌定义的顺序可能会对含义产生影响。我建议将所有令牌定义放在前面。