2013-07-05 80 views
1

我想從ANTLR.grammar文件生成c代碼,在Windows上使用antlrworks 1.5(ANTLR 3.5),但它不會生成任何頭文件,例如sample.g,它會生成:
sample.tokens
sampleLexer.c
sampleParser.c爲什麼c頭文件不是使用ANTLR生成的1.5?

但沒有任何頭文件,我不明白爲什麼。

我現在所使用的語法,是舉例的目的很簡單:

grammar sample; 

options 
{ 
language = C; 
} 

rule1: 
'ABC' 
; 

我也得到警告,例如:

[12:39:44] warning(24): template error: context [/outputFile /parser] 1:1 could not pass through undefined attribute filterMode 
[12:39:44] warning(24): template error: context [/outputFile /parser /genericParser /_sub721 /ruleAttributeScopeFuncMacro] 1:4 no such property or can't access: null.attributes 
[12:39:44] warning(24): template error: context [/outputFile /parser /genericParser] 155:5 no such property or can't access: null.apifuncs 
[12:39:44] warning(24): template error: context [/outputFile /parser /genericParser /rule /ruleDeclarations] 4:1 no such property or can't access: null.attributes 
[12:39:44] warning(24): template error: context [/outputFile /parser /genericParser /rule /ruleInitializations] 8:1 no such property or can't access: null.attributes 
[12:39:44] warning(24): template error: context [/outputFile /lexer /lexerRule /ruleDeclarations] 4:1 no such property or can't access: null.attributes 

我找到類似的警告文章(這是我發現的唯一一件關於這件事,我認爲它可能不會產生任何關於頭文件不生成)

我將不勝感激任何幫助,我想爲我的C++項目生成一些AST樹,我從很早以前就已經爲java做了一些sql語法,但是我被這個有趣的問題困住了。

注:

我還檢查了所有這些文章:

http://www.antlr.org/wiki/display/ANTLR3/FAQ+-+Getting+Started //開始上如何安裝ANTLR 引導 http://www.antlr.org/wiki/pages/viewpage.action?pageId=728 //指南(雖然使用IM antlrworks,所以我並不真正需要任何其他安裝) http://www.antlr.org/wiki/pages/viewpage.action?pageId=29130826 // CplusTARGET(它沒有對AST樹的支持,我已經閱讀它計算器,這就是爲什麼我試圖現在ç目標) http://www.antlr.org/wiki/display/ANTLR3/Using+the+ANTLR3+C+Target // C TARGET https://github.com/antlr/examples-v3 //考試實現對象

回答

1

這可能是ANTLRWorks 1.5.1已經解決的錯誤的一個副作用(即將在下一個周內發佈)。

https://github.com/antlr/antlrworks/pull/9

+0

你好,感謝您的幫助,我試圖在eclipse中構建項目與目標包,我得到它建立成功,但是當我啓動antlrworks-1.5.1-SNAPSHOT.jar我馬上得到一個java異常。我能以某種方式構建項目並立即使用它嗎?有沒有其他的方法讓windows從語法中生成c文件? –

+0

我目前正在使用它作爲eclipse的運行,並且如你所說問題已經消失,但我可以從那裏建立一個超級罐子嗎?如果是,請給我一些指示? –

+0

你解決了你的問題嗎?我得到相同的消息.. :( –

相關問題