218 lines
3.4 KiB
Plaintext
218 lines
3.4 KiB
Plaintext
|
Grammatik:
|
||
|
|
||
|
1. Ausdrücke
|
||
|
|
||
|
Primary:
|
||
|
Literal
|
||
|
Variable
|
||
|
IncDecExpression
|
||
|
( Expression )
|
||
|
MethodInvocation
|
||
|
|
||
|
Variable:
|
||
|
Identifier { [ Expression ] }
|
||
|
|
||
|
Identifier:
|
||
|
[ Identifier . ] Name
|
||
|
|
||
|
IncDecExpression:
|
||
|
Variable IncDec
|
||
|
IncDec Variable
|
||
|
|
||
|
IncDec:
|
||
|
++ | --
|
||
|
|
||
|
Expression:
|
||
|
UnaryExpression
|
||
|
BinaryExpression
|
||
|
ConditionalExpression
|
||
|
AssignmentExpression
|
||
|
MethodInvocation
|
||
|
CreationExpression
|
||
|
|
||
|
UnaryExpression:
|
||
|
Primary
|
||
|
UnaryOperator
|
||
|
UnaryExpression
|
||
|
UnaryOperator
|
||
|
+ | - | ! | ...
|
||
|
|
||
|
BinaryExpression:
|
||
|
Expression BinaryOperator Expression
|
||
|
|
||
|
BinaryOperator:
|
||
|
+ | - | * | / | & | && | | | || | ...
|
||
|
|
||
|
|
||
|
AssignmentExpression:
|
||
|
Variable AssignmentOperator Expression
|
||
|
|
||
|
AssignmentOperator:
|
||
|
= | += | -= | *= | /= | ...
|
||
|
|
||
|
MethodInvocation:
|
||
|
Method ( [ ActualArguments ] )
|
||
|
|
||
|
Method:
|
||
|
Identifier
|
||
|
|
||
|
ActualArguments:
|
||
|
Expression { , Expression }
|
||
|
|
||
|
CreationExpression:
|
||
|
new ClassIdentifier ( [ ActualArguments ] )
|
||
|
|
||
|
|
||
|
|
||
|
2. Anweisungen
|
||
|
|
||
|
Statement:
|
||
|
SimpleStatement
|
||
|
CompositeStatement
|
||
|
Label : Statement
|
||
|
|
||
|
SimpleStatement:
|
||
|
EmptyStatement
|
||
|
ExpressionStatement
|
||
|
JumpStatement
|
||
|
EmptyStatement ;
|
||
|
|
||
|
ExpressionStatement:
|
||
|
StatementExpression ;
|
||
|
|
||
|
StatementExpression:
|
||
|
AssignmentExpression
|
||
|
IncDecExpression
|
||
|
MethodInvocation
|
||
|
CreationExpression
|
||
|
|
||
|
JumpStatement:
|
||
|
BreakStatement
|
||
|
ContinueStatement
|
||
|
ReturnStatement
|
||
|
BreakStatement
|
||
|
break [ Label ] ;
|
||
|
|
||
|
ContinueStatement:
|
||
|
continue [ Label ] ;
|
||
|
|
||
|
ReturnStatement.
|
||
|
return [ Expression ] ;
|
||
|
|
||
|
Label:
|
||
|
Name
|
||
|
|
||
|
CompositeStatement:
|
||
|
Block
|
||
|
CaseStatement
|
||
|
RepetitiveStatement
|
||
|
|
||
|
Block:
|
||
|
{ { VariableDeclaration | Statement } }
|
||
|
VariableDeclaration [ final ] Type VariableDeclarators ;
|
||
|
VariableDeclarators VariableDeclarator { , VariableDeclarator }
|
||
|
VariableDeclarator Name [ = Expression ]
|
||
|
|
||
|
Type:
|
||
|
PrimitiveType
|
||
|
ClassType
|
||
|
|
||
|
PrimitiveType:
|
||
|
Name
|
||
|
|
||
|
ClassType:
|
||
|
Identifier
|
||
|
|
||
|
CaseStatement:
|
||
|
ConditionalStatement
|
||
|
SwitchStatement
|
||
|
RepetitiveStatement WhileStatement
|
||
|
DoStatement
|
||
|
ForStatement
|
||
|
|
||
|
ConditionalStatement:
|
||
|
if ( Expression ) Statement [ else Statement ]
|
||
|
|
||
|
SwitchStatement:
|
||
|
switch ( Expression ) SwitchBlock
|
||
|
|
||
|
SwitchBlock:
|
||
|
{ { CaseGroup } }
|
||
|
|
||
|
CaseGroup:
|
||
|
SwitchLabel { SwitchLabel } StatementSequence
|
||
|
|
||
|
SwitchLabel:
|
||
|
case ConstantExpression :
|
||
|
default :
|
||
|
|
||
|
ConstantExpression:
|
||
|
Expression
|
||
|
|
||
|
WhileStatement:
|
||
|
while ( Expression ) Statement
|
||
|
|
||
|
DoStatement:
|
||
|
do Statement while ( Expression ) ;
|
||
|
|
||
|
ForStatement:
|
||
|
for ( [ Initialization ] ; [ Expression ] ; [ Update ] ) Statement
|
||
|
|
||
|
Initialization:
|
||
|
StatementExpression { , StatementExpression }
|
||
|
VariableDeclaration
|
||
|
|
||
|
Update:
|
||
|
StatementExpression { , StatementExpression }
|
||
|
|
||
|
|
||
|
3. Methoden
|
||
|
|
||
|
MethodDeclaration:
|
||
|
MethodHeader MethodBody
|
||
|
|
||
|
MethodHeader:
|
||
|
{ Modifier } ResultType MethodDeclarator
|
||
|
|
||
|
Modifier:
|
||
|
public | static | ...
|
||
|
|
||
|
ResultType:
|
||
|
Type | void
|
||
|
|
||
|
MethodDeclarator:
|
||
|
Identifier ( [ FormalArguments ] )
|
||
|
|
||
|
FormalArguments:
|
||
|
FormalArgument { , FormalArgument }
|
||
|
|
||
|
FormalArgument:
|
||
|
Type Name
|
||
|
|
||
|
MethodBody:
|
||
|
; | Block
|
||
|
|
||
|
|
||
|
4. Klassen
|
||
|
|
||
|
ClassDeclaration:
|
||
|
[ public ] class Name ClassBody
|
||
|
|
||
|
ClassBody:
|
||
|
{ { { Modifier } Declaration } }
|
||
|
|
||
|
Declaration:
|
||
|
FieldDeclaration
|
||
|
MethodDeclaration
|
||
|
ClassDeclaration
|
||
|
ConstructorDeclaration
|
||
|
Initializer
|
||
|
|
||
|
FieldDeclaration:
|
||
|
VariableDeclaration
|
||
|
|
||
|
ConstructorDeclaration:
|
||
|
[ public ] Name ( [ FormalArguments ] ) Block
|
||
|
|
||
|
Initializer:
|
||
|
[ static ] Block
|