lex&yacc中SQL解释器的问题

towerjt 2008-03-04 03:16:04
在lex&yacc随书代码中,有一个SQL解释器,但是我无法解释一个普通的update语句,

UPDATE TAB SET F1=1 WHERE 1=1;


打开调试,输出如下

Starting parse
Entering state 0
Reading a token: Next token is token UPDATE ()
Shifting token UPDATE ()
Entering state 11
Reading a token: Next token is token NAME ()
Shifting token NAME ()
Entering state 44
Reading a token: Next token is token SET ()
Reducing stack by rule 214 (line 558)
$1 = token NAME ()
-> $$ = nterm table ()
Stack now 0 11
Entering state 45
Next token is token SET ()
Shifting token SET ()
Entering state 77
Reading a token: Next token is token NAME ()
Shifting token NAME ()
Entering state 115
Reducing stack by rule 233 (line 589):
$1 = token NAME ()
-> $$ = nterm column ()
Stack now 0 11 45 77
Entering state 118
Reading a token: Next token is token COMPARISON ()
1: syntax error at =
Error: popping nterm column ()
Stack now 0 11 45 77
Error: popping token SET ()
Stack now 0 11 45
Error: popping nterm table ()
Stack now 0 11
Error: popping token UPDATE ()
Stack now 0
Cleanup: discarding lookahead token COMPARISON ()
Stack now 0
SQL parse failed
...全文
99 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
canybox 2008-03-04
  • 打赏
  • 举报
回复
lex&yacc?
帮顶

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧