这应该是相当简单的。 我正在使用ANTLR编写词法分析器语法,并希望将变量标识符的最大长度限制为30个字符。我尝试使用以下行来实现此目标(遵循正常的正则表达式 - 除了''这个东西 - 语法):
ID : ('a'..'z'|'A'..'Z') ('a'..'z'|'A'..'Z'|'0'..'9'|'_'){0,29} {System.out.println("IDENTIFIER FOUND.");}
;
代码生成没有错误,但由于生成的代码中一行仅为:
0,29
编译失败了。显然antlr会将括号内的文本部分与打印行一起放置在接收状态区域。我搜索了ANTLR网站,但未找到等效表达式的示例或参考资料。这个表达式的语法应该是什么?