I am not too familiar with tree grammar stuff. What does '##' stand for inside an action. For example, what does the following rule do - grammar : headerDef ( classDef )* EOF! { ## = #([GRAMMAR,"grammar"], ##) ; } ; PRASHANT