1 package kawa.standard; 2 import kawa.lang.*; 3 import gnu.expr.*; 4 import gnu.lists.*; 5 import gnu.bytecode.*; 6 7 public class module_implements extends Syntax 8 { 9 public static final module_implements module_implements 10 = new module_implements(); 11 static { module_implements.setName("module-implements"); } 12 13 public Expression rewriteForm (Pair form, Translator tr) 14 { 15 Object args = form.cdr; 16 int len = LList.listLength(args, false); 17 if (len < 0) 18 return tr.syntaxError("improper argument list for " + getName()); 19 ClassType[] interfaces = new ClassType[len]; 20 for (int i = 0; i < len; i++) 21 { 22 Pair pair = (Pair) args; 23 interfaces[i] = (ClassType) tr.exp2Type(pair); 24 args = pair.cdr; 25 } 26 ModuleExp module = tr.getModule(); 27 module.setInterfaces(interfaces); 28 module.setFlag(ModuleExp.SUPERTYPE_SPECIFIED); 29 return QuoteExp.voidExp; 30 } 31 } 32 | Popular Tags |