我刚开始使用ANTLR,它工作正常 我遇到的问题是,当我构建项目时,它没有看到或标记语法文件中的错误,并且它成功构建(仅在第一次,然后它什么也没做,直到我在语法中改变一点)。我知道语法文件中有错误,如果我测试解释器,它会检测到它。我正在使用带有eclipse Helios的ANTLR 3.5.2。 有谁知道如何修复它来标记错误? 这是一个简单的代码,它有错误但成功构建。
grammar XL;
options {
language = Java;
}
@header {
package com.java.antlr3.test1;
}
@lexer::header {
package com.java.antlr3.test1;
}
program
: 'program' IDENT '='
(constant | variable)*
'begin'
statement*
'end' IDENT '.'
;
constant
: 'constant' IDENT ':' type ':=' expression ';'
;
variable
: 'var' IDENT(',' IDENT)* ':' type (':=' expression)* ';'
;
type
:
'Integer'
;
statement
: assignmentStatement
| ifStatement
| loopStatement
| exitStatement
;
assignmentStatement
: IDENT ':=' INTEGER ';'
;
INTEGER : '0'..'9'+;
IDENT : ('a'..'z'|'A'..'Z')('a'..'z'|'A'..'Z'|'0'..'9')*;
WS : (' '|'\t'|'\n'|'\r'|'\f')+ {$channel = HIDDEN;};