Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
titleGrammar
Statement              ::= ( StatementBlock | IfStatement | SwitchStatement | WhileStatement | DoWhileStatement | ForStatement | ForEachStatement
                           | VariableStatement | ConstructorStatement | ExpressionStatement | BreakStatement | ContinueStatement | ReturnStatement ).
StatementBlock         ::= "{" (Statement)* "}".
IfStatement            ::= "if" "(" Expression ")" Statement ("else" Statement)?.
SwitchStatement        ::= "switch" "(" Expression ")" "{" ("case" Expression ":" (Statement)*)* ("default" ":" (Statement)*)? "}"
WhileStatement         ::= "while" "(" Expression ")" Statement.
DoWhileStatement       ::= "do" Statement "while" "(" Expression ")" ";".
ForStatement           ::= "for" "(" VariableDeclaration ";" Expression ";" Expression ")" Statement.
ForEachStatement       ::= "for" "(" VariableDeclaration ":" Expression ")" Statement.
VariableStatement      ::= VariableDeclaration VariableInit ";".
ConstructorStatement   ::= ("super" | "this") "(" (ArgsList)? ")" ";".
ExpressionStatement    ::= Expression ";".
BreakStatement         ::= "break" ";".
ContinueStatement      ::= "continue" ";".
ReturnStatement        ::= "return" (Expression)? ";".
Code Block
titleExample if-Statement
int i = 2;
if (i>2) {
            
}
Code Block
titleExample switch-Statement
int i = 2;      
switch(i) {
	case 2 :
		return true;
	case 4 : 
		return true;
	default :
		return false;
}
Code Block
titleExample while-Statement
int i = 2;           
while (i>2) {
            
} 

do {
            
} while (i>2);
            
Code Block
titleExample for-Statement
for (int j = 0; j<10; j++) {
            
} 
        
List list = [1,2,3];
for (Object element : list) {
            
}

Expressions

Code Block
titleGrammar
Expression           ::= ( AssignmentExpression | LogicalExpression | EqualityExpression | ArithmeticExpression | UnaryExpression | CastExpression
							| PrefixExpression | PostfixExpression | InstanceOfExpression | CreateExpression | AttributeExpression | MethodExpression
							| ArrayExpression | "this" | "super" | ID | LiteralExpression | ("(" Expression ")").

AssignmentExpression ::= Expression ("=" | "+=" | "-=" | "*=" | "/=" | "%=") Expression.
LogicalExpression    ::= Expression ("&&" | "||") Expression.
EqualityExpression   ::= Expression ("==" | "!=" | ">" | ">=" | "<" | "<=") Expression.
ArithmeticExpression ::= Expression ("+" | "-" | "*" | "/"| "%") Expression.                      
UnaryExpression      ::= ("+" | "-" | "!") Expression.
CastExpression       ::= "(" Type ")" Expression.
PrefixExpression     ::= ("++" | "--") Expression.
PostfixExpression    ::= Expression ("++" | "--").
InstanceOfExpression ::= Expression "instanceof" Type.
NewExpression        ::= "new" QName (("[" "]") | (("(" (ArgsList)? ")")? ("{" ArgsMap "}")?)).
MemberCallExpression ::= (Expression ".")? ID ("(" (ArgsList)? ")")?.
ArrayExpression      ::= Expression ("[" ArgsList "]")+.
LiteralExpression    ::= Integer | Double | Boolean | Char | String | Range | List | Map | Null
VariableInit         ::= ((("(" (ArgsList)? ")")? ("{" ArgsMap "}")?) | ("=" Expression)).
ArgsList             ::= Expression ("," Expression)*.
ArgsMap              ::= ArgsMapKeyValue ("," ArgsMapKeyValue)*.
ArgsMapKeyValue      ::= ID "=" Expression

...