Class
Interface
Statements
Expressions
Code Block | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
int i = 2; if (i>2) { } switch(i) { case 2 : return true; case 4 : return true; default : return false; } while (i>2) { } do { } while (i>2); for (int j = 0; j<10; j++) { } List list = [1,2,3]; for (Object element : list) { } |
Expressions
Code Block | ||
---|---|---|
| ||
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 |
Metadata
Code Block | ||
---|---|---|
| ||
Metadata ::= ID "=" MetadataValue. MetadataValue ::= MetadataValueSingle | MetadataValueList | MetadataValueMap. MetadataValueSingle ::= INTEGER | Double | CHAR | STRING | BOOLEAN | QName. MetadataValueList ::= "[" (MetadataValue ("," MetadataValue)*)? "]". MetadataValueMap ::= "[" (MetadataValueMapEntry ("," MetadataValueMapEntry)*)? "]". MetadataValueMapEntry ::= MetadataValue ":" MetadataValue. |
...