diff --git a/SMILEBASIC/VM.d b/SMILEBASIC/VM.d index 18b44fa..e05e6d8 100644 --- a/SMILEBASIC/VM.d +++ b/SMILEBASIC/VM.d @@ -2,6 +2,7 @@ module otya.smilebasic.vm; import otya.smilebasic.type; import otya.smilebasic.token; import std.uni; +import std.utf; import std.conv; import std.stdio; class VM @@ -64,7 +65,7 @@ class PrintCode : Code write(arg.integerValue); break; case ValueType.String: - write(cast(string)arg.stringValue); + write(arg.stringValue.to!string); break; default: //type missmatch diff --git a/SMILEBASIC/parser.d b/SMILEBASIC/parser.d index a315c6e..ccdc913 100644 --- a/SMILEBASIC/parser.d +++ b/SMILEBASIC/parser.d @@ -314,7 +314,11 @@ class Parser } print.addArgument(exp); token = lex.front(); - if(lex.empty()) break; + if(lex.empty()) + { + print.addLine(); + break; + } if(token.type != TokenType.Colon && token.type != TokenType.NewLine && token.type != TokenType.Semicolon && token.type != TokenType.Comma) { syntaxError();