ANTLR4(九) 修改错误信息

写在之前

先来回顾一下ANTLR4是如何处理并分析输入流的。

语法文件

一个简单的类分析语法文件。

grammar Simple;

prog:   classDef+ ; // match one or more class definitions

classDef
    :   'class' ID '{' member+ '}' // a class has one or more members
        {
   System.out.println("class "+$ID.text);}
    ;

member
    :   'int' ID ';'                       // field definition
        {
   System.out.println("var "+$ID.text);}
    |   'int' f=ID '(' ID ')' '{' stat '}' // method definition
        {
   System.out.println("method: "+$f.text);}
    ;

stat:   expr ';'
        {
   System.out.println("found expr: "+$ctx.getText());}
    |   ID '=' expr ';'
        {
   System.out.println("found assign: "+$ctx.getText());}
    ;

expr:   INT 
    |   ID '(' INT ')'
    ;

INT :   [0-9]+ ;
ID  :   [a-zA-Z]+ ;
WS  :   [ \t\r\n]+ -> skip ;

输入流的处理分析过程

我们从常见的main程序中截取一段:

        ANTLRInputStream input = new ANTLRInputStream(System.in);

你可能感兴趣的:(ANTLR4,ANTLR4)