Pointcuts have no lexical scopes nested inside them, except for one case, the if pointcut. The if pointcut contains a boolean expression, which is just Java code. We define a special mode called POINTCUTIFEXPR which starts right after the if keyword inside a pointcut, and ends at the terminating parenthesis closing the boolean expression. The lexical structure, in terms of tokens recognized, is identical to the ASPECT mode. However, in the implementation of the scanner, the end of POINTCUTIFEXPR mode always signals a return to POINTCUT mode.
In Figure 1, the pointcut declaration named hasSpecialIf shows an example of a nested POINTCUTIFEXPR lexical scope.