[antlr-interest] Help on /*empty command*/ ; ; ; ;

Ruslan Zasukhin sunshine at public.kherson.ua
Fri Jul 11 21:54:13 PDT 2008


On 7/12/08 12:37 AM, "Chris Rebert" <cvrebert at gmail.com> wrote:

Hi Chris,

> I'm a newbie, but i think the possible lookahead through sql_statement
> might be the problem.
> Have you tried:
> 
> sql_single
>    : sql_statement? SEMI
>    ;
 
Not yet, and I think this will bring performance troubles.

I know that such empty commands are allowed e.g. In C++.
I have take C++ grammars, and later realize why in SQL I have problems.

* because in C++ SEMI must present.
* but in SQL it MAY present.

So in SQL I need something as

sql_single
    :    SEMI
    |    statement (SEMI)?

But  this not works also...

I think because ANTLR cannot differ when add SEMI to second branch, and when
it is really just SEMI.

Still playing.

 
> Best of luck,
> Chris
> 
> On Fri, Jul 11, 2008 at 4:58 AM, Ruslan Zasukhin
> <sunshine at public.kherson.ua> wrote:
>> Hi All,
>> 
>> I try implement on ANTLR 2.7 the empty command for SQL.
>> So parser will eat something as
>> 
>> CREATE TABLE T(f1 int);
>> ;
>> ;
>> 
>> 
>> Can somebody show quick draft of such rule?
>> 
>> This my attempt not works as expected.
>> 
>> 
>> sql
>>    :  (sql_single)*  EOF
>>    ;
>> 
>> sql_single
>>    : sql_staement  (SEMI)?
>>    | SEMI


-- 
Best regards,

Ruslan Zasukhin
VP Engineering and New Technology
Paradigma Software, Inc

Valentina - Joining Worlds of Information
http://www.paradigmasoft.com

[I feel the need: the need for speed]




More information about the antlr-interest mailing list