'
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 pwilliams@netdynamics.com
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 tracking now done with following ID:
$Id: JavaRecognizer.java,v 1.16 2003/02/24 15:04:41 thierrylach Exp $
BUG:
Doesn't like boolean.class!
class Test {
public static void main( String args[] ) {
if (boolean.class.equals(boolean.class)) {
System.out.println("works");
}
}
}
This grammar is in the PUBLIC DOMAIN
Fields inherited from class antlr.Parser |
astFactory, inputState, returnAST, tokenNames, tokenTypeToASTClassMap, traceDepth |
Fields inherited from interface org.argouml.uml.reveng.java.JavaTokenTypes |
ABSTRACT, ARRAY_DECLARATOR, ARRAY_INIT, ASSIGN, BAND, BAND_ASSIGN, BLOCK, BNOT, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, CASE_GROUP, CHAR_LITERAL, CLASS_DEF, COLON, COMMA, CTOR_DEF, DEC, DIV, DIV_ASSIGN, DOT, ELIST, EMPTY_STAT, EOF, EQUAL, ESC, EXPONENT, EXPR, EXTENDS_CLAUSE, FINAL, FLOAT_SUFFIX, FOR_CONDITION, FOR_INIT, FOR_ITERATOR, GE, GT, HEX_DIGIT, IDENT, IMPLEMENTS_CLAUSE, IMPORT, INC, INDEX_OP, INSTANCE_INIT, INTERFACE_DEF, JAVADOC, LABELED_STAT, LAND, LBRACK, LCURLY, LE, LITERAL_boolean, LITERAL_break, LITERAL_byte, LITERAL_case, LITERAL_catch, LITERAL_char, LITERAL_class, LITERAL_continue, LITERAL_default, LITERAL_do, LITERAL_double, LITERAL_else, LITERAL_extends, LITERAL_false, LITERAL_finally, LITERAL_float, LITERAL_for, LITERAL_if, LITERAL_implements, LITERAL_import, LITERAL_instanceof, LITERAL_int, LITERAL_interface, LITERAL_long, LITERAL_native, LITERAL_new, LITERAL_null, LITERAL_package, LITERAL_private, LITERAL_protected, LITERAL_public, LITERAL_return, LITERAL_short, LITERAL_static, LITERAL_super, LITERAL_switch, LITERAL_synchronized, LITERAL_this, LITERAL_threadsafe, LITERAL_throw, LITERAL_throws, LITERAL_transient, LITERAL_true, LITERAL_try, LITERAL_void, LITERAL_volatile, LITERAL_while, LNOT, LOR, LPAREN, LT, METHOD_CALL, METHOD_DEF, MINUS, MINUS_ASSIGN, ML_COMMENT, MOD, MOD_ASSIGN, MODIFIERS, NOT_EQUAL, NULL_TREE_LOOKAHEAD, NUM_FLOAT, NUM_INT, OBJBLOCK, PACKAGE_DEF, PARAMETER_DEF, PARAMETERS, PLUS, PLUS_ASSIGN, POST_DEC, POST_INC, QUESTION, RBRACK, RCURLY, RPAREN, SEMI, SL, SL_ASSIGN, SL_COMMENT, SLIST, SR, SR_ASSIGN, STAR, STAR_ASSIGN, STATIC_INIT, STRING_LITERAL, TYPE, TYPECAST, UNARY_MINUS, UNARY_PLUS, VARIABLE_DEF, VOCAB, WS |
Method Summary |
void |
aCase()
|
void |
additiveExpression()
|
void |
andExpression()
|
void |
appendExpression(java.lang.String expr)
Appends to a tracked expression. (used to restore it) |
void |
argList()
|
void |
arrayInitializer()
|
void |
assignmentExpression()
|
java.lang.String |
builtInType()
|
java.lang.String |
builtInTypeSpec()
|
void |
casesGroup()
|
void |
caseSList()
|
void |
classBlock()
|
void |
classDefinition(java.lang.String javadoc,
short modifiers)
|
java.lang.String |
classTypeSpec()
|
void |
classVariableDeclarator(java.lang.String javadoc,
short modifiers,
java.lang.String varType)
Declaration of a class variable.
|
void |
classVariableDefinitions(java.lang.String javadoc,
short modifiers,
java.lang.String returnType)
|
void |
compilationUnit(Modeller modeller,
JavaLexer lexer)
|
void |
compoundStatement()
|
void |
conditionalExpression()
|
java.lang.String |
constant()
|
void |
ctorHead(short mods)
|
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. |
java.lang.String |
declaratorBrackets()
|
void |
equalityExpression()
|
void |
exclusiveOrExpression()
|
void |
expression()
|
void |
expressionList()
|
void |
field()
|
void |
forCond()
|
void |
forInit()
|
void |
forIter()
|
java.lang.String |
getExpression()
Get a tracked expression. |
void |
handler()
|
java.lang.String |
identifier()
|
java.lang.String |
identifierStar()
|
java.util.Vector |
implementsClause()
|
void |
importDefinition()
|
void |
inclusiveOrExpression()
|
void |
initializer()
|
void |
interfaceDefinition(java.lang.String javadoc,
short modifiers)
|
java.util.Vector |
interfaceExtends()
|
void |
logicalAndExpression()
|
void |
logicalOrExpression()
|
void |
match(int t)
|
short |
modifier()
|
short |
modifiers()
|
void |
multiplicativeExpression()
|
void |
newArrayDeclarator()
|
java.lang.String |
newExpression()
object instantiation.
|
void |
packageDefinition()
|
java.util.Vector |
parameterDeclaration()
|
java.util.Vector |
parameterDeclarationList()
|
java.lang.String |
parameterDeclaratorBrackets()
|
short |
parameterModifier()
|
void |
postfixExpression()
|
java.lang.String |
primaryExpression()
|
void |
relationalExpression()
|
java.lang.String |
returnTypeBrackersOnEndOfMethodHead()
|
void |
shiftExpression()
|
void |
statement()
|
java.lang.String |
superClassClause()
|
void |
throwsClause()
|
void |
tryBlock()
|
java.lang.String |
type()
|
void |
typeDefinition()
|
java.lang.String |
typeSpec()
|
void |
unaryExpression()
|
void |
unaryExpressionNotPlusMinus()
|
void |
variableDeclarator(java.lang.String javadoc,
short modifiers,
java.lang.String varType)
Declaration of a variable. |
void |
variableDefinitions(java.lang.String javadoc,
short modifiers,
java.lang.String returnType)
|
java.lang.String |
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, defaultDebuggingSetup, getAST, getASTFactory, getFilename, getInputState, getTokenName, getTokenNames, getTokenTypeToASTClassMap, isDebugMode, mark, match, matchNot, panic, 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 |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ACC_PUBLIC
public static final short ACC_PUBLIC
ACC_PRIVATE
public static final short ACC_PRIVATE
ACC_PROTECTED
public static final short ACC_PROTECTED
ACC_STATIC
public static final short ACC_STATIC
ACC_FINAL
public static final short ACC_FINAL
ACC_SUPER
public static final short ACC_SUPER
ACC_VOLATILE
public static final short ACC_VOLATILE
ACC_TRANSIENT
public static final short ACC_TRANSIENT
ACC_NATIVE
public static final short ACC_NATIVE
ACC_INTERFACE
public static final short ACC_INTERFACE
ACC_ABSTRACT
public static final short ACC_ABSTRACT
ACC_SYNCHRONIZED
public static final short ACC_SYNCHRONIZED
_tokenNames
public static final java.lang.String[] _tokenNames
_tokenSet_0
public static final antlr.collections.impl.BitSet _tokenSet_0
_tokenSet_1
public static final antlr.collections.impl.BitSet _tokenSet_1
_tokenSet_2
public static final antlr.collections.impl.BitSet _tokenSet_2
_tokenSet_3
public static final antlr.collections.impl.BitSet _tokenSet_3
_tokenSet_4
public static final antlr.collections.impl.BitSet _tokenSet_4
_tokenSet_5
public static final antlr.collections.impl.BitSet _tokenSet_5
_tokenSet_6
public static final antlr.collections.impl.BitSet _tokenSet_6
_tokenSet_7
public static final antlr.collections.impl.BitSet _tokenSet_7
_tokenSet_8
public static final antlr.collections.impl.BitSet _tokenSet_8
_tokenSet_9
public static final antlr.collections.impl.BitSet _tokenSet_9
_tokenSet_10
public static final antlr.collections.impl.BitSet _tokenSet_10
_tokenSet_11
public static final antlr.collections.impl.BitSet _tokenSet_11
_tokenSet_12
public static final antlr.collections.impl.BitSet _tokenSet_12
_tokenSet_13
public static final antlr.collections.impl.BitSet _tokenSet_13
_tokenSet_14
public static final antlr.collections.impl.BitSet _tokenSet_14
_tokenSet_15
public static final antlr.collections.impl.BitSet _tokenSet_15
_tokenSet_16
public static final antlr.collections.impl.BitSet _tokenSet_16
_tokenSet_17
public static final antlr.collections.impl.BitSet _tokenSet_17
_tokenSet_18
public static final antlr.collections.impl.BitSet _tokenSet_18
_tokenSet_19
public static final antlr.collections.impl.BitSet _tokenSet_19
_tokenSet_20
public static final antlr.collections.impl.BitSet _tokenSet_20
_tokenSet_21
public static final antlr.collections.impl.BitSet _tokenSet_21
JavaRecognizer
protected JavaRecognizer(antlr.TokenBuffer tokenBuf,
int k)
JavaRecognizer
public JavaRecognizer(antlr.TokenBuffer tokenBuf)
JavaRecognizer
protected JavaRecognizer(antlr.TokenStream lexer,
int k)
JavaRecognizer
public JavaRecognizer(antlr.TokenStream lexer)
JavaRecognizer
public JavaRecognizer(antlr.ParserSharedInputState state)
getExpression
public java.lang.String getExpression()
- Get a tracked expression.
- Returns:
- the tracked expression.
appendExpression
public void appendExpression(java.lang.String expr)
- Appends to a tracked expression. (used to restore it)
match
public void match(int t)
throws antlr.MismatchedTokenException,
antlr.TokenStreamException
- Overrides:
match
in class antlr.Parser
compilationUnit
public final void compilationUnit(Modeller modeller,
JavaLexer lexer)
throws antlr.RecognitionException,
antlr.TokenStreamException
packageDefinition
public final void packageDefinition()
throws antlr.RecognitionException,
antlr.TokenStreamException
importDefinition
public final void importDefinition()
throws antlr.RecognitionException,
antlr.TokenStreamException
typeDefinition
public final void typeDefinition()
throws antlr.RecognitionException,
antlr.TokenStreamException
identifier
public final java.lang.String identifier()
throws antlr.RecognitionException,
antlr.TokenStreamException
identifierStar
public final java.lang.String identifierStar()
throws antlr.RecognitionException,
antlr.TokenStreamException
modifiers
public final short modifiers()
throws antlr.RecognitionException,
antlr.TokenStreamException
classDefinition
public final void classDefinition(java.lang.String javadoc,
short modifiers)
throws antlr.RecognitionException,
antlr.TokenStreamException
interfaceDefinition
public final void interfaceDefinition(java.lang.String javadoc,
short modifiers)
throws antlr.RecognitionException,
antlr.TokenStreamException
declaration
public final void declaration()
throws antlr.RecognitionException,
antlr.TokenStreamException
- 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.
typeSpec
public final java.lang.String typeSpec()
throws antlr.RecognitionException,
antlr.TokenStreamException
variableDefinitions
public final void variableDefinitions(java.lang.String javadoc,
short modifiers,
java.lang.String returnType)
throws antlr.RecognitionException,
antlr.TokenStreamException
modifier
public final short modifier()
throws antlr.RecognitionException,
antlr.TokenStreamException
classTypeSpec
public final java.lang.String classTypeSpec()
throws antlr.RecognitionException,
antlr.TokenStreamException
builtInTypeSpec
public final java.lang.String builtInTypeSpec()
throws antlr.RecognitionException,
antlr.TokenStreamException
builtInType
public final java.lang.String builtInType()
throws antlr.RecognitionException,
antlr.TokenStreamException
type
public final java.lang.String type()
throws antlr.RecognitionException,
antlr.TokenStreamException
superClassClause
public final java.lang.String superClassClause()
throws antlr.RecognitionException,
antlr.TokenStreamException
implementsClause
public final java.util.Vector implementsClause()
throws antlr.RecognitionException,
antlr.TokenStreamException
classBlock
public final void classBlock()
throws antlr.RecognitionException,
antlr.TokenStreamException
interfaceExtends
public final java.util.Vector interfaceExtends()
throws antlr.RecognitionException,
antlr.TokenStreamException
field
public final void field()
throws antlr.RecognitionException,
antlr.TokenStreamException
ctorHead
public final void ctorHead(short mods)
throws antlr.RecognitionException,
antlr.TokenStreamException
compoundStatement
public final void compoundStatement()
throws antlr.RecognitionException,
antlr.TokenStreamException
parameterDeclarationList
public final java.util.Vector parameterDeclarationList()
throws antlr.RecognitionException,
antlr.TokenStreamException
returnTypeBrackersOnEndOfMethodHead
public final java.lang.String returnTypeBrackersOnEndOfMethodHead()
throws antlr.RecognitionException,
antlr.TokenStreamException
throwsClause
public final void throwsClause()
throws antlr.RecognitionException,
antlr.TokenStreamException
classVariableDefinitions
public final void classVariableDefinitions(java.lang.String javadoc,
short modifiers,
java.lang.String returnType)
throws antlr.RecognitionException,
antlr.TokenStreamException
classVariableDeclarator
public final void classVariableDeclarator(java.lang.String javadoc,
short modifiers,
java.lang.String varType)
throws antlr.RecognitionException,
antlr.TokenStreamException
- Declaration of a class variable.
It can also include possible initialization.
declaratorBrackets
public final java.lang.String declaratorBrackets()
throws antlr.RecognitionException,
antlr.TokenStreamException
varInitializer
public final java.lang.String varInitializer()
throws antlr.RecognitionException,
antlr.TokenStreamException
variableDeclarator
public final void variableDeclarator(java.lang.String javadoc,
short modifiers,
java.lang.String varType)
throws antlr.RecognitionException,
antlr.TokenStreamException
- Declaration of a variable. This can be a class/instance variable,
or a local variable in a method
It can also include possible initialization.
initializer
public final void initializer()
throws antlr.RecognitionException,
antlr.TokenStreamException
arrayInitializer
public final void arrayInitializer()
throws antlr.RecognitionException,
antlr.TokenStreamException
expression
public final void expression()
throws antlr.RecognitionException,
antlr.TokenStreamException
parameterDeclaration
public final java.util.Vector parameterDeclaration()
throws antlr.RecognitionException,
antlr.TokenStreamException
parameterModifier
public final short parameterModifier()
throws antlr.RecognitionException,
antlr.TokenStreamException
parameterDeclaratorBrackets
public final java.lang.String parameterDeclaratorBrackets()
throws antlr.RecognitionException,
antlr.TokenStreamException
statement
public final void statement()
throws antlr.RecognitionException,
antlr.TokenStreamException
forInit
public final void forInit()
throws antlr.RecognitionException,
antlr.TokenStreamException
forCond
public final void forCond()
throws antlr.RecognitionException,
antlr.TokenStreamException
forIter
public final void forIter()
throws antlr.RecognitionException,
antlr.TokenStreamException
casesGroup
public final void casesGroup()
throws antlr.RecognitionException,
antlr.TokenStreamException
tryBlock
public final void tryBlock()
throws antlr.RecognitionException,
antlr.TokenStreamException
aCase
public final void aCase()
throws antlr.RecognitionException,
antlr.TokenStreamException
caseSList
public final void caseSList()
throws antlr.RecognitionException,
antlr.TokenStreamException
expressionList
public final void expressionList()
throws antlr.RecognitionException,
antlr.TokenStreamException
handler
public final void handler()
throws antlr.RecognitionException,
antlr.TokenStreamException
assignmentExpression
public final void assignmentExpression()
throws antlr.RecognitionException,
antlr.TokenStreamException
conditionalExpression
public final void conditionalExpression()
throws antlr.RecognitionException,
antlr.TokenStreamException
logicalOrExpression
public final void logicalOrExpression()
throws antlr.RecognitionException,
antlr.TokenStreamException
logicalAndExpression
public final void logicalAndExpression()
throws antlr.RecognitionException,
antlr.TokenStreamException
inclusiveOrExpression
public final void inclusiveOrExpression()
throws antlr.RecognitionException,
antlr.TokenStreamException
exclusiveOrExpression
public final void exclusiveOrExpression()
throws antlr.RecognitionException,
antlr.TokenStreamException
andExpression
public final void andExpression()
throws antlr.RecognitionException,
antlr.TokenStreamException
equalityExpression
public final void equalityExpression()
throws antlr.RecognitionException,
antlr.TokenStreamException
relationalExpression
public final void relationalExpression()
throws antlr.RecognitionException,
antlr.TokenStreamException
shiftExpression
public final void shiftExpression()
throws antlr.RecognitionException,
antlr.TokenStreamException
additiveExpression
public final void additiveExpression()
throws antlr.RecognitionException,
antlr.TokenStreamException
multiplicativeExpression
public final void multiplicativeExpression()
throws antlr.RecognitionException,
antlr.TokenStreamException
unaryExpression
public final void unaryExpression()
throws antlr.RecognitionException,
antlr.TokenStreamException
unaryExpressionNotPlusMinus
public final void unaryExpressionNotPlusMinus()
throws antlr.RecognitionException,
antlr.TokenStreamException
postfixExpression
public final void postfixExpression()
throws antlr.RecognitionException,
antlr.TokenStreamException
primaryExpression
public final java.lang.String primaryExpression()
throws antlr.RecognitionException,
antlr.TokenStreamException
newExpression
public final java.lang.String newExpression()
throws antlr.RecognitionException,
antlr.TokenStreamException
- object instantiation.
Trees are built as illustrated by the following input/tree pairs:
new T()
new
|
T -- ELIST
|
arg1 -- arg2 -- .. -- argn
new int[]
new
|
int -- ARRAY_DECLARATOR
new int[] {1,2}
new
|
int -- ARRAY_DECLARATOR -- ARRAY_INIT
|
EXPR -- EXPR
| |
1 2
new int[3]
new
|
int -- ARRAY_DECLARATOR
|
EXPR
|
3
new int[1][2]
new
|
int -- ARRAY_DECLARATOR
|
ARRAY_DECLARATOR -- EXPR
| |
EXPR 1
|
2
argList
public final void argList()
throws antlr.RecognitionException,
antlr.TokenStreamException
constant
public final java.lang.String constant()
throws antlr.RecognitionException,
antlr.TokenStreamException
newArrayDeclarator
public final void newArrayDeclarator()
throws antlr.RecognitionException,
antlr.TokenStreamException