[antlr-interest] v2->v3 Skip chars in Lexer? // FAQ only for Java. What about C? :-)

Ruslan Zasukhin ruslan_zasukhin at valentina-db.com
Sat Apr 16 04:51:42 PDT 2011


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

I have found this FAQ
    http://www.antlr.org/wiki/pages/viewpage.action?pageId=1461

But only Java here ...

        {setText(getText().substring(1, getText().length()-1));} ;


Now I struggling to find any API of C analogs of
getText() / setText() for LEXER.



> 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

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