Site Overlay


DOCUMENTATION. CONTACT. The Java Parser Generator. Java Compiler Compiler™ (JavaCC™) is the most popular parser generator for use with Java™ . By following the links from this page you should be able to obtain all necessary documentation on JavaCC. In addition to these links there is also some useful. This web page is a comprehensive list of all classes, methods, and variables available for use by a JavaCC [tm] user. These classes, methods, and variables are.

Author: Tygojinn Goltikus
Country: Bangladesh
Language: English (Spanish)
Genre: Relationship
Published (Last): 4 June 2007
Pages: 440
PDF File Size: 7.37 Mb
ePub File Size: 9.99 Mb
ISBN: 521-4-83916-369-3
Downloads: 43872
Price: Free* [*Free Regsitration Required]
Uploader: Yozshutaxe

JJTree defines a Java interface Node that all parse tree nodes must implement. Note that unlike the BNF expansionsthe regular expression “[ This controls where output files documentagion generated. As will be seen later, non-terminals on the right hand sides of productions are written as method calls, so the passing of values up and down the tree are done using exactly the same paradigm as method call and return.

JJTree maintains some state in the parser object itself. That many nodes are popped from the stack and made the children of the new node, which is then pushed on the stack itself.

For example, if name is “MyParser”, then the following files are generated:. The second part of the right hand side are the BNF expansions. This specifies the kind of regular expression production. Special tokens are useful in the processing of lexical entities such as comments which have no significance to parsing, but still are an important part of the input file. Other files such as “Token. Study the description of the JavaCC grammar file.

You notate a conditional node like this: When the parser recognizes a P1 nonterminal it begins an indefinite node. Then any legal match of the unit is one or more repetitions of a legal match of the parenthesized set of choices. The default value is 1. The jjtree state object provides methods for you to manipulate the contents of the stack in your actions if the basic JJTree mechanisms are not sufficient.


You specify a language’s lexical and syntactic description in a JJ file, then run javacc on the JJ file.

Metamata/Sun JavaCC Documentation

The methods getToken and getNextToken described below also give access to objects of this type. However, in this case when the option is trueinteractive applications may not work since the parser needs to work synchronously with the availability of tokens from the input stream.

An expansion unit can be a non-terminal the last choice in the syntax doumentation. Then any legal parse of the expansion unit is one or more repetitions of a legal parse of the parenthesized set of expansion choices. Then any legal parse of the expansion unit is zero or more repetitions of a legal parse of the parenthesized set of expansion choices. Documentattion regular expression choices is made up of a list of one or more complex regular expressions separated by ” “s.

To help with creating your error reporting scheme, the following variables are available:. That is, it trivially passes. Let’s start with the language of integer expressions with addition and multiplication, with addition having lower precedence. The generated token manager receives characters from this stream reader. Special tokens are, however, still passed on to the parser so that parser actions can access them. A definite node is constructed with a specific number of children.

Setting this option to true causes the generated token manager to ignore case in the token specifications and the input files. Typically, the token manager interface is not to be used.

JavaCC™: Grammar Files

This is that sequence viewed from the perspective of the node itself: This walks over the node’s children in turn, asking them to accept the visitor. They have not yet been added to the node, so they aren’t documentatoon via the node’s methods. Click here to get to the JJTree documentation.

This takes more time to do than the choice checking, and hence the default value is set to 1 rather than 2. If the semantic lookahead is not provided, it defaults to the boolean expression “true”. In addition, the two methods – getToken int i and getNextToken can also be used in actions to traverse the token list. If it evaluates to false, the node is not constructed, and all of the children remain on the node stack.


For example, the parser might maintain a doucmentation table. The parenthesized set of expansion choices can be suffixed optionally by: These are also called parser actions. Typically, this option is set to false when you wish to generate only the token manager and use it without the associated parser. The other regular expression has to be labeled so that it can be referenced. In which case, it takes the form of a method call with the non-terminal name used as the name of the method.

Some checks such as detection of left recursion, detection of ambiguity, and bad usage of empty expansions may be suppressed for faster parser generation by setting this option to false.

JavaCC™: JJTree Reference Documentation

This is a string option whose default value is “”, meaning that Tokens will be created by calling Token. Setting it to false causes errors due to parse errors to be reported in somewhat less detail. If the expression evaluates to false and the local lookahead specification is not at a choice point, then parsing aborts with a parse error.

The matches of this unit are all the matches of this other regular expression. You can then modify the implementations to suit. The first part is a set of arbitrary Java declarations and code the Java block. When documentqtion finds a parent for them, it pops the children from the stack and adds them to the parent, and finally pushes the new parent node itself.

The typical LL 1 grammar for this is:. This page was last edited on 23 Decemberat