edlUnit | ::= | ( suiteDecl ( observablesSection | importDecl )+ <EOF> ) |
importDecl | ::= | "@import" <STRING_LITERAL> |
importEdlUnit | ::= | ( observablesSection | importDecl )+ <EOF> |
suiteDecl | ::= | "begin" "EDLSuite" ( <STRING_LITERAL> | <WILD_STRING> ) ( array_element_load_bounds__decl | array_element_store_bounds__decl )* "end" |
array_element_load_bounds__decl | ::= | ( "array_element_load_bounds" ( "*" | argType ) ( ( "min:" <UINT> ( "max:" <UINT> )? ) | ( "max:" <UINT> ( "min:" <UINT> )? ) ) ) |
array_element_store_bounds__decl | ::= | ( "array_element_store_bounds" ( "*" | argType ) ( ( "min:" <UINT> ( "max:" <UINT> )? ) | ( "max:" <UINT> ( "min:" <UINT> )? ) ) ) |
observablesSection | ::= | "begin" "Observables" ( <STRING_LITERAL> | <WILD_STRING> ) preambleSection ( observableEvent )* "end" |
preambleSection | ::= | "begin" "Preamble" preambleDeclarations "end" |
preambleDeclarations | ::= | ( "System-classes:" ( <STRING_LITERAL> | <WILD_STRING> ) ) ( ( "Module-classes:" ( <STRING_LITERAL> | <WILD_STRING> ) ) | ( "No-module:" ( <TRUE> | <FALSE> ) ) )? ( "Database-tag:" ( <STRING_LITERAL> | <WILD_STRING> ) )? ( preambleTypedef )* |
preambleTypedef | ::= | "Type-name:" javaIdentifier ( jniReferenceType | qualifiedName ) |
observableEvent | ::= | ( "+" | "-" ) eventDecl |
eventDecl | ::= | ( new_object__decl | construct_object__decl | construct_finish__decl | get_static__decl | put_static__decl | get_field__decl | put_field__decl | constructor_call__decl | static_call__decl | virtual_call__decl | interface_call__decl | virtual_method_enter__decl | virtual_method_exit__decl | static_method_enter__decl | static_method_exit__decl | monitor_contend__decl | monitor_acquire__decl | monitor_pre_release__decl | monitor_release__decl | throw__decl | catch__decl | static_init_enter__decl | array_element_load__decl | array_element_store__decl ) |
new_object__decl | ::= | "new_object" ( "*" | ( qualifiedName ( ".*" )? ) ) locationBlock |
construct_object__decl | ::= | "construct_object" ( "*" | ( qualifiedName argsExpr ) ) |
construct_finish__decl | ::= | "construct_finish" ( "*" | ( qualifiedName argsExpr ) ) |
get_static__decl | ::= | "get_static" qualifiedName ( ".*" )? locationBlock |
put_static__decl | ::= | "put_static" qualifiedName ( ".*" )? locationBlock |
get_field__decl | ::= | "get_field" qualifiedName ( ".*" )? locationBlock |
put_field__decl | ::= | "put_field" qualifiedName ( ".*" )? locationBlock |
constructor_call__decl | ::= | "constructor_call" ( "*" | ( qualifiedName argsExpr ) ) locationBlock |
static_call__decl | ::= | "static_call" ( "#INT" )? ( "*" | ( qualifiedName ( ( ".*" ) | argsExpr ) ) ) locationBlock |
virtual_call__decl | ::= | "virtual_call" ( "#INT" )? ( "*" | ( qualifiedName ( ( ".*" ) | argsExpr ) ) ) locationBlock |
interface_call__decl | ::= | "interface_call" ( "#INT" )? ( "*" | ( qualifiedName ( ( ".*" ) | argsExpr ) ) ) locationBlock |
virtual_method_enter__decl | ::= | "virtual_method_enter" ( "*" | ( qualifiedName ( ( ".*" ) | argsExpr ) ) ) |
virtual_method_exit__decl | ::= | "virtual_method_exit" ( "*" | ( qualifiedName ( ( ".*" ) | argsExpr ) ) ) |
static_method_enter__decl | ::= | "static_method_enter" ( "*" | ( qualifiedName ( ( ".*" ) | argsExpr ) ) ) |
static_method_exit__decl | ::= | "static_method_exit" ( "*" | ( qualifiedName ( ( ".*" ) | argsExpr ) ) ) |
monitor_contend__decl | ::= | "monitor_contend" ( "*" | ( qualifiedName ( ".*" )? ) ) locationBlock |
monitor_acquire__decl | ::= | "monitor_acquire" ( "*" | ( qualifiedName ( ".*" )? ) ) locationBlock |
monitor_pre_release__decl | ::= | "monitor_pre_release" ( "*" | ( qualifiedName ( ".*" )? ) ) locationBlock |
monitor_release__decl | ::= | "monitor_release" ( "*" | ( qualifiedName ( ".*" )? ) ) locationBlock |
throw__decl | ::= | "throw" ( "*" | ( qualifiedName ( "+s" )? ) ) locationBlock |
catch__decl | ::= | "catch" ( "*" | ( qualifiedName ( "+s" )? ) ) locationBlock |
static_init_enter__decl | ::= | "static_init_enter" ( "*" | ( qualifiedName ( ".*" )? ) ) |
array_element_load__decl | ::= | "array_element_load" ( "*" | argType ) ( "min:" <UINT> )? ( "max:" <UINT> )? locationBlock |
array_element_store__decl | ::= | "array_element_store" ( "*" | argType ) ( "min:" <UINT> )? ( "max:" <UINT> )? locationBlock |
locationBlock | ::= | "{" ( ( "in" | "not" ) ( "*" | ( qualifiedName ( ( ".*" ) | argsExpr ) ) ) )* "}" |
argsExpr | ::= | ( "*" | voidArg | ( argType ( "," argType )* ) | jniMethodSignature ) |
voidArg | ::= | ( "void" | "V" ) |
argType | ::= | ( basicTypeName | jniPrimitiveType | ( jniObjectType | jniArrayType | qualifiedName ) ) |
basicTypeName | ::= | ( "byte" | "char" | "double" | "float" | "int" | "long" | "boolean" | "short" | "string" ) |
jniPrimitiveType | ::= | ( "B" | "C" | "D" | "F" | "I" | "J" | "Z" | "S" ) |
jniReferenceType | ::= | ( jniArrayType | jniObjectType ) |
jniArrayType | ::= | ( "[" )+ ( jniPrimitiveType | jniObjectType ) |
jniObjectType | ::= | javaIdentifier ( "/" javaIdentifier )* ";" |
jniMethodSignature | ::= | "(" ( javaIdentifier | "[" | "/" | ";" )* ")" ( javaIdentifier | "V" | "[" | "/" | ";" )+ |
qualifiedName | ::= | ( javaIdentifier ( "." javaIdentifier )* ) |
javaIdentifier | ::= | ( "string" | "B" | "C" | "D" | "F" | "I" | "J" | "Z" | "S" | <JAVA_ID> ) |