[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