2013-08-07 55 views
-1

我有一個大的語法編寫爲DParser並使用Python綁定。當我第一次運行解析器和生成的DParser其內部表,我得到了一些類似這樣的警告:DParser-警告:試圖寫代碼到二進制文件

warning: trying to write code to binary file 
warning: trying to write code to binary file 
warning: trying to write code to binary file 

不知道什麼這些警告源的病因。我唯一能找到的是DParser源代碼「write_tables.c」:

write_code(FILE *fp, Grammar *g, Rule *r, char *code, 
      char *fname, int line, char *pathname) 
{ 
    char *c; 

    if (!fp) { 
     d_warn("trying to write code to binary file"); 
     return; 
    } 
    ... 
} 

任何提示或想法,將不勝感激。

+0

我會說你沒有給Dparser一個文件名來寫它的生成表。您是否閱讀過使用文檔? –

+0

當然我已閱讀文檔。表格的文件名將自動選擇(d_parser_mach_gen.g.d_parser.dat,d_parser_mach_gen.g.md5)。我發現這些警告的問題是因爲我的語法錯誤,而且在某些情況下我忘了在[]中加引號。像[example_non_terminal]一樣。它將example_non_terminal作爲字符集。其中一些導致了這個問題。 – Amal

+0

您可以將您發現的問題添加爲答案(是的,您可以回答自己的問題),以便此問題達到收斂。 [我不得不承認,沒有引用語法元素和你得到的錯誤信息之間的因果關係完全逃脫了我]。 –

回答

1

我發現這些警告的問題是因爲我的語法錯誤,並且在某些情況下我忘記了在[]周圍添加引號。像:

[ example_non_terminal ] 

,它正在採取example_non_terminal的字符集。其中一些導致了這個問題。正確的語法應該是:

'[' example_non_terminal ']'