package MyEditor.xaspect; import edu.neu.ccs.demeter.dj.*; Main = . // testing stub public XAspectsDocument = ClassDictDef SelectorsDef. public ClassDictDef = "aspect" "(" "ClassDictionary" ")" CDName CDBody. public SelectorsDef = "aspect" "(" "Traversal" ")" SelectorName "{" SelectorDocument "}". public CDName=Ident. public CDBody=Text. public SelectorName = Ident. public SelectorDocument= [ContextNodeDef] NList(SelectorDecl). public SelectorDecl= "declare" Selector. public Selector: StrategyDef|XPathDef. public StrategyDef = "strategy:" StrategyName ":" StrategyExp ";". public StrategyName = Ident. public StrategyExp = String. public ContextNodeDef ="XPath" "context" "node" ":" ContextNode ";". public ContextNode = String. public XPathDef = "XPath" ":" XPathName ":" XPathStr ";". public XPathStr = String. public XPathName=Ident. public List(S) ~ {S}. public NList(S) ~ S{S}.