ANTLR语法文件:不标记语法文件中的错误

时间:2014-05-06 15:14:57

标签: parsing antlr3

我刚开始使用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;};

0 个答案:

没有答案