2016-04-04 7 views
0

基本的に、PowershellのAntlr 4でこのPascalプログラムを実行しようとしています。Antlr v4: 'mismatched input'

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で、次のエラーを得続ける:

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 
    ; 

がどのように私はこのエラーを修正します:ここで

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

は私の文法ファイルの関連部分ですか?ありがとう。

+0

詳細情報が必要です。あなたはどのようにそれを実行し、コマンドを出しますか? – majkinetor

+1

私はそれらが文法の唯一の関連する部分であるとは確信していません。文法は一連の 'outputStatement'項について何を言いますか?パーサーは、入力ストリームに2番目のものを見ることに問題があるようです。 – lurker

+1

完全な文法も提供してください。 – cantSleepNow

答えて

0

あなたのコンパイルは私のマシンで完全に実行されます。別のコンパイラを使ってコンパイルしようとしましたか?