[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', '
+ ';
+ )
+