Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

option

description

Code Block
language

the default is language=Java; over time new code generation target will be completed and can then be set here

Code Block
tokenVocab

where ANTLR should get predefined tokens and token types. Tree grammars need it to get the token types from the parser that creates its trees

Code Block
output

valid values are output=AST; and output=template;

Code Block
ASTLabelType

set the type of all tree labels and tree-valued expressions. Without this option, trees are of type Object.

Code Block
TokenLabelType

set the type of all token-valued expressions. Without this option, tokens are of type Token (or IToken in C#)

Code Block
superClass

set the superclass of the generated recognizer

Code Block
filter

In the lexer, this allows you to try a list of lexer rules in order. The first one that matches, wins. This is the token that nextToken() returns. If nothing matches, the lexer consumes a single character and tries the list of rules again.

Code Block
rewrite

Use this option when your translator output looks very much like the input. Your actions can modify the TokenRewriteStream to insert, delete, or replace ranges of tokens with another object. Used in conjunction with output=template, you can very easily build translators that tweak input files.

Code Block
k

limit the lookahead depth for the recognizer uses most k symbols. this prevents the decision from using acyclic LL(star) * DFA.

Code Block
backtrack

taken from http://www.antlr.org:8080/pipermail/antlr-interest/2006-July/016818.html : The new feature (a big one) is the backtrack=true option for grammar, rule, block that let's you type in any old crap and ANTLR will backtrack if it can't figure out what you meant. No errors are reported by antlr during analysis. It implicitly adds a syn pred in front of every production, using them only if static grammar LL( * ) analysis fails. Syn pred code is not generated if the pred is not used in a decision. This is essentially a rapid prototyping mode. It is what I have used on the java.g. Oh, it doesn't memoize partial parses (i.e., rule parsing results) during backtracking automatically now. You must also say memoize=true. Can make a HUGE difference to turn on.

Code Block
memoize

When backtracking, remember whether or not rule references succeed so that the same input position cannot be parsed more than once by the same rule. This effectively guarantees linear parsing when backtracking at the cost of more memory.