如题,被老板赶鸭子上架要写一个简易的不完全的SQL语法分析程序.
我使用的自动生成工具为Grammatica,支持LL文法.
但是,我编译原理水平实在太菜,呵呵,没有学过啊.
求教,where条件表达式要怎么写?
原先我的写法是:
condis="(" condis ")" |condi  logic_op condis |   condi; 
condi= value op value;
但是,不知道怎么消除左递归,请过路高人指点啊.
那个"空"要怎么写?
感谢!!!!

解决方案 »

  1.   

    补充:要能分析形如下面的表达式就可以了
    a=b and c=d and (e=f) and ((g<>h) or i=j )
      

  2.   

    http://www.codeproject.com/Articles/32524/SQL-Parser
      

  3.   

    http://irony.codeplex.com/其实这块东西并不需自己搞,你直接google sql 的相关BNF文档就可以弄出来
      

  4.   

    还请高人指点Grammatica怎么使用啊?grammar编辑没有找到叫详细的帮助文档,哎.
      

  5.   


    除了这里,还有别的地方需要用到,自定义脚本语言,所以,主要还是想借机会学习编译原理,不单纯为了SQL的,呵呵
      

  6.   

    且,主要是Grammatica要能支持,有些地方我按教科书说的消除左递归,但是在Grammatica中就不知道怎么写了,那个表示"空"的玩意怎么搞,哎