我有以下语言,我希望使用antlr 1.2.2解析。Antrl词法分析器/解析器异常了解
TEST <name>
{
<param_name> = <param value>;
}
而 < ...> - 意味着用户值,而不是语言关键字的一部分
例如
TEST myTest
{
my_param = 1.0;
}
的值可以是整数,实数或一个quated字符串 my_param = 1.0;
,my_param = 1;
和my_param = "myStringValue";
都是有效的输入。
这里是这个解析的语法。
parse_test : TESTKEYWORD TEST_NAME '{' param_value_def '}';
param_value_def : ID EQUALS param_value ';';
param_value : REAL|INTEGER|QUOTED_STRING;
TESTKEYWORD : 'TEST';
QUOTED_STRING : '"' ~('"')* '"';
INTEGER : MINUS? DIGIT DIGIT*
REAL : INTEGER '.' DIGIT DIGIT*;
EQUALS : '=';
fragment
MINUS : '-';
fragment
DIGIT : '0'..'9';
当我喂输入ANTLR解释样品,我得到有关param_value规则'MismatchedTokenException异常”。
你能帮我解密错误信息吗?我做错了什么?
感谢
这是不可能的,告诉了什么,因为你贴失误规则的语法错了,你没有考虑空格(和换行符),并有一个分号'INTEGER'后失踪规则。 – 2012-02-13 14:51:03