Son zamanlarda The Definitive ANTLR Reference satın aldım ve ANTLR kullanmaya başlamaktan heyecan duyuyorum. Birinci bölümde
, bu gramer gösterilmiştir:Definitive ANTLR Referans - İlk program çalışmıyor
grammar T;
options {
language = Java;
}
r : 'call' ID ';' {System.out.println("invoke " + $ID.text);} ;
ID : 'a'..'z'+ ;
WS : (' '|'\n'|'\r')+ {$channel=HIDDEN;} ;
Ben, (.g uzantısı), bir dosya içine aşağı bu dilbilgisi kopyalanan lexer ve Ayrıştırıcı oluşturulan ve böylece gibi bir ana sınıf oluşturuldu:
import org.antlr.runtime.*;
public final class Test {
public static void main(String[] args) throws Exception {
ANTLRInputStream input = new ANTLRInputStream(System.in);
TLexer lexer = new TLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
TParser parser = new TParser(tokens);
parser.r();
}
}
hiçbir gerçek hataları var, ama ana sınıfı çalıştırın ve girdiğinizde:
call foo;
hiçbir şey olmuyor. "foo çağır" ekrana çıkarılmalıdır, ancak hiçbir şey olmuyor. Herhangi bir alıştırma yapmadan kitapta devam etmek istemiyorum. Önemlise, Eclipse'de ANTLR 3.4 kullanıyorum. Üzgünüz, bu kolay bir soru gibi görünüyorsa, ancak ANTLR için yeniyim.
sayesinde
Ömer
ANTLR'ye hoş geldiniz. Sorunuz yeni başlayanlar için çok geçerlidir. –
Dosya sonu karakterini kitapta yazdığı gibi mi girdiniz? –
Hayır, bunu hiç düşünmedim. Bir Windows sisteminde, \ n, \ r veya \ r \ n olur mu? Veya sadece giriş düğmesine basmak mı? – leaf