}
public void generate(CodeWriter writer, VarDescriptor dest) {
- throw new Error();
+ writer.outputline("int "+dest.getSafeSymbol()+"=0;");
+
+ VarDescriptor itvd=VarDescriptor.makeNew("iterator");
+ writer.outputline("SimpleIterator "+itvd.getSafeSymbol()+";");
+ writer.outputline(sd.getSafeSymbol()+"_hash->iterator("+itvd.getSafeSymbol()+");");
+ writer.outputline("while ("+itvd.getSafeSymbol()+".hasNext()) {");
+ VarDescriptor keyvd=VarDescriptor.makeNew("key");
+ writer.outputline("int "+keyvd.getSafeSymbol()+"="+itvd.getSafeSymbol()+".next();");
+ VarDescriptor tmpvar=VarDescriptor.makeNew("tmp");
+ writer.outputline("int "+tmpvar.getSafeSymbol()+";");
+ writer.outputline(rd.getSafeSymbol()+ "_hash->get("+keyvd.getSafeSymbol()+","+tmpvar.getSafeSymbol()+");");
+ writer.outputline(dest.getSafeSymbol()+"+="+tmpvar.getSafeSymbol()+";");
+ writer.outputline("}");
}
public void prettyPrint(PrettyPrinter pp) {