Class
Interface
Statements
Expressions
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.
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 */