作者Neilhahaha (Neil)
看板EE_DSnP
标题[问题] YACC与LEX回传值
时间Sat Dec 19 18:27:22 2009
刚刚依照讲义的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
1F:推 ric2k1:上面这行是写在 lex 还是 yacc? 12/19 20:34
2F:→ ric2k1:(应该是在 lex 吧!?) 12/19 20:37
3F:→ ric2k1:然後你的 yacc "definition section" 的地方记得加上 12/19 20:38
4F:→ ric2k1:union { string *sv; }; 12/19 20:38
5F:→ Neilhahaha:我有加%union那部份还是不行 12/19 20:38
6F:推 ric2k1:lex file 有定义 "static string tempStr;" 吗? 12/19 20:39
7F:→ ric2k1:(上面 static 是 optional) 12/19 20:39
8F:推 ric2k1:然後 lex 与 yacc 记得用 -o 输出成 xxx.cpp 12/19 20:40
9F:→ Neilhahaha:还有想问要怎麽做出y.tab.h呢 他只会出现y.tab.c= ='' 12/19 20:41
10F:→ ric2k1:Oh, lex file 开始的地方要 #include <string>, of course 12/19 20:42
11F:→ ric2k1:yacc -d 12/19 20:42
12F:→ ric2k1:就会产生 y.tab.h 12/19 20:43
13F:→ ric2k1:看一下讲义 LEX_FLAG = -Pcir YACC_FLAG = -d -p cir 12/19 20:43
14F:推 ric2k1:另外就是你可以用 "info" 这个指令来叫出 lex/yacc/bison 12/19 20:45
15F:→ ric2k1:flex 的 online manual. 像是 "info yacc" 12/19 20:45
16F:推 ric2k1:当然 google 一份 yacc/lex 的 tutorial 可能会比较清楚啦 12/19 20:46
17F:→ ric2k1:(有电子书可以下载) 12/19 20:46
18F:→ Neilhahaha:问题莫名的解决了 好像是我.y档有错的关系= ='' 12/19 20:59