Antlr v4: 'mismatched input'



基本上,我试图通过Powershell中的Antlr 4运行这个Pascal程序。

PROGRAM AddTwoNumbers;
    VAR Num1, Num2, Sum : Integer;
BEGIN 
    Write('Input number 1:'); 
    Readln(Num1);
    Writeln('Input number 2:');
    Readln(Num2);
    Sum := Num1 + Num2; 
    Writeln(Sum);
    Readln;
    END.

然而,我在PowerShell中不断收到以下错误:

line 8:4 mismatched input 'Writeln' expecting {'END', ';'}

以下是我的语法文件的相关部分:

simpleStatement
    : assignmentStatement
    | procedureStatement
    | exitStatement
    | gotoStatement
    | emptyStatement
    | outputStatement
    | readKey
    ;
outputStatement
    : ( 'Writeln' | 'Write' ) LPAREN string RPAREN SEMI
    input
    ;
input
    : inputStatement
    | readKey
    ;
inputStatement
    : 'Readln' ( LPAREN identifier RPAREN )* SEMI
    ;
readKey
    : 'Readkey' SEMI
    ;

如何修复此错误?谢谢

您的编译和运行在我的机器中非常完美。你试过用另一个编译器编译它吗?