2016-04-04 23 views
0

Temel olarak, bu Pascal programını Powershell'deki Antlr 4 aracılığıyla çalıştırmaya çalışıyorum.Antlr v4: 'eşleşmeyen girdi'

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. 

Ancak, PowerShell aşağıdaki hatayı almaya devam:

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 
    ; 

Nasıl bu hatayı düzeltebilirim: Burada

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

benim dilbilgisi dosyasının ilgili kısımları nelerdir? Teşekkürler.

+0

Daha fazla bilgi gerekli. Nasıl çalıştırıyorsun, komutları ver. – majkinetor

+1

Dilbilgisinin * ilgili bölümleri * olduğundan emin değilim. Dilbilgisi bir dizi "outputStatement" terimi hakkında ne söylüyor? Ayrıştırıcı, giriş akışında ikinci olanı görmeyle ilgili bir sorun gibi görünüyor. – lurker

+1

Ayrıca tam dilbilgisi sağlar. – cantSleepNow

cevap

0

Makinenizde mükemmel çalışır ve çalışır. Başka bir derleyici kullanarak derlemeyi denediniz mi?