import edu.neu.ccs.demeter.dj.*; import java.util.*; Input = Component Attachment. Component = "component" ComponentName "class" "graph" MyClassGraph "provides" Provided "expects" PList(Normal) ["constraints" PList(Constraint)] "classes" PList(ClassName). Attachment = "attachment" CList(ComponentName) "on" ComponentName. ComponentName = Ident. ClassGraphName = Ident. ClassName = Ident. Provided = PList(FunctionMember). MyClassGraph = ClassGraphName. FunctionMember : Normal | Aspectual. Normal = "normal". Aspectual = "aspectual". Member = "member". Constraint = . PList(S) ~ "{" S {";" S} "}". CList(S) ~ "(" S {"," S} ")". Main = .