write some grammars and modify ASTDecl defn.