[type-html strick**20120326041318 Ignore-this: 861c357812211f9a5d6e339eaaca8636 ] hunk ./terse-a1/res/raw/prelude.txt 120 + '|link|/HelloWeb|[HelloWeb]|'; hunk ./terse-a1/res/raw/prelude.txt 138 + '|link|/HelloWeb|[HelloWeb]|', 'HelloWeb '; hunk ./terse-a1/res/raw/prelude.txt 394 +class HelloWeb App +meth HelloWeb handle:query: + DICT('type', 'html'; + 'title', 'HelloWeb Title'; + 'value', ' + '; + ) + hunk ./terse-a1/src/terse/a1/TerseActivity.java 61 +import android.webkit.WebView; hunk ./terse-a1/src/terse/a1/TerseActivity.java 481 - explain = Static.fmt("Switching to world <%s>", world); + explain = Static.fmt("Switching to world <%s>\nUse menu to go Home.", world); hunk ./terse-a1/src/terse/a1/TerseActivity.java 493 + } else if (type.str.equals("html") && value instanceof Str) { + WebView webview = new WebView(this); + webview.loadData(value.toString(), "text/html", null); + ScrollView scrollv = new ScrollView(this); + scrollv.addView(webview); + setContentView(scrollv); + return; hunk ./terse-vm/src/terse/vm/Async.java 15 +// This is used by web but not by Android. hunk ./terse-vm/src/terse/vm/Async.java 34 - this.defaultImage = defaultImage; + this.defaultImage = defaultImage; hunk ./terse-vm/src/terse/vm/Async.java 38 + //Runnable runnable; hunk ./terse-vm/src/terse/vm/Async.java 51 +// Job(Runnable runnable) { +// this.runnable = runnable; +// this.reply = new ArrayBlockingQueue(1); +// this.id = getSerial(); +// } + hunk ./terse-vm/src/terse/vm/Async.java 67 +// public Job newJob(Runnable runnable) { +// return new Job(runnable); +// } + hunk ./terse-vm/src/terse/vm/Cls.java 175 - // =meth Cls "access" defVars + // =meth Cls "access" defVars: hunk ./terse-vm/src/terse/vm/Cls.java 278 - terp.tCls.addMethod(new JavaMeth(terp.tCls, "defineInstanceVars:", - "defVars:", "Define instance variables, " - + "using space-separated string.") { - public Pro apply(Frame f, Pro r, Pro[] args) { - Str varsStr = args[0].asStr(); - if (varsStr == null) { - terp.say("Expected Str with inst var names"); - } - String[] myVarNames = filterOutEmptyStrings(varsStr.str - .split("\\s+")); - Cls self = r.asCls(); - - // Check for Ignore-Case uniqueness. - for (int i = 0; i < myVarNames.length; i++) { - String iStr = myVarNames[i]; - String iLow = iStr.toLowerCase(); - for (Cls c = self.supercls; c != null; c = c.supercls) { - for (String y : c.myVars) { - if (iLow.equals(y.toLowerCase())) { - terp.toss( - "Cannot add inst var <%s> because Cls <%s> also has <%s>", - iStr, c.name, y); - } - } - for (int j = i + 1; j < myVarNames.length; j++) { - if (iLow.equals(myVarNames[j].toLowerCase())) { - terp.toss( - "Cannot add 2 inst vars <%s> <%s> with same name.", - iStr, myVarNames[j]); - } - } - } - } - - self.myVars = myVarNames; - terp.tPro.recalculateAllVarsHereAndBelow(); - - try { - terp.appendWorldFile(fmt("instvars %s", self.name), - Terp.strs(varsStr.str)); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - terp.toss("Cannot write image file: " + e); - } - - return r; - } - }); +// terp.tCls.addMethod(new JavaMeth(terp.tCls, "defineInstanceVars:", +// "defVars:", "Define instance variables, " +// + "using space-separated string.") { +// public Pro apply(Frame f, Pro r, Pro[] args) { +// Str varsStr = args[0].asStr(); +// if (varsStr == null) { +// terp.say("Expected Str with inst var names"); +// } +// String[] myVarNames = filterOutEmptyStrings(varsStr.str +// .split("\\s+")); +// Cls self = r.asCls(); +// +// // Check for Ignore-Case uniqueness. +// for (int i = 0; i < myVarNames.length; i++) { +// String iStr = myVarNames[i]; +// String iLow = iStr.toLowerCase(); +// for (Cls c = self.supercls; c != null; c = c.supercls) { +// for (String y : c.myVars) { +// if (iLow.equals(y.toLowerCase())) { +// terp.toss( +// "Cannot add inst var <%s> because Cls <%s> also has <%s>", +// iStr, c.name, y); +// } +// } +// for (int j = i + 1; j < myVarNames.length; j++) { +// if (iLow.equals(myVarNames[j].toLowerCase())) { +// terp.toss( +// "Cannot add 2 inst vars <%s> <%s> with same name.", +// iStr, myVarNames[j]); +// } +// } +// } +// } +// +// self.myVars = myVarNames; +// terp.tPro.recalculateAllVarsHereAndBelow(); +// +// try { +// terp.appendWorldFile(fmt("instvars %s", self.name), +// Terp.strs(varsStr.str)); +// } catch (IOException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// terp.toss("Cannot write image file: " + e); +// } +// +// return r; +// } +// }); hunk ./terse-vm/src/terse/vm/Expr.java 11 - + + // =get Expr String white white + public String white = null; hunk ./terse-vm/src/terse/vm/Expr.java 19 - public Expr(Terp t) { - super(t.tExpr); + public Expr(Cls cls) { + super(cls); hunk ./terse-vm/src/terse/vm/Expr.java 55 + + public void dump(String ind) { + terp().say("%s| @@ <%s#%s> ============", ind, this.getClass().getName(), this); + if (this.front != null) { + terp().say("%d %d %d", this.white.length(), this.front.length(), this.rest.length()); + assert this.white.length() >= this.front.length(); + assert this.front.length() >= this.rest.length(); + terp().say("%s^^^W: @@ <<<%s>>>W", ind, /*this.white == null ? "" : */this.white.substring(0, this.white.length() - this.front.length()).replace('\n', '_')); + terp().say("%s^^^F: @@ <<<%s>>>F", ind, /*this.front == null ? "" : */this.front.substring(0, this.front.length() - this.rest.length()).replace('\n', '_')); + terp().say("%s^^^R: @@ <<<%s>>>R", ind, /*this.rest == null ? "" : */this.rest.replace('\n', '_')); + } + } + + public void visit(Visitor v) { + v.visitExpr(this); + } hunk ./terse-vm/src/terse/vm/Expr.java 74 - public LValue(Terp terp) { - super(terp); + public LValue(Cls cls) { + super(cls); hunk ./terse-vm/src/terse/vm/Expr.java 100 - public LvName(Terp terp, String name) { - super(terp); + public LvName(Cls cls, String name) { + super(cls); hunk ./terse-vm/src/terse/vm/Expr.java 115 - super(terp, name); + super(terp.wrap.clsLvLocalName, name); hunk ./terse-vm/src/terse/vm/Expr.java 137 + @Override + public void visit(Visitor v) { + v.visitLvLocalName(this); + } hunk ./terse-vm/src/terse/vm/Expr.java 146 - super(terp, name); + super(terp.wrap.clsLvLocalName, name); hunk ./terse-vm/src/terse/vm/Expr.java 166 - index = p.cls.allVars.get(name.toLowerCase()); + index = p.onCls.allVars.get(name.toLowerCase()); + } + @Override + public void visit(Visitor v) { + v.visitLvInstName(this); hunk ./terse-vm/src/terse/vm/Expr.java 179 - Pro[] arr; + public Pro[] arr; hunk ./terse-vm/src/terse/vm/Expr.java 181 + public LvTuple(Cls cls, Pro[] arr) { + super(cls); + this.arr = arr; + } hunk ./terse-vm/src/terse/vm/Expr.java 186 - super(terp); + super(terp.wrap.clsLvTuple); hunk ./terse-vm/src/terse/vm/Expr.java 233 + + @Override + public void visit(Visitor v) { + v.visitLvTupleOrList(this); + } hunk ./terse-vm/src/terse/vm/Expr.java 244 - super(terp, arr); + super(terp.wrap.clsLvList, arr); hunk ./terse-vm/src/terse/vm/Expr.java 272 + // =get Top String methName methName hunk ./terse-vm/src/terse/vm/Expr.java 274 + // =get Top . body body hunk ./terse-vm/src/terse/vm/Expr.java 276 + // =get Top String source source hunk ./terse-vm/src/terse/vm/Expr.java 283 - super(onCls.terp); + super(onCls.terp.wrap.clsTop); hunk ./terse-vm/src/terse/vm/Expr.java 292 + this.white = source; + this.front = source; + this.rest = ""; hunk ./terse-vm/src/terse/vm/Expr.java 311 + + public void dump(String ind) { + terp().say("\n\n(((((\n\n"); + super.dump(ind); + body.dump(ind + "|"); + terp().say("\n\n)))))\n\n"); + } + + @Override + public void visit(Visitor v) { + v.visitTop(this); + } hunk ./terse-vm/src/terse/vm/Expr.java 331 - super(expr.terp()); + super(expr.terp().wrap.clsPutLValue); hunk ./terse-vm/src/terse/vm/Expr.java 357 - super(expr.terp()); + super(expr.terp().wrap.clsPutInstVar); hunk ./terse-vm/src/terse/vm/Expr.java 385 - super(t); + super(t.wrap.clsGetInstVar); hunk ./terse-vm/src/terse/vm/Expr.java 405 - super(t); + super(t.wrap.clsGetLocalVar); hunk ./terse-vm/src/terse/vm/Expr.java 426 - super(t); + super(t.wrap.clsGetSelf); hunk ./terse-vm/src/terse/vm/Expr.java 441 - super(t); + super(t.wrap.clsGetFrame); hunk ./terse-vm/src/terse/vm/Expr.java 458 - super(t); + super(t.wrap.clsGetGlobalVar); hunk ./terse-vm/src/terse/vm/Expr.java 482 - super(expr.terp()); + super(expr.terp().wrap.clsPutLocalVar); hunk ./terse-vm/src/terse/vm/Expr.java 500 - // =cls "Parser" Send Expr - Expr rcvr; - String msg; - Expr args[]; + // =get Send . rcvr rcvr + public Expr rcvr; + // =get Send String msg msg + public String msg; + // =get Send Expr[] args args + public Expr[] args; + // =get Send int[] sourceLoc sourceLoc + public int[] sourceLoc; hunk ./terse-vm/src/terse/vm/Expr.java 514 - Send(Expr rcvr, String msg, Expr args[]) { - super(rcvr.terp()); + // =cls "Parser" Send Expr + Send(Expr rcvr, String msg, Expr args[], int[] sourceLoc) { + super(rcvr.terp().wrap.clsSend); hunk ./terse-vm/src/terse/vm/Expr.java 520 + this.sourceLoc = sourceLoc; hunk ./terse-vm/src/terse/vm/Expr.java 672 + + + public void dump(String ind) { + super.dump(ind); + terp().say("%s| %s#%s", ind, this.getClass().getName(), this); + + terp().say("<><><>"); + String[] words = msg.split(":"); + terp().say("msg words:", arrayToString(words)); + terp().say("locations:", arrayToString(this.sourceLoc)); + for (int i = 0; i < words.length; i++) { + if (words[i].length() > 0 && this.sourceLoc[i] >= 0) { + terp().say("[%d] '%s' @%s >>====>>", i, words[i], sourceLoc[i]); + } + } + terp().say("<><><>"); + + rcvr.dump(ind + fmt(" Send{%s} R ", this.msg)); + for (int i = 0; i < args.length; i++) { + args[i].dump(ind + fmt(" Send A%d ", i)); + } + } + + + @Override + public void visit(Visitor v) { + v.visitSend(this); + } hunk ./terse-vm/src/terse/vm/Expr.java 708 - super(body.terp()); + super(body.terp().wrap.clsBlock); hunk ./terse-vm/src/terse/vm/Expr.java 747 + + + public void dump(String ind) { + super.dump(ind); + for (int i = 0; i < params.length; i++) { + params[i].dump(ind + fmt(" Block P%d ", i)); + } + body.dump(ind + " Block Body "); + } + + @Override + public void visit(Visitor v) { + v.visitBlock(this); + } hunk ./terse-vm/src/terse/vm/Expr.java 768 - super(t); + super(t.wrap.clsSeq); hunk ./terse-vm/src/terse/vm/Expr.java 810 + + + public void dump(String ind) { + super.dump(ind); + for (int i = 0; i < body.length; i++) { + body[i].dump(ind + fmt(" Seq #%d ", i)); + } + } + + @Override + public void visit(Visitor v) { + v.visitSeq(this); + } hunk ./terse-vm/src/terse/vm/Expr.java 831 - super(t); + super(t.wrap.clsMakeVec); hunk ./terse-vm/src/terse/vm/Expr.java 880 + + public void dump(String ind) { + super.dump(ind); + for (int i = 0; i < elements.length; i++) { + elements[i].dump(ind + fmt(" MkVec #%d ", i)); + } + } + + @Override + public void visit(Visitor v) { + v.visitMakeVec(this); + } hunk ./terse-vm/src/terse/vm/Expr.java 899 - super(value.cls.terp); + super(value.terp().wrap.clsLit); hunk ./terse-vm/src/terse/vm/Expr.java 920 - super(t); + super(t.wrap.clsEmptyExprList); hunk ./terse-vm/src/terse/vm/Expr.java 931 + + + public static abstract class Visitor { + protected Top top; + + public Visitor(Top top) { + super(); + this.top = top; + } + + public void visitMakeVec(MakeVec makeVec) { + for (int i = 0; i < makeVec.elements.length; ++i) { + makeVec.elements[i].visit(this); + } + } + + public void visitSeq(Seq seq) { + for (int i = 0; i < seq.body.length; ++i) { + seq.body[i].visit(this); + } + } + + public void visitBlock(Block block) { + for (int i = 0; i < block.params.length; ++i) { + block.params[i].visit(this); + } + block.body.visit(this); + } + + public void visitSend(Send send) { + send.rcvr.visit(this); + for (int i = 0; i < send.args.length; ++i) { + send.args[i].visit(this); + } + } + + public void visitTop(Top top2) { + top2.body.visit(this); + } + + public void visitLvTupleOrList(LvTuple lvTuple) { + for (int i = 0; i < lvTuple.arr.length; ++i) { + ((Expr)lvTuple.arr[i]).visit(this); + } + } + + public void visitLvInstName(LvInstName lvInstName) { + } + + public void visitLvLocalName(LvLocalName lvLocalName) { + } + + public void visitExpr(Expr e) { + } + } hunk ./terse-vm/src/terse/vm/Makefile 4 -J = Pro.java Terp.java Expr.java Cls.java +J = Pro.java Terp.java Expr.java Cls.java Parser.java hunk ./terse-vm/src/terse/vm/Parser.java 9 +import terse.vm.Pro.Obj; hunk ./terse-vm/src/terse/vm/Parser.java 11 -public class Parser extends Static { - Cls cls; +public class Parser extends Obj { + // =cls "meth" Parser Obj + + Cls onCls; hunk ./terse-vm/src/terse/vm/Parser.java 27 - public static Expr.Top parseMethod(Cls cls, String methName, String code) { - Terp terp = cls.terp; - Parser p = new Parser(cls, methName, code); + public static Expr.Top parseMethod(Cls onCls, String methName, String code) { + Terp terp = onCls.terp; + Parser p = new Parser(onCls, methName, code); hunk ./terse-vm/src/terse/vm/Parser.java 58 - p.localVarSpelling, cls, methName, expr, code); + p.localVarSpelling, onCls, methName, expr, code); hunk ./terse-vm/src/terse/vm/Parser.java 121 - private Parser(Cls cls, String methName, String code) { - this.cls = cls; - this.terp = cls.terp; + public Parser(Cls onCls, String methName, String code) { + super(onCls.terp.wrap.clsParser); + this.onCls = onCls; + this.terp = onCls.terp; hunk ./terse-vm/src/terse/vm/Parser.java 147 - String front = lex.rest; + String front = lex.front; String white = lex.white; hunk ./terse-vm/src/terse/vm/Parser.java 160 - z.front = front; + z.front = front; z.white = white; hunk ./terse-vm/src/terse/vm/Parser.java 167 - z.front = front; + z.front = front; z.white = white; hunk ./terse-vm/src/terse/vm/Parser.java 174 - String front = lex.rest; + String front = lex.front; String white = lex.white; hunk ./terse-vm/src/terse/vm/Parser.java 182 - z.front = front; + z.front = front; z.white = white; hunk ./terse-vm/src/terse/vm/Parser.java 196 - if (cls.allVars.containsKey(varKey)) { + if (onCls.allVars.containsKey(varKey)) { hunk ./terse-vm/src/terse/vm/Parser.java 212 - String front = lex.rest; + String front = lex.front; String white = lex.white; hunk ./terse-vm/src/terse/vm/Parser.java 226 - z.front = front; + z.front = front; z.white = white; hunk ./terse-vm/src/terse/vm/Parser.java 236 - String front = lex.rest; + String front = lex.front; String white = lex.white; hunk ./terse-vm/src/terse/vm/Parser.java 250 - z.front = front; + z.front = front; z.white = white; hunk ./terse-vm/src/terse/vm/Parser.java 264 - String front = lex.rest; + String front = lex.front; String white = lex.white; hunk ./terse-vm/src/terse/vm/Parser.java 269 - while (lex.t == Pat.NAME && !lex.isKeyword()) { // parse Unary - // messages at front - // of - // chain. - expr = new Expr.Send(expr, lex.w.toLowerCase(), emptyExprs); + while (lex.t == Pat.NAME && !lex.isKeyword()) { + // parse Unary messages at front of chain. + expr = new Expr.Send(expr, lex.w.toLowerCase(), emptyExprs, ints(lex.frontLocation())); hunk ./terse-vm/src/terse/vm/Parser.java 284 + // cap is obsolete now. hunk ./terse-vm/src/terse/vm/Parser.java 286 + // keywordStrength is obsolete now -- we quit using that. hunk ./terse-vm/src/terse/vm/Parser.java 289 - String front = lex.rest; + String front = lex.front; String white = lex.white; hunk ./terse-vm/src/terse/vm/Parser.java 293 + int[] locs = emptyInts; hunk ./terse-vm/src/terse/vm/Parser.java 296 + locs = append(locs, lex.frontLocation()); hunk ./terse-vm/src/terse/vm/Parser.java 306 - receiver = new Expr.Send(receiver, keywords, args); - receiver.front = front; + receiver = new Expr.Send(receiver, keywords, args, locs); + receiver.front = front; receiver.white = white; hunk ./terse-vm/src/terse/vm/Parser.java 320 - String front = lex.rest; + String front = lex.front; String white = lex.white; hunk ./terse-vm/src/terse/vm/Parser.java 322 + int[] locs = ints(lex.frontLocation()); hunk ./terse-vm/src/terse/vm/Parser.java 326 - e = new Expr.Send(e, op, exprs(a)); - e.front = front; + e = new Expr.Send(e, op, exprs(a), locs); + e.front = front; e.white = white; hunk ./terse-vm/src/terse/vm/Parser.java 337 - String front = lex.rest; + String front = lex.front; String white = lex.white; hunk ./terse-vm/src/terse/vm/Parser.java 339 + int[] locs = ints(lex.frontLocation()); hunk ./terse-vm/src/terse/vm/Parser.java 343 - e = new Expr.Send(e, op, exprs(a)); - e.front = front; + e = new Expr.Send(e, op, exprs(a), locs); + e.front = front; e.white = white; hunk ./terse-vm/src/terse/vm/Parser.java 353 - String front = lex.rest; + String front = lex.front; String white = lex.white; hunk ./terse-vm/src/terse/vm/Parser.java 355 + int[] locs = ints(lex.frontLocation()); hunk ./terse-vm/src/terse/vm/Parser.java 358 - e = new Expr.Send(e, op, exprs(a)); - e.front = front; + e = new Expr.Send(e, op, exprs(a), locs); + e.front = front; e.white = white; hunk ./terse-vm/src/terse/vm/Parser.java 368 - String front = lex.rest; - e = new Expr.Send(e, lex.w.toLowerCase(), emptyExprs); + String front = lex.front; String white = lex.white; + int[] locs = ints(lex.frontLocation()); + e = new Expr.Send(e, lex.w.toLowerCase(), emptyExprs, locs); hunk ./terse-vm/src/terse/vm/Parser.java 372 - e.front = front; + e.front = front; e.white = white; hunk ./terse-vm/src/terse/vm/Parser.java 379 - String front = lex.rest; + String front = lex.front; String white = lex.white; hunk ./terse-vm/src/terse/vm/Parser.java 422 - z.front = front; + z.front = front; z.white = white; hunk ./terse-vm/src/terse/vm/Parser.java 429 - if (cls.allVars.containsKey(varKey)) { - return new Expr.GetInstVar(terp, varName, cls.allVars.get(varKey)); + if (onCls.allVars.containsKey(varKey)) { + return new Expr.GetInstVar(terp, varName, onCls.allVars.get(varKey)); hunk ./terse-vm/src/terse/vm/Parser.java 484 + int[] locs = ints(-1); // "macro:" is implicit, thus -1. hunk ./terse-vm/src/terse/vm/Parser.java 487 + locs = append(locs, lex.frontLocation()); hunk ./terse-vm/src/terse/vm/Parser.java 503 - return new Expr.Send(new Expr.GetSelf(terp), message.toString(), bb); + return new Expr.Send(new Expr.GetSelf(terp), message.toString(), bb, locs); hunk ./terse-vm/src/terse/vm/Parser.java 507 - String front = lex.rest; + String front = lex.front; String white = lex.white; hunk ./terse-vm/src/terse/vm/Parser.java 519 - a.front = front; + a.front = front; a.white = white; hunk ./terse-vm/src/terse/vm/Parser.java 526 - String front = lex.rest; + String front = lex.front; String white = lex.white; hunk ./terse-vm/src/terse/vm/Parser.java 528 - boolean isInstVar = cls.allVars.containsKey(lex.w.toLowerCase()); + boolean isInstVar = onCls.allVars.containsKey(lex.w.toLowerCase()); hunk ./terse-vm/src/terse/vm/Parser.java 536 - z.front = front; + z.front = front; z.white = white; hunk ./terse-vm/src/terse/vm/Parser.java 575 - "[A-Za-z][A-Za-z0-9]*"), OTHER( + "[A-Za-z][A-Za-z0-9_]*"), OTHER( hunk ./terse-vm/src/terse/vm/Parser.java 610 + String front; // at front of last token. hunk ./terse-vm/src/terse/vm/Parser.java 617 - this.white = ""; + this.white = prog; hunk ./terse-vm/src/terse/vm/Parser.java 621 + this.front = prog; hunk ./terse-vm/src/terse/vm/Parser.java 638 + this.front = that.front; hunk ./terse-vm/src/terse/vm/Parser.java 665 - white = ""; - + white = rest; hunk ./terse-vm/src/terse/vm/Parser.java 683 + front = rest; hunk ./terse-vm/src/terse/vm/Parser.java 853 - /** Number of trailing colons or slashes */ + /** Obsolete Feature */ hunk ./terse-vm/src/terse/vm/Parser.java 855 - if (t == Pat.NAME) { - storeState(); - if (w != null && w.charAt(0) == ':') { - recallState(); - return w.length(); - } - recallState(); - } - assert false : w + " " + this.rest; - return 0; +// if (t == Pat.NAME) { +// storeState(); +// if (w != null && w.charAt(0) == ':') { +// recallState(); +// return w.length(); +// } +// recallState(); +// } +// assert false : w + " " + this.rest; +// return 0; + return 1; hunk ./terse-vm/src/terse/vm/Parser.java 877 + + int frontLocation() { + return prog.length() - front.length(); + } hunk ./terse-vm/src/terse/vm/Pro.java 516 + + // DEBUG + top.dump("EVAL/TOP "); + hunk ./terse-vm/src/terse/vm/Pro.java 1626 + public Vec(Terp t, int[] arr) { + super(t.tVec); + this.vec = new ArrayList(); + for (int i = 0; i < arr.length; i++) { + this.vec.add(t.newNum(arr[i])); + } + } hunk ./terse-vm/src/terse/vm/Static.java 84 + public static String arrayToString(int[] a) { + if (a == null) + return ""; + StringBuilder z = new StringBuilder(); + for (int e : a) { + z.append(fmt("\"%s\", ", e)); + } + z.append("]"); + return z.toString(); + } + hunk ./terse-vm/src/terse/vm/Terp.java 420 - try { + //try { hunk ./terse-vm/src/terse/vm/Terp.java 522 - } finally { - loadingWorldFile = false; - } + //} finally { + // loadingWorldFile = false; + //} hunk ./terse-vm/src/terse/vm/Wrap.java 45 - return new Vec(terp, terp.pros(self.instVars)); + return new Vec(terp, self.instVars); hunk ./terse-vm/src/terse/vm/Wrap.java 711 - return new Vec(terp, terp.pros(self.locals)); + return new Vec(terp, self.locals); hunk ./terse-vm/src/terse/vm/Wrap.java 726 + new JavaMeth(terp.wrap.clsExpr, "white", "") { + public Pro apply(Frame f, Pro r, Pro[] args) { + Expr self = (Expr) r; + return terp.newStr(self.white); + } + }; hunk ./terse-vm/src/terse/vm/Wrap.java 793 - return new Vec(terp, terp.pros(self.arr)); + return new Vec(terp, self.arr); hunk ./terse-vm/src/terse/vm/Wrap.java 814 + new JavaMeth(terp.wrap.clsTop, "methName", "") { + public Pro apply(Frame f, Pro r, Pro[] args) { + Top self = (Top) r; + return terp.newStr(self.methName); + } + }; + new JavaMeth(terp.wrap.clsTop, "body", "") { + public Pro apply(Frame f, Pro r, Pro[] args) { + Top self = (Top) r; + return self.body; + } + }; + new JavaMeth(terp.wrap.clsTop, "source", "") { + public Pro apply(Frame f, Pro r, Pro[] args) { + Top self = (Top) r; + return terp.newStr(self.source); + } + }; + new JavaMeth(terp.wrap.clsSend, "rcvr", "") { + public Pro apply(Frame f, Pro r, Pro[] args) { + Send self = (Send) r; + return self.rcvr; + } + }; + new JavaMeth(terp.wrap.clsSend, "msg", "") { + public Pro apply(Frame f, Pro r, Pro[] args) { + Send self = (Send) r; + return terp.newStr(self.msg); + } + }; + new JavaMeth(terp.wrap.clsSend, "args", "") { + public Pro apply(Frame f, Pro r, Pro[] args) { + Send self = (Send) r; + return new Vec(terp, self.args); + } + }; + new JavaMeth(terp.wrap.clsSend, "sourceLoc", "") { + public Pro apply(Frame f, Pro r, Pro[] args) { + Send self = (Send) r; + return new Vec(terp, self.sourceLoc); + } + }; hunk ./terse-vm/src/terse/vm/Wrap.java 866 - // CMD meth Cls "access" defVars TYPE void NAME defVars PARAMS {String varNames} - // CLS Cls GROUP "access" METH defVars REMARK "" + // CMD meth Cls "access" defVars: TYPE void NAME defVars PARAMS {String varNames} + // CLS Cls GROUP "access" METH defVars: REMARK "" hunk ./terse-vm/src/terse/vm/Wrap.java 869 - new JavaMeth(terp.wrap.clsCls, "defVars", "") { + new JavaMeth(terp.wrap.clsCls, "defVars:", "") { hunk ./terse-vm/src/terse/vm/Wrap.java 959 - this.clsBogus.eval("self defineInstanceVars: 'slot1 slot2 slot3'"); + this.clsBogus.defVars("slot1 slot2 slot3"); hunk ./terse-vm/src/terse/vm/Wrap.java 1276 + this.clsParserCls = terp.clss.get("parsercls"); + if (this.clsParserCls == null) { + this.clsParserCls = new Cls(terp.tMetaclsCls, terp, "ParserCls", this.clsObjCls); + } + this.clsParser = terp.clss.get("parser"); + if (this.clsParser == null) { + this.clsParser = new Cls(this.clsParserCls, terp, "Parser", this.clsObj); + } + hunk ./terse-vm/src/terse/vm/Wrap.java 1407 + public Cls clsParserCls; + public Cls clsParser; + hunk ./terse-vm/src/terse/vm/wrap.tcl 131 - this.cls${cls}.eval("self defineInstanceVars: '$vv'"); + this.cls${cls}.defVars("$vv"); hunk ./terse-vm/src/terse/vm/wrap.tcl 152 + hunk ./terse-vm/src/terse/vm/wrap.tcl 154 - puts " return new Vec(terp, terp.pros(self.$slot));" + puts " return new Vec(terp, self.$slot);" + } elseif { $type == {Expr[]} } { + puts " return new Vec(terp, self.$slot);" + } elseif { $type == {int[]} } { + puts " return new Vec(terp, self.$slot);" + #} elseif { $type == {Pro[]} } { + # puts " return new Vec(terp, Static.pros(self.$slot));" + #} elseif { $type == {Expr[]} } { + # puts " return new Vec(terp, Static.exprs(self.$slot));" + #} elseif { $type == {int[]} } { + # puts " return new Vec(terp, Static.ints(self.$slot));" + hunk ./terse-web/prelude.txt 392 +class HelloWeb App +meth HelloWeb handle:query: + DICT('type', 'html'; + 'title', 'HelloWeb Title'; + 'value', ' +
  • hello
  • world
  • !
'; + ) +