Antlr v4:'输入不匹配'

时间:2016-04-04 12:26:43

标签: powershell compiler-errors grammar pascal antlr4

基本上,我正试图通过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
    ;

如何修复此错误?感谢。

1 个答案:

答案 0 :(得分:0)

您的编译并在我的机器中完美运行。您是否尝试使用其他编译器进行编译?