%%%
 %% Name Patterns
 %%
 %% @author  Martin Bravenboer <martin.bravenboer@gmail.com>
 %%%
module languages/aspectj/pattern/Name[Ctx]
exports
  sorts NamePattern
  context-free syntax
    IdPattern                  -> NamePattern {cons("NamePattern")}
    NamePattern "."  IdPattern -> NamePattern {cons("NamePattern")} 
    NamePattern ".." IdPattern -> NamePattern {cons("WildcardNamePattern")} 

  sorts IdPattern
  lexical syntax	
    [a-zA-Z\_\$\*][a-zA-Z0-9\_\$\*]* -> IdPattern

  lexical restrictions 	 
    IdPattern -/- [a-zA-Z0-9\_\$\*]