Skip to content

Commit 65203fa

Browse files
committed
Add more state cut annotations
1 parent e9ca0f6 commit 65203fa

1 file changed

Lines changed: 15 additions & 14 deletions

File tree

src/runtime/evaluate.ts

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -385,21 +385,22 @@ handlerMap.set(SyntaxKind.IF_STATEMENT, (frame) => {
385385

386386
handlerMap.set(SyntaxKind.FOR_STATEMENT, (frame) => {
387387
// assertNotAssignable();
388-
// env = extend(env);
388+
// env = extend(env); // [0]
389389
// let name = forStatementName(node).payload as string;
390390
// bindReadonly(env, name, new UninitValue());
391391
// let arrayExpr = forStatementArrayExpr(node);
392-
// let arrayValue = eval(arrayExpr);
392+
// let arrayValue = eval(arrayExpr); // [1]
393393
// if (!(arrayValue instanceof ArrayValue)) {
394394
// throw new E603_TypeError("Type error: not an array");
395395
// }
396396
// let body = forStatementBody(node);
397397
// for (let index = 0; index < arrayValue.elements.length; index++) {
398+
// // [2]
398399
// let bodyEnv = extend(kont.env);
399400
// let element = arrayValue.elements[0];
400401
// bindReadonly(bodyEnv, kont.name, element);
401402
// // (set up jumpMap stuff)
402-
// eval(body, bodyEnv);
403+
// eval(body, bodyEnv); // [3]
403404
// }
404405
// return new NoneValue();
405406

@@ -448,10 +449,10 @@ handlerMap.set(SyntaxKind.FOR_STATEMENT, (frame) => {
448449
});
449450

450451
handlerMap.set(SyntaxKind.WHILE_STATEMENT, (frame) => {
451-
// let condExpr = whileStatementCondExpr(node);
452+
// let condExpr = whileStatementCondExpr(node); // [0]
452453
// let body = whileStatementBody(node);
453454
// let cond = eval(condExpr);
454-
// while (boolify(cond)) {
455+
// while (boolify(cond)) { // [1]
455456
// // (set up jumpMap stuff)
456457
// eval(body);
457458
// cond = eval(condExpr);
@@ -501,15 +502,15 @@ handlerMap.set(SyntaxKind.NEXT_STATEMENT, (frame) => {
501502
});
502503

503504
handlerMap.set(SyntaxKind.RETURN_STATEMENT, (frame) => {
504-
// let expr = returnStatementExpr(node);
505+
// let expr = returnStatementExpr(node); // [0]
505506
// let value;
506507
// if (isEmptyPlaceholder(expr)) {
507508
// value = new NoneValue();
508509
// }
509510
// else {
510511
// value = eval(expr);
511512
// }
512-
// (jump to jumpMap.returnTarget with value)
513+
// (jump to jumpMap.returnTarget with value) // [1]
513514

514515
let expr = returnStatementExpr(frame.node);
515516
switch (frame.state) {
@@ -541,13 +542,13 @@ handlerMap.set(SyntaxKind.RETURN_STATEMENT, (frame) => {
541542

542543
handlerMap.set(SyntaxKind.VAR_DECL, (frame) => {
543544
// assertNotAssignable();
544-
// let initExpr = varDeclInitExpr(node);
545+
// let initExpr = varDeclInitExpr(node); // [0]
545546
// if (isEmptyPlaceholder(initExpr)) {
546547
// return new NoneValue();
547548
// }
548549
// else {
549550
// let value = eval(initExpr);
550-
// let name = varDeclName(node).payload as string;
551+
// let name = varDeclName(node).payload as string; // [1]
551552
// bindMutable(env, name, value);
552553
// return new NoneValue();
553554
// }
@@ -658,14 +659,14 @@ handlerMap.set(SyntaxKind.CHAINED_OP_EXPR, (frame) => {
658659
});
659660

660661
handlerMap.set(SyntaxKind.INDEXING_EXPR, (frame) => {
661-
// let arrayExpr = indexingExprArrayExpr(node);
662+
// let arrayExpr = indexingExprArrayExpr(node); // [0]
662663
// let array = eval(arrayExpr);
663-
// if (!(array instanceof ArrayValue)) {
664+
// if (!(array instanceof ArrayValue)) { // [1]
664665
// throw new E603_TypeError("Can only index an Array");
665666
// }
666667
// let indexExpr = indexingExprIndexExpr(node);
667668
// let index = eval(indexExpr);
668-
// if (!(index instanceof IntValue)) {
669+
// if (!(index instanceof IntValue)) { // [2]
669670
// throw new E603_TypeError("Can only index using an Int");
670671
// }
671672
// if (index.payload < 0 || index.payload >= array.elements.length) {
@@ -855,7 +856,7 @@ handlerMap.set(SyntaxKind.ARRAY_INITIALIZER_EXPR, (frame) => {
855856
// let elemValues = [];
856857
// for (let index = 0; index < elements.length; index++) { // [0]
857858
// let value = eval(elements[index]);
858-
// elemValues[index] = value;
859+
// elemValues[index] = value; // [1]
859860
// }
860861
// return new ArrayValue(elemValues);
861862

@@ -903,7 +904,7 @@ handlerMap.set(SyntaxKind.QUOTE_EXPR, (frame) => {
903904
// assertNotAssignable(frame);
904905
// let statements = quoteExprStatements(node);
905906
// let statementValues: Array<Value> = [];
906-
// for (let index = 0; index < statements.length; index++) {
907+
// for (let index = 0; index < statements.length; index++) { // [0]
907908
// statementValues[index] = interpolate(statement); // [1]
908909
// }
909910
//

0 commit comments

Comments
 (0)