Antlr vch: w=10=sh
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
;
如何修复此错误?谢谢
你在我的机器上编译和运行完美。您是否尝试过使用其他编译器编译它?
基本上,我正在尝试通过 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
;
如何修复此错误?谢谢
你在我的机器上编译和运行完美。您是否尝试过使用其他编译器编译它?