请教句法分析的算法

athossmth 2005-07-25 11:27:54
比如,TSQL里面SELECT的语法是:
SELECT select_list
[ INTO new_table ]
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]

对一个SELECT语句进行分析时,麻烦的是,select_list里的table,又可以是一个SELECT语句包上扩号作为一个table,嵌套是无穷的。

这只是一个例子,TSQL里还有UPDATE、INSERT等语句,各自有Syntax。

那么,有没有一个通用的句法分析的程序呢?首先可以以一定的格式定义某动作(如SELECT)的语法,然后,自动就可以根据定义来判断输入的语句是否语法规范。有这样的程序么?请指点,谢谢!

...全文
179 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
athossmth 2005-08-12
  • 打赏
  • 举报
回复
这几天看了lex和yacc的一些东西,还是很麻烦啊。有没有已经做好的工具?
mmmcd 2005-07-28
  • 打赏
  • 举报
回复
用YACC来实现吧
chenzhichao2008 2005-07-28
  • 打赏
  • 举报
回复
递归出口:语法错误
句子结束
递归体:
在Select后面,在From 前面 遇到 "(select 则递归"
sant 2005-07-28
  • 打赏
  • 举报
回复
用lex 和 yacc来做,最后生成语法树
athossmth 2005-07-26
  • 打赏
  • 举报
回复
递归当然是递归,问题是怎么分割出递归的各个部分?
chenzhichao2008 2005-07-26
  • 打赏
  • 举报
回复
对一个SELECT语句进行分析时,麻烦的是,select_list里的table,又可以是一个SELECT语句包上扩号作为一个table,嵌套是无穷的。

这个不正是应了递归的定义吗?

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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