Java Syntax Production Rules (grammar):
ClassDeclaration:
ClassModifiersopt class
Identifier
Superopt
Interfacesopt
ClassBody
ClassModifiers:
ClassModifier
ClassModifiers
ClassModifier
ClassModifier: one of
public
abstract final
Super:
extends
ClassType
Interfaces:
implements
InterfaceTypeList
InterfaceTypeList:
InterfaceType
InterfaceTypeList ,
InterfaceType
ClassBody:
{
ClassBodyDeclarationsopt }
ClassBodyDeclarations:
ClassBodyDeclaration
ClassBodyDeclarations
ClassBodyDeclaration
ClassBodyDeclaration:
ClassMemberDeclaration
StaticInitializer
ConstructorDeclaration
ClassMemberDeclaration:
FieldDeclaration
MethodDeclaration
FieldDeclaration:
FieldModifiersopt
Type
VariableDeclarators ;
VariableDeclarators:
VariableDeclarator
VariableDeclarators ,
VariableDeclarator
VariableDeclarator:
VariableDeclaratorId
VariableDeclaratorId =
VariableInitializer
VariableDeclaratorId:
Identifier
VariableDeclaratorId [ ]
VariableInitializer:
Expression
ArrayInitializer
FieldDeclaration:
FieldModifiersopt
Type
VariableDeclarators ;
FieldModifiers:
FieldModifier
FieldModifiers
FieldModifier
FieldModifier: one of
public protected private
final static transient volatile
MethodDeclaration:
MethodHeader
MethodBody
MethodHeader:
MethodModifiersopt
ResultType
MethodDeclarator
Throwsopt
ResultType:
Type
void
MethodDeclarator:
Identifer (
FormalParameterListopt )
FormalParameterList:
FormalParameter
FormalParameterList ,
FormalParameter
FormalParameter:
Type
VariableDeclaratorId
MethodModifiers:
MethodModifier
MethodModifiers
MethodModifier
MethodModifier: one of
public protected private
abstract static final synchronized native
ConstructorDeclaration:
ConstructorModifiersopt
ConstructorDeclarator
Throwsopt
ConstructorBody
ConstructorDeclarator:
SimpleTypeName (
FormalParameterListopt )
The general syntax for a method is:
public returnType methodName (TypeOfParameter1 param1, TypeOfParam2 param2,...){
type1 localVariable1;
type2 localVariable2;
...
statement1;
statement2;
...
}