StateJ syntax diagram

packageDefinition importDefinition typeDefinition

identifier

identifierStar

modifiers classDefinition interfaceDefinition classDefinition

modifiers typeSpec variableDefinitions

classTypeSpec builtInTypeSpec

identifier

builtInType

identifier builtInType

modifier

superClassClause implementsClause classBlock

identifier

interfaceExtends classBlock

field

identifier identifier

identifier identifier

modifiers ctorHead constructorBody classDefinition interfaceDefinition typeSpec parameterDeclarationList declaratorBrackets throwsClause compoundStatement variableDefinitions compoundStatement compoundStatement classBlock

explicitConstructorInvocation statement

argList argList

variableDeclarator variableDeclarator

declaratorBrackets varInitializer

initializer

initializer initializer

expression arrayInitializer

parameterDeclarationList throwsClause

identifier identifier

parameterDeclaration parameterDeclaration

parameterModifier typeSpec declaratorBrackets

statement

compoundStatement declaration declaration expression modifiers classDefinition statement expression statement statement forInit forCond forIter statement expression statement statement expression expression expression casesGroup tryBlock expression expression compoundStatement expression expression

aCase caseSList

expression

statement

declaration declaration expressionList

expression

expressionList

compoundStatement handler finallyClause

compoundStatement

parameterDeclaration compoundStatement

assignmentExpression

expression expression

conditionalExpression assignmentExpression

logicalOrExpression assignmentExpression conditionalExpression

logicalAndExpression logicalAndExpression

inclusiveOrExpression inclusiveOrExpression

exclusiveOrExpression exclusiveOrExpression

andExpression andExpression

equalityExpression equalityExpression

relationalExpression relationalExpression

shiftExpression shiftExpression typeSpec

additiveExpression additiveExpression

multiplicativeExpression multiplicativeExpression

unaryExpression unaryExpression

unaryExpression unaryExpression unaryExpression unaryExpression unaryExpressionNotPlusMinus

unaryExpression unaryExpression builtInTypeSpec builtInTypeSpec unaryExpression classTypeSpec unaryExpressionNotPlusMinus classTypeSpec unaryExpressionNotPlusMinus postfixExpression

primaryExpression argList argList argList newExpression expression

identPrimary constant newExpression assignmentExpression builtInType

argList

type argList classBlock newArrayDeclarator arrayInitializer

expressionList

expression