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 */