[antlr-interest] Multiple lexers (c++ code gen.)
marcschellens
m_schellens at hotmail.com
Thu Nov 20 07:08:23 PST 2003
Somehow the switch between two lexers seems not to work:
setup is like this:
TokenStreamSelector selector;
FMTLexer lexer( istr);
lexer.SetSelector( selector);
CFMTLexer cLexer( lexer.getInputState());
cLexer.SetSelector( selector);
lexer.SetCLexer( cLexer);
selector.select( &lexer);
FMTParser parser( selector);
parser.initializeASTFactory( FMTNodeFactory);
parser.setASTFactory( &FMTNodeFactory );
parser.format( 1);
And usage:
in FMTLexer (switch to CFMTLexer):
CSTRING!
: 'c' '\"' { cLexer->DoubleQuotes( true); selector->push(cLexer);}
| 'c' '\'' { cLexer->DoubleQuotes( false); selector->push( cLexer);}
;
cLexer is CFMTLexer* (private member in lexer).
Do I make an obvious mistake?
thanks,
marc
in CFMTLexer (switch back)
protected
ENDSTR1
: ('\"') => '\"'
| { selector->pop();}
;
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
More information about the antlr-interest
mailing list