27Oct00
Procedural Macros for Java
Bachrach and Playford
syntax Macro
public syntax forEach {
  case #{ forEach (?:type ?elt:name in ?:expression)
            ?:statement }:
    return #{ Iterator i = ?expression.iterator();
              while (i.hasNext()) {
                ?elt = (?type)i.next();
                ?statement
       } };
}
#{ ?modifiers:* syntax ?:name ?clauses:* {
     ?mainRules:switchBody
     ?definitions:*
   } }