看板 EE_DSnP 關於我們 聯絡資訊
剛剛依照講義的example 在compile yylval.sv=&tempStr這行的時候出現了 request for member 'sv' in something not a structure or union 想請問這是什麼意思呢 還有tempStr需不需要先宣告成String或Char*呢? 感謝回答! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.249.125
ric2k1:上面這行是寫在 lex 還是 yacc? 12/19 20:34
ric2k1:(應該是在 lex 吧!?) 12/19 20:37
ric2k1:然後你的 yacc "definition section" 的地方記得加上 12/19 20:38
ric2k1:union { string *sv; }; 12/19 20:38
Neilhahaha:我有加%union那部份還是不行 12/19 20:38
ric2k1:lex file 有定義 "static string tempStr;" 嗎? 12/19 20:39
ric2k1:(上面 static 是 optional) 12/19 20:39
ric2k1:然後 lex 與 yacc 記得用 -o 輸出成 xxx.cpp 12/19 20:40
Neilhahaha:還有想問要怎麼做出y.tab.h呢 他只會出現y.tab.c= ='' 12/19 20:41
ric2k1:Oh, lex file 開始的地方要 #include <string>, of course 12/19 20:42
ric2k1:yacc -d 12/19 20:42
ric2k1:就會產生 y.tab.h 12/19 20:43
ric2k1:看一下講義 LEX_FLAG = -Pcir YACC_FLAG = -d -p cir 12/19 20:43
ric2k1:另外就是你可以用 "info" 這個指令來叫出 lex/yacc/bison 12/19 20:45
ric2k1:flex 的 online manual. 像是 "info yacc" 12/19 20:45
ric2k1:當然 google 一份 yacc/lex 的 tutorial 可能會比較清楚啦 12/19 20:46
ric2k1:(有電子書可以下載) 12/19 20:46
Neilhahaha:問題莫名的解決了 好像是我.y檔有錯的關係= ='' 12/19 20:59