%%%
%% Pointcut Declarations
%%
%% @author Martin Bravenboer <martin.bravenboer@gmail.com>
%%%
module languages/aspectj/pointcut/Declaration[Ctx]
exports
sorts
PointcutDec
PointcutDecBody
PointcutDecHead
context-free syntax
PointcutDecHead PointcutBody -> PointcutDec {cons("PointcutDec")}
%%%
%% @todo What modifiers are allowed for a pointcut?
%%%
(Anno[[Ctx]] | Modifier[[Ctx]])* "pointcut" Id[[Ctx]] "(" {FormalParam[[Ctx]] ","}* ")"
-> PointcutDecHead {cons("PointcutDecHead")}
":" PointcutExpr ";" -> PointcutBody {cons("PointcutBody")}
";" -> PointcutBody {cons("NoPointcutBody")}