From 09ff06ec564471129c9f9cc375643ea5724210ea Mon Sep 17 00:00:00 2001 From: otya128 Date: Fri, 12 Jun 2015 22:07:48 +0900 Subject: [PATCH] =?UTF-8?q?ArrayAssign=E3=81=AEbreak;=E5=BF=98=E3=82=8C?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3,suffix=E7=84=A1=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E6=99=82=E3=81=AE=E5=9E=8B=E3=82=92double=E3=81=AB=E3=81=97?= =?UTF-8?q?=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SMILEBASIC/VM.d | 2 +- SMILEBASIC/compiler.d | 5 +++-- SMILEBASIC/main.d | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/SMILEBASIC/VM.d b/SMILEBASIC/VM.d index 13a8618..6295c25 100644 --- a/SMILEBASIC/VM.d +++ b/SMILEBASIC/VM.d @@ -27,7 +27,7 @@ class VM case '%': return ValueType.Integer; default: - return ValueType.Integer;//DEFINT時 + return ValueType.Double;//DEFINT時 } } this(Code[] code, int len, int[wstring] globalTable) diff --git a/SMILEBASIC/compiler.d b/SMILEBASIC/compiler.d index c832e6f..1ec576e 100644 --- a/SMILEBASIC/compiler.d +++ b/SMILEBASIC/compiler.d @@ -390,6 +390,7 @@ class Compiler compileExpression(assign.indexExpression); genCode(new PopGArray(getGlobalVarIndex(assign.name), assign.indexExpression.expressions.length)); } + break; default: stderr.writeln("Compile:NotImpl ", i.type); } @@ -422,6 +423,6 @@ unittest auto parser = new Parser("A=1+2+3+4*5/4-5+(6+6)*7"); auto vm = parser.compile(); vm.run(); - writeln(vm.testGetGlobalVariable("A").integerValue); - assert(vm.testGetGlobalVariable("A").integerValue == 1+2+3+4*5/4-5+(6+6)*7); + writeln(vm.testGetGlobalVariable("A").castDouble); + assert(vm.testGetGlobalVariable("A").castDouble == 1+2+3+4*5/4-5+(6+6)*7); } diff --git a/SMILEBASIC/main.d b/SMILEBASIC/main.d index 63f5bd8..c3041e9 100644 --- a/SMILEBASIC/main.d +++ b/SMILEBASIC/main.d @@ -57,6 +57,7 @@ VAR V[10,10] V[0,1]=12 ?V[0,1] ?\"ABC\"[1][0] +?1/2 GOSUB @A END @A