blueloveTH 3 年之前
父節點
當前提交
1b0f29781c
共有 2 個文件被更改,包括 10 次插入2 次删除
  1. 3 2
      src/compiler.h
  2. 7 0
      tests/4.py

+ 3 - 2
src/compiler.h

@@ -757,12 +757,13 @@ __LISTCOMP:
             consumeEndStatement();
         } else if(match(TK("label"))){
             if(mode() != EXEC_MODE) syntaxError("'label' is only available in EXEC_MODE");
-            consume(TK("@id"));
+            consume(TK(".")); consume(TK("@id"));
             getCode()->addLabel(parser->previous.str());
             consumeEndStatement();
         } else if(match(TK("goto"))){
+            // https://entrian.com/goto/
             if(mode() != EXEC_MODE) syntaxError("'goto' is only available in EXEC_MODE");
-            consume(TK("@id"));
+            consume(TK(".")); consume(TK("@id"));
             emitCode(OP_LOAD_CONST, getCode()->addConst(vm->PyStr(parser->previous.str())));
             emitCode(OP_GOTO);
             consumeEndStatement();

+ 7 - 0
tests/4.py

@@ -0,0 +1,7 @@
+for i in range(100):
+    for j in range(100):
+        print(i, j)
+        goto .end
+
+label .end
+print("END")