You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

Class

 

Interface

 

Statements

 

Expressions

Grammar
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)? ";".
Example
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) {
            
}

Metadata

Grammar
Metadata               ::= ID "=" MetadataValue.
MetadataValue          ::= MetadataValueSingle | MetadataValueList | MetadataValueMap.
MetadataValueSingle    ::= INTEGER | Double | CHAR | STRING | BOOLEAN | QName.
MetadataValueList      ::= "[" (MetadataValue ("," MetadataValue)*)? "]".
MetadataValueMap       ::= "[" (MetadataValueMapEntry ("," MetadataValueMapEntry)*)? "]".
MetadataValueMapEntry  ::= MetadataValue ":" MetadataValue.

See operators in ODL or queries in QDL for examples.

Literals

Grammar
Integer                 ::= (0..9)+.
Double                  ::= (0..9)* "." (0..9)+.
Boolean                 ::= ("true" | "false").
Char                    ::= "'" Unicode-Character "'".
String                  ::= '"' (Unicode-Character)* '"'.   
Range                   ::= (0..9)+ ".." (0..9)+.
List                    ::= "[" (Expression ("," Expression)*)? "]".  
Map                     ::= "[" (MapKeyValue ("," MapKeyValue)*)? "]".
MapKeyValue             ::= Expression ":" Expression.
Null                    ::= "null".
Example
Range r = 1..10;
List l  = [1, 2, 3];
Map m   = ["key1":1, "key2":2];

Identifier, Qualified Name, Namespace

Grammar
ID                      ::= ("a".."z"|"A".."Z"|"_")("a".."z"|"A".."Z"|"_"|"0".."9")*.
QName                   ::= ID ("." ID)*
Namespace              ::= "use" QualifiedNameWithWildcard ";".
QualifiedNameWildcard  ::= QualifiedName (".*")?
Example
use java::util::*;
use de::uniol::inf::is::odysseus::core::ISubscription;
use com::google::common::collect::ImmutableMap;

Java-Code

Grammar
GPLCode                ::= "$*" GPL Code "*$"
Example
$*
public static void main(String[] args) {
         
}
*$

Comments

Grammar
Comment                 ::= SingeLineComment | MultiLineComment.
SingeLineComment        ::= "//" Text (("\r")? "\n")?.
MultiLineComment        ::= "/*" Text "*/".
Example
// This is a single line comment

/*
 * This is a multi line comment
 */

 

 

 

 

  • No labels