[antlr-interest] Returning from a sub-parser with no end token.

Remi Koutcherawy remi.koutcherawy at wanadoo.fr
Fri Dec 28 01:50:20 PST 2001

OK, looking at the generated code, I found a solution.
Rather simple, just four added lines of code, works well even with AST.

Nevertheless I feel awkward to reference "parse_AST" which is a variable in the generated code not
declared in the grammar, clumsy also to throw an exception and catch another ;-)

Any other idea ?
Albeit modifying the generator to add a new option to generate such a behavior can be considered.

Rémi Koutcherawy

// B parser ------
class B_Parser extends Parser;
options {
parse: (B)+ (BBB!)?
exception catch [antlr.TokenStreamException ex]
 { parse_AST = (AST)currentAST.root; }

// B lexer ------
class B_Lexer extends Lexer;
options {
 filter = WS;
 k =2;
B: 'b'
WS: (' ' | '\t' | ('\n' | '\r' |"\r\n") {newline();} )
 { _ttype = Token.SKIP; }
exception catch [NoViableAltForCharException ex]
 { throw new CharStreamException("EndToken"); }


Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 

More information about the antlr-interest mailing list