|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object antlr.Parser antlr.LLkParser antlr.java.JavaRecognizer
public class JavaRecognizer
Java 1.3 Recognizer
Run 'java Main [-showtree] directory-full-of-java-files' [The -showtree option pops up a Swing frame that shows the AST constructed from the parser.] Run 'java Main' Contributing authors: John Mitchell johnm@non.net Terence Parr parrt@magelang.com John Lilley jlilley@empathy.com Scott Stanchfield thetick@magelang.com Markus Mohnen mohnen@informatik.rwth-aachen.de Peter Williams pete.williams@sun.com Allan Jacobs Allan.Jacobs@eng.sun.com Steve Messick messick@redhills.com John Pybus john@pybus.org Version 1.00 December 9, 1997 -- initial release Version 1.01 December 10, 1997 fixed bug in octal def (0..7 not 0..8) Version 1.10 August 1998 (parrt) added tree construction fixed definition of WS,comments for mac,pc,unix newlines added unary plus Version 1.11 (Nov 20, 1998) Added "shutup" option to turn off last ambig warning. Fixed inner class def to allow named class defs as statements synchronized requires compound not simple statement add [] after builtInType DOT class in primaryExpression "const" is reserved but not valid..removed from modifiers Version 1.12 (Feb 2, 1999) Changed LITERAL_xxx to xxx in tree grammar. Updated java.g to use tokens {...} now for 2.6.0 (new feature). Version 1.13 (Apr 23, 1999) Didn't have (stat)? for else clause in tree parser. Didn't gen ASTs for interface extends. Updated tree parser too. Updated to 2.6.0. Version 1.14 (Jun 20, 1999) Allowed final/abstract on local classes. Removed local interfaces from methods Put instanceof precedence where it belongs...in relationalExpr It also had expr not type as arg; fixed it. Missing ! on SEMI in classBlock fixed: (expr) + "string" was parsed incorrectly (+ as unary plus). fixed: didn't like Object[].class in parser or tree parser Version 1.15 (Jun 26, 1999) Screwed up rule with instanceof in it. :( Fixed. Tree parser didn't like (expr).something; fixed. Allowed multiple inheritance in tree grammar. oops. Version 1.16 (August 22, 1999) Extending an interface built a wacky tree: had extra EXTENDS. Tree grammar didn't allow multiple superinterfaces. Tree grammar didn't allow empty var initializer: {} Version 1.17 (October 12, 1999) ESC lexer rule allowed 399 max not 377 max. java.tree.g didn't handle the expression of synchronized statements. Version 1.18 (August 12, 2001) Terence updated to Java 2 Version 1.3 by observing/combining work of Allan Jacobs and Steve Messick. Handles 1.3 src. Summary: o primary didn't include boolean.class kind of thing o constructor calls parsed explicitly now: see explicitConstructorInvocation o add strictfp modifier o missing objBlock after new expression in tree grammar o merged local class definition alternatives, moved after declaration o fixed problem with ClassName.super.field o reordered some alternatives to make things more efficient o long and double constants were not differentiated from int/float o whitespace rule was inefficient: matched only one char o add an examples directory with some nasty 1.3 cases o made Main.java use buffered IO and a Reader for Unicode support o supports UNICODE? Using Unicode charVocabulay makes code file big, but only in the bitsets at the end. I need to make ANTLR generate unicode bitsets more efficiently. Version 1.19 (April 25, 2002) Terence added in nice fixes by John Pybus concerning floating constants and problems with super() calls. John did a nice reorg of the primary/postfix expression stuff to read better and makes f.g.super() parse properly (it was METHOD_CALL not a SUPER_CTOR_CALL). Also: o "finally" clause was a root...made it a child of "try" o Added stuff for asserts too for Java 1.4, but *commented out* as it is not backward compatible. Version 1.20 (October 27, 2002) Terence ended up reorging John Pybus' stuff to remove some nondeterminisms and some syntactic predicates. Note that the grammar is stricter now; e.g., this(...) must be the first statement. Trinary ?: operator wasn't working as array name: (isBig ? bigDigits : digits)[i]; Checked parser/tree parser on source for Resin-2.0.5, jive-2.1.1, jdk 1.3.1, Lucene, antlr 2.7.2a4, and the 110k-line jGuru server source. This grammar is in the PUBLIC DOMAIN
Field Summary | |
---|---|
static java.lang.String[] |
_tokenNames
|
static antlr.collections.impl.BitSet |
_tokenSet_0
|
static antlr.collections.impl.BitSet |
_tokenSet_1
|
static antlr.collections.impl.BitSet |
_tokenSet_10
|
static antlr.collections.impl.BitSet |
_tokenSet_11
|
static antlr.collections.impl.BitSet |
_tokenSet_12
|
static antlr.collections.impl.BitSet |
_tokenSet_13
|
static antlr.collections.impl.BitSet |
_tokenSet_14
|
static antlr.collections.impl.BitSet |
_tokenSet_15
|
static antlr.collections.impl.BitSet |
_tokenSet_16
|
static antlr.collections.impl.BitSet |
_tokenSet_17
|
static antlr.collections.impl.BitSet |
_tokenSet_18
|
static antlr.collections.impl.BitSet |
_tokenSet_19
|
static antlr.collections.impl.BitSet |
_tokenSet_2
|
static antlr.collections.impl.BitSet |
_tokenSet_20
|
static antlr.collections.impl.BitSet |
_tokenSet_21
|
static antlr.collections.impl.BitSet |
_tokenSet_22
|
static antlr.collections.impl.BitSet |
_tokenSet_23
|
static antlr.collections.impl.BitSet |
_tokenSet_24
|
static antlr.collections.impl.BitSet |
_tokenSet_25
|
static antlr.collections.impl.BitSet |
_tokenSet_26
|
static antlr.collections.impl.BitSet |
_tokenSet_27
|
static antlr.collections.impl.BitSet |
_tokenSet_3
|
static antlr.collections.impl.BitSet |
_tokenSet_4
|
static antlr.collections.impl.BitSet |
_tokenSet_5
|
static antlr.collections.impl.BitSet |
_tokenSet_6
|
static antlr.collections.impl.BitSet |
_tokenSet_7
|
static antlr.collections.impl.BitSet |
_tokenSet_8
|
static antlr.collections.impl.BitSet |
_tokenSet_9
|
Constructor Summary | |
---|---|
JavaRecognizer(antlr.ParserSharedInputState state)
|
|
JavaRecognizer(antlr.TokenBuffer tokenBuf)
|
|
JavaRecognizer(antlr.TokenStream lexer)
|
Method Summary | |
---|---|
void |
aCase()
|
void |
additiveExpression()
|
void |
andExpression()
|
void |
argList()
|
void |
arrayInitializer()
|
void |
assignmentExpression()
|
void |
builtInType()
|
void |
builtInTypeSpec(boolean addImagNode)
|
void |
casesGroup()
|
void |
caseSList()
|
void |
classBlock()
|
void |
classDefinition(antlr.collections.AST modifiers)
|
void |
classTypeSpec(boolean addImagNode)
|
void |
compilationUnit()
|
void |
compoundStatement()
|
void |
conditionalExpression()
|
void |
constant()
|
void |
constructorBody()
|
void |
ctorHead()
|
void |
declaration()
A declaration is the creation of a reference or primitive-type variable Create a separate Type/Var tree for each var in the var list. |
void |
declaratorBrackets(antlr.collections.AST typ)
|
void |
equalityExpression()
|
void |
exclusiveOrExpression()
|
void |
explicitConstructorInvocation()
Catch obvious constructor calls, but not the expr.super(...) calls |
void |
expression()
|
void |
expressionList()
|
void |
field()
|
void |
finallyClause()
|
void |
forCond()
|
void |
forInit()
|
void |
forIter()
|
void |
handler()
|
void |
identifier()
|
void |
identifierStar()
|
void |
identPrimary()
Match a, a.b.c refs, a.b.c(...) refs, a.b.c[], a.b.c[].class, and a.b.c.class refs. |
void |
implementsClause()
|
void |
importDefinition()
|
void |
inclusiveOrExpression()
|
void |
initializer()
|
void |
interfaceDefinition(antlr.collections.AST modifiers)
|
void |
interfaceExtends()
|
void |
logicalAndExpression()
|
void |
logicalOrExpression()
|
void |
modifier()
|
void |
modifiers()
|
void |
multiplicativeExpression()
|
void |
newArrayDeclarator()
|
void |
newExpression()
object instantiation. |
void |
packageDefinition()
|
void |
parameterDeclaration()
|
void |
parameterDeclarationList()
|
void |
parameterModifier()
|
void |
postfixExpression()
|
void |
primaryExpression()
|
void |
relationalExpression()
|
void |
shiftExpression()
|
void |
statement()
|
void |
superClassClause()
|
void |
throwsClause()
|
void |
tryBlock()
|
void |
type()
|
void |
typeDefinition()
|
void |
typeSpec(boolean addImagNode)
|
void |
unaryExpression()
|
void |
unaryExpressionNotPlusMinus()
|
void |
variableDeclarator(antlr.collections.AST mods,
antlr.collections.AST t)
Declaration of a variable. |
void |
variableDefinitions(antlr.collections.AST mods,
antlr.collections.AST t)
|
void |
varInitializer()
|
Methods inherited from class antlr.LLkParser |
---|
consume, LA, LT, traceIn, traceOut |
Methods inherited from class antlr.Parser |
---|
addMessageListener, addParserListener, addParserMatchListener, addParserTokenListener, addSemanticPredicateListener, addSyntacticPredicateListener, addTraceListener, consumeUntil, consumeUntil, getAST, getASTFactory, getFilename, getInputState, getTokenName, getTokenNames, getTokenTypeToASTClassMap, isDebugMode, mark, match, match, matchNot, panic, recover, removeMessageListener, removeParserListener, removeParserMatchListener, removeParserTokenListener, removeSemanticPredicateListener, removeSyntacticPredicateListener, removeTraceListener, reportError, reportError, reportWarning, rewind, setASTFactory, setASTNodeClass, setASTNodeType, setDebugMode, setFilename, setIgnoreInvalidDebugCalls, setInputState, setTokenBuffer, traceIndent |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String[] _tokenNames
public static final antlr.collections.impl.BitSet _tokenSet_0
public static final antlr.collections.impl.BitSet _tokenSet_1
public static final antlr.collections.impl.BitSet _tokenSet_2
public static final antlr.collections.impl.BitSet _tokenSet_3
public static final antlr.collections.impl.BitSet _tokenSet_4
public static final antlr.collections.impl.BitSet _tokenSet_5
public static final antlr.collections.impl.BitSet _tokenSet_6
public static final antlr.collections.impl.BitSet _tokenSet_7
public static final antlr.collections.impl.BitSet _tokenSet_8
public static final antlr.collections.impl.BitSet _tokenSet_9
public static final antlr.collections.impl.BitSet _tokenSet_10
public static final antlr.collections.impl.BitSet _tokenSet_11
public static final antlr.collections.impl.BitSet _tokenSet_12
public static final antlr.collections.impl.BitSet _tokenSet_13
public static final antlr.collections.impl.BitSet _tokenSet_14
public static final antlr.collections.impl.BitSet _tokenSet_15
public static final antlr.collections.impl.BitSet _tokenSet_16
public static final antlr.collections.impl.BitSet _tokenSet_17
public static final antlr.collections.impl.BitSet _tokenSet_18
public static final antlr.collections.impl.BitSet _tokenSet_19
public static final antlr.collections.impl.BitSet _tokenSet_20
public static final antlr.collections.impl.BitSet _tokenSet_21
public static final antlr.collections.impl.BitSet _tokenSet_22
public static final antlr.collections.impl.BitSet _tokenSet_23
public static final antlr.collections.impl.BitSet _tokenSet_24
public static final antlr.collections.impl.BitSet _tokenSet_25
public static final antlr.collections.impl.BitSet _tokenSet_26
public static final antlr.collections.impl.BitSet _tokenSet_27
Constructor Detail |
---|
public JavaRecognizer(antlr.TokenBuffer tokenBuf)
public JavaRecognizer(antlr.TokenStream lexer)
public JavaRecognizer(antlr.ParserSharedInputState state)
Method Detail |
---|
public final void compilationUnit() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void packageDefinition() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void importDefinition() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void typeDefinition() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void identifier() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void identifierStar() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void modifiers() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void classDefinition(antlr.collections.AST modifiers) throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void interfaceDefinition(antlr.collections.AST modifiers) throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void declaration() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void typeSpec(boolean addImagNode) throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void variableDefinitions(antlr.collections.AST mods, antlr.collections.AST t) throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void classTypeSpec(boolean addImagNode) throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void builtInTypeSpec(boolean addImagNode) throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void builtInType() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void type() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void modifier() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void superClassClause() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void implementsClause() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void classBlock() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void interfaceExtends() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void field() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void ctorHead() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void constructorBody() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void parameterDeclarationList() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void declaratorBrackets(antlr.collections.AST typ) throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void throwsClause() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void compoundStatement() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void explicitConstructorInvocation() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void statement() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void argList() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void variableDeclarator(antlr.collections.AST mods, antlr.collections.AST t) throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void varInitializer() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void initializer() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void arrayInitializer() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void expression() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void parameterDeclaration() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void parameterModifier() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void forInit() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void forCond() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void forIter() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void casesGroup() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void tryBlock() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void aCase() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void caseSList() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void expressionList() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void handler() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void finallyClause() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void assignmentExpression() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void conditionalExpression() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void logicalOrExpression() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void logicalAndExpression() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void inclusiveOrExpression() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void exclusiveOrExpression() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void andExpression() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void equalityExpression() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void relationalExpression() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void shiftExpression() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void additiveExpression() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void multiplicativeExpression() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void unaryExpression() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void unaryExpressionNotPlusMinus() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void postfixExpression() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void primaryExpression() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void newExpression() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void identPrimary() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void constant() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
public final void newArrayDeclarator() throws antlr.RecognitionException, antlr.TokenStreamException
antlr.RecognitionException
antlr.TokenStreamException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |