diff --git a/SMILEBASIC/compiler.d b/SMILEBASIC/compiler.d index f3d3c66..9adce21 100644 --- a/SMILEBASIC/compiler.d +++ b/SMILEBASIC/compiler.d @@ -656,6 +656,8 @@ class Compiler { DefineVariable var = cast(DefineVariable)v; defineVarIndex(var.name, sc); + compileExpression(var.expression, sc); + genCodePopVar(var.name, sc); continue; } if(v.type == NodeType.DefineArray) diff --git a/SMILEBASIC/parser.d b/SMILEBASIC/parser.d index fb2df03..8c12f3b 100644 --- a/SMILEBASIC/parser.d +++ b/SMILEBASIC/parser.d @@ -202,6 +202,7 @@ class Lexical if(c == '"' || c == '\r' || c == '\n')//"を閉じない文も許容 { i++; + if (c == '\r' || c == '\n') i--; break; } str ~= c; @@ -1272,7 +1273,7 @@ class Parser else { //VAR iden=expr - if(token.type == TokenType.Equal) + if(token.type == TokenType.Assign) { lex.popFront(); expr = expression();