2012-01-04 10 views
2

私はhere利用できるObjective Cの文法を使用して、このコードを解析しようとしています:ANTLRエラー「文字でノー実行可能な代替案」

int main() 
{ 
    int k=0; 
} 

これはObjective Cのコードであり、それが解析され得る必要がありますが、それはあります関数translation_unitを呼び出すと、次のようなエラーが表示されます。それがうまくいかない

line 1:0 no viable alternative at character 'main' 
line 1:0 no viable alternative at character '(' 
line 1:0 no viable alternative at character ')' 

答えて

0

ルールdirect_declarator理由: エラーがあるmain機能の括弧内の何かがあるはず

direct_declarator 
: identifier declarator_suffix* 
| '(' declarator ')' declarator_suffix* 
; 

義務付けていること。しかし、あなたがそれをオプションにした場合:

direct_declarator 
: identifier declarator_suffix* 
| '(' declarator? ')' declarator_suffix* 
; 

私は確かに他の問題が発生するでしょう。率直に言えば、その文法はかなり厄介です。私があなたの場合、私はそれを使用しません。そして、いいえ、わかりません)。文法はantlrサイトに掲載されているので、適切な文法であるとは限りません。誰でも自分の仕事を投稿できるWikiに掲載されています。それを覚えておいてください。

+1

ありがとう..実際これは私の大学のプロジェクトです。私自身は、自分の目的のC文法を書く時間がありません。ですから、この文法を使ってこの作業をしなければなりません。そして、私たちのためにこの作品を作ってください...そして、これはとても役に立ちます –