aboutsummaryrefslogtreecommitdiffstats
path: root/tests/other-systems/sablecc/src/NodeAspect.java
blob: e43069ad4cf5c841848949487e259b15c1480dd4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import org.sablecc.sablecc.node.*;
import org.sablecc.sablecc.analysis.Analysis;

public aspect NodeAspect {

    pointcut removes():     call(void removeChild(Node))     && target(Node);
    pointcut callstoSets(): call(void set*(Analysis,Object)) && target(Node);
    pointcut callstoGets(): call(void get*(Analysis))        && target(Node);

    before()             : removes()     {}
    void around() : removes()     { proceed(); }
    after ()             : removes()     {}

    before()             : callstoSets() {}
    void around() : callstoSets() { proceed(); }
    after ()             : callstoSets() {}

    before()             : callstoGets() {}
    void around() : callstoGets() { proceed(); }
    after ()             : callstoGets() {}
}