[antlr-interest] v2->v3 Skip chars in Lexer? Terrence?

Ruslan Zasukhin ruslan_zasukhin at valentina-db.com
Sat Apr 16 03:37:22 PDT 2011


On 4/16/11 1:18 PM, "Bart Kiers" <bkiers at gmail.com> wrote:

Thank you, Bart.

And I have forget to mention that we using C-target.
So there is no nice string classes ...

And even with string classes, don't you think guys, that this NEW WAY
Of dealing of wrap-quotes do not looks  best of the best?

    We must now work with strings?
    remove first/last chars?
    remove inside chars?
        this means do not required copy pasts ...

I have hear that ANTLR3 LEXER going to be much faster of v2 Lexer.
We did use FLEX instead of v2 Lexer because of that.

And now ... We must do manual job with strings ??
    
Somehow not best of the best?
May be it is good idea RETURN BACK
that simple way to skip that chars right in lexer?


> On Sat, Apr 16, 2011 at 12:06 PM, Ruslan Zasukhin
> <ruslan_zasukhin at valentina-db.com> wrote:
> ...
> 
> How to remove that quotes in v3?  :-)
> 
> 
> Here's a way:
> 
> DELIMITED
>   @init {
>     String q = null;
>   }
>   @after {
>     String text = getText();
>     // remove the first and last quote, replace all 2 quotes with a single
> quote 
>     setText(text.substring(1, text.length()-1).replace(q+q, q));
>   }
>   :  ( DQUOTE (~DQUOTE | DQUOTE DQUOTE)+ DQUOTE {q = $DQUOTE.text;}
>      | BQUOTE (~BQUOTE | BQUOTE BQUOTE)+ BQUOTE {q = $BQUOTE.text;}
>      ) { $type = IDENT; }
>   ;
> 
> or create your own token that handles the replacements
> internally: http://www.antlr.org/wiki/pages/viewpage.action?pageId=1844
> 
> Regards,
> 
> Bart. 

-- 
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