27Oct00
Procedural Macros for Java
Bachrach and Playford
Macro Defining Macros
syntax defineFieldDefiner {
  case #{ defineFieldDefiner ?type:name ; }:
    Fragment newName
      = new IdentifierFragment
  (type.getName() + “Field");
    return #{
      syntax ?newName {
case #{ ??newName ?:name = ?:expression ; }:
  return #{ ??type ?name = ?expression ; }
      } };
}
=>
defineFieldDefiner int;
=>
syntax intField {
  case #{ intField ?:name = ?:expression ; }:
    return #{ int ?name = ?expression ; }
}