%%%
 %% Extensions to the Java Grammar
 %%
 %% @author  Martin Bravenboer <martin.bravenboer@gmail.com>
 %%%
module languages/aspectj/JavaExtension[JavaCtx AspectCtx PointcutCtx PatternCtx]
imports
  languages/java/JavaMix[JavaCtx]
  languages/java/JavaMix[AspectCtx]
  languages/java/JavaMix[PointcutCtx]
  languages/java/JavaMix[PatternCtx]

  languages/aspectj/lexical/Keyword
  languages/aspectj/aspect/Declaration[AspectCtx JavaCtx]
  languages/aspectj/pattern/Main[PatternCtx]
  languages/aspectj/pointcut/Declaration[PointcutCtx]
  languages/aspectj/pointcut/Expression[PointcutCtx JavaCtx]

exports
  context-free syntax
    AspectDec -> TypeDec[[JavaCtx]]

    AspectDec   -> ClassMemberDec[[JavaCtx]]
    PointcutDec -> ClassMemberDec[[JavaCtx]]

    AspectDec   -> InterfaceMemberDec[[JavaCtx]]
    PointcutDec -> InterfaceMemberDec[[JavaCtx]]