2012-08-11 26 views
0

我爲3種不同格式的文件解析編寫了3個.lex文件,在生成掃描器c代碼後,我需要將這3個文件構建成單個可執行文件,但由於「yy_switch_to_buffer(...) ?」,‘'yytext中'’的多個定義,...如何鏈接多個lex生成的c文件?

如何解決這個

+0

其中一個最明顯的方法是將每個生成名稱的一部分替換爲每個文件的其他部分。例如,你可以在一個文件中用'xx'代替,在第二個文件中用'zz'代替它,並在第三個文件中保持不變。 – Wormbo 2012-08-11 05:49:31

+1

是的!使用*%選項prefix =「zz」*將用* zz * -prefixed宏替換默認函數。另外在autotools中的ylwrap似乎只處理名爲* lex.yy.c *的掃描器c文件,所以*%選項outfile =「lex.yy.c」*也是需要的 – zhangailin 2012-08-11 06:43:58

回答