diff --git a/src/compiler.h b/src/compiler.h index 5575851e..29abe8eb 100644 --- a/src/compiler.h +++ b/src/compiler.h @@ -482,13 +482,13 @@ public: int _body_start = getCode()->co_code.size(); int ARGC = 0; do { - matchNewLines(); + matchNewLines(mode()==SINGLE_MODE); if (peek() == TK("]")) break; EXPR(); ARGC++; - matchNewLines(); + matchNewLines(mode()==SINGLE_MODE); if(ARGC == 1 && match(TK("for"))) goto __LISTCOMP; } while (match(TK(","))); - matchNewLines(); + matchNewLines(mode()==SINGLE_MODE); consume(TK("]")); emitCode(OP_BUILD_LIST, ARGC); return; @@ -499,7 +499,7 @@ __LISTCOMP: getCode()->co_code[_patch].arg = _body_end; emitCode(OP_BUILD_LIST, 0); EXPR_FOR_VARS();consume(TK("in"));EXPR_TUPLE(); - matchNewLines(); + matchNewLines(mode()==SINGLE_MODE); int _skipPatch = emitCode(OP_JUMP_ABSOLUTE); int _cond_start = getCode()->co_code.size(); @@ -531,11 +531,11 @@ __LISTCOMP: void exprMap() { int size = 0; do { - matchNewLines(); + matchNewLines(mode()==SINGLE_MODE); if (peek() == TK("}")) break; EXPR();consume(TK(":"));EXPR(); size++; - matchNewLines(); + matchNewLines(mode()==SINGLE_MODE); } while (match(TK(","))); matchNewLines(); consume(TK("}")); diff --git a/src/obj.h b/src/obj.h index a773a249..d38c5b81 100644 --- a/src/obj.h +++ b/src/obj.h @@ -10,7 +10,7 @@ const _Int _Int_MAX_NEG = -9223372036854775807LL; const _Float _FLOAT_INF_POS = INFINITY; const _Float _FLOAT_INF_NEG = -INFINITY; -#define PK_VERSION "0.3.3" +#define PK_VERSION "0.3.4" class CodeObject; class BasePointer; diff --git a/src/repl.h b/src/repl.h index 92fd2095..3edd88cd 100644 --- a/src/repl.h +++ b/src/repl.h @@ -13,7 +13,6 @@ class REPL: public PkExportedResource { protected: int need_more_lines = 0; std::string buffer; - CompileMode mode; VM* vm; bool exited = false; @@ -34,7 +33,6 @@ public: InputResult input(std::string line){ if(exited) return EXEC_SKIPPED; - mode = SINGLE_MODE; if(need_more_lines){ buffer += line; buffer += '\n'; @@ -45,7 +43,6 @@ public: } need_more_lines = 0; line = buffer; - mode = EXEC_MODE; // tmp set to EXEC_MODE buffer.clear(); }else{ __NOT_ENOUGH_LINES: @@ -57,7 +54,7 @@ __NOT_ENOUGH_LINES: } try{ - _Code code = compile(vm, line.c_str(), "", mode); + _Code code = compile(vm, line.c_str(), "", SINGLE_MODE); if(code == nullptr) return EXEC_SKIPPED; vm->execAsync(code); return EXEC_DONE;