[antlr-interest] How to use lexer getCharPositionInLine() function in Cpp target

Richard Gildea rgildea at gmail.com
Mon Oct 15 11:43:04 PDT 2012


Hi,

I am attempting to convert my parser to use the Cpp target after previously
using the C target for some time, and have come across a problem trying to
call the function TLexer::getCharPositionInLine() inside a gated semantic
predicate in one of my lexer rules. With the C target I was using a
construct such as

({ GETCHARPOSITIONINLINE() > 0 }?=> ';')

to identify a semicolon character in the first column of a line. When
trying to use a similar construct with the Cpp target, in the generated
code this predicate is used both inside the lexer rule, where the correct
usage would be this->getCharPositionInLine(), and inside a cyclicDFA, where
the usage would be ctx->getCharPositionInLine(). Is there a way to use such
a predicate with the Cpp target?

Cheers,

Richard


More information about the antlr-interest mailing list