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: Brazshura Faunos
Country: Gambia
Language: English (Spanish)
Genre: Video
Published (Last): 5 October 2008
Pages: 92
PDF File Size: 7.14 Mb
ePub File Size: 17.39 Mb
ISBN: 157-7-67360-955-5
Downloads: 66313
Price: Free* [*Free Regsitration Required]
Uploader: Dishura

The smaller this number, the faster the parser. Documentatino Scopes and User Actions Each node is associated with a node scope. Typically, this option is set to false when you wish to generate only the token manager and use it without the associated parser.

This parameter identifies the kind of node and is especially useful in simple mode. Any nodes that they push are popped and made the children of P3. In this example, an indefinite node P3 is begun, marking the stack, and then a P4 node, one or more P5 nodes and jwvacc P6 node are parsed.

The default for this is AST. If the syntactic lookahead is not provided, it defaults to the choice to which the local lookahead specification applies.

JavaCC™: Grammar Files

Matches to regular expressions in this regular expression production are simply skipped ignored by the token manager. Study the description of the JavaCC documetnation file. We recommend the following step-by-step process to learning JavaCC: JavaCC does not perform detailed checks on the compilation unit, so it is possible for a grammar file to pass through JavaCC and generate Java files that produce errors when they are compiled.


There are two parts on the right hand side of an BNF production. You can use this class as a template or superclass for your node implementations, or you can modify it to suit.

JavaCC – Wikipedia

If this option is set to true, then the token manager is generated to read characters from any character stream reader of type “CharStream. For the above example, the generated parser will look like: Explicitly setting this option allows the user to separate the parser from the tree files.

Each regular expression production may contain any number of regular expression specifications. The complete details of regular expression matching by the token manager is available in the minitutorial on the token manager.

If a local lookahead specification has been provided, but not all lookahead constraints have been included, then the missing ones are assigned default values as follows: Views Read Edit View history. The same option may not be set multiple times. If the lookahead limit is not provided and if the syntactic lookahead is provided, then the lookahead limit defaults to the largest integer value Setting this option to true causes the parser to generate a trace of its actions.

Complex regular expression choices is made up of documentqtion list of one or more complex regular expressions separated by ” “s. This document describes how you can customize error messages and also recover from errors during parsing. Using JavaCC In practice, the scanning and parsing phases of a compiler are handled by code documfntation is generated by a parser generator.

An expansion unit can be a regular expression. The options if present, starts with the reserved word “options” followed by a list of one or more option bindings within braces.

This is a string option whose default value is “”, meaning that the generated Token class will extend java. Each regular expression specification contains a regular expression followed by a Java block the lexical action which is optional.


These can all be used simultaneously from different threads. 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 set of Java declarations and code enclosed within braces the Java block. Hence identifiers, strings, characters, etc.

See Node Scopes and User Actions below for more important information. The final user action within a conditional node scope can determine whether the node was created or not by calling the nodeCreated method.

When set to true, the generated token manager will include a field called parser that references the instantiating parser instance of type MyParser in the above example. The toString method is convenient, though it might trick you into believing we made a code generator that targets LISP.

A complex regular expression unit can be a reference to another regular expression. See the JavaCC documentation for details.

JavaCC – The Java Parser Generator

The generated token manager documrntation one public method: The interface documentaion regenerated every time that JJTree is run, so that it accurately represents the set of nodes used by the parser.

This is the number of tokens considered in checking choices of the form “A B And if A and B have a common three token prefix, then JavaCC only tell you that you need to have a lookahead of 3 or more.

Typically, the token manager interface is not to be used.