aspect |
::= |
aspect_name , pointcut_specification , advice_specification; |
pointcut_specification |
::= |
pointcut_name, {pointcut_expression}; |
advice_specification |
::= |
advice_name,{advice_expressions}, {advice_type} ; |
advice_type |
::= |
pre | post | around; |
pointcut_expressions |
::= |
{static_properties} | {dynamic_properties} | |
advice_ expression |
::= |
{static_properties}| {dynamic_properties} | |
operators |
::= |
or | and | not | “||” | “&&” | “!”; |
static_properties |
::= |
{[capsule_sig]} [operators] {[component_sig]} [operators] {[interface_sig]} [operators] {[receptacle_sig]}[operators] {[operation_sig]), [interface_category]; |
interface_category |
::= |
[“INTERFACE”] | [“RECEPTACLE”] | [“all”]; |
capsule_sig |
::= |
expression | identifier |
component_sig |
::= |
instance | comp_type | expression; |
interface_sig |
::= |
instance | interface_type | expression; |
receptacle_sig |
::= |
instance | receptacle_type | expression; |
comp_type |
::= |
component; |
component |
::= |
class_name | logical_declaration; |
interface_type |
::= |
interface, logical_declaration; |
receptacle_type |
::= |
receptacle, logical_declaration; |
logical_declaration |
::= |
global_unique_identifier | instance; |
interface |
::= |
entity, interface_declaration; |
receptacle |
::= |
entity, interface_declaration; |
dynamic_properties |
::= |
(key, value) | key; |
key |
::= |
identifier; |
value |
::= |
comp_type | interface_type | receptacle_type; |
instance |
::= |
“[“, “]” | int | identifier ; |
expression |
::= |
expression, (“&&” | “+” | “*” | “.” | “!”) [identifier] | “all”; |
identifier |
::= |
{[0-9]}, {[a-z]}, {[A-Z]}; |
operation_sig |
::= |
{modifier} | type identifier “(“[parameter_list ]”)” {“[“ “]”} “;” |
global_unique_identifier |
::= |
128-byte Id; |
type |
::= |
type_specifier { "[" "]" } |
::= |
“boolean” | “byte” | “char”| “short” |“int”| “float” | “long”|“double”| identifier |
|
modifier |
::= |
“public” | “private” | "protected" | "static" | "final" | "native" | "synchronised" | "abstract" |