From 0866fc0739778e6dbfbdef58c150e6e03fdee517 Mon Sep 17 00:00:00 2001 From: otya128 Date: Wed, 31 Aug 2016 17:53:02 +0900 Subject: [PATCH] =?UTF-8?q?OUT=E3=82=92=E9=85=8D=E5=88=97=E5=A4=89?= =?UTF-8?q?=E6=95=B0=E3=81=AA=E3=81=A9=E3=81=AB=E5=AF=BE=E5=BF=9C=E3=81=95?= =?UTF-8?q?=E3=81=9B=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SMILEBASIC/compiler.d | 4 ++-- SMILEBASIC/node.d | 4 ++-- SMILEBASIC/parser.d | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/SMILEBASIC/compiler.d b/SMILEBASIC/compiler.d index 791f30a..dff12ac 100644 --- a/SMILEBASIC/compiler.d +++ b/SMILEBASIC/compiler.d @@ -940,9 +940,9 @@ class Compiler } } //TODO:OUT - foreach_reverse(wstring var; func.outVariable) + foreach_reverse(var; func.outVariable) { - genCodePopVar(var, s); + compilePopVar(var, s); } } break; diff --git a/SMILEBASIC/node.d b/SMILEBASIC/node.d index 1f98d09..82c3aac 100644 --- a/SMILEBASIC/node.d +++ b/SMILEBASIC/node.d @@ -443,7 +443,7 @@ class CallFunctionStatement : Statement { wstring name; Expression[] args; - wstring[] outVariable; + Expression[] outVariable; this(wstring n, SourceLocation loc) { super.location = loc; @@ -455,7 +455,7 @@ class CallFunctionStatement : Statement { args ~= arg; } - void addOut(wstring var) + void addOut(Expression var) { outVariable ~= var; } diff --git a/SMILEBASIC/parser.d b/SMILEBASIC/parser.d index 6c6c795..b42600e 100644 --- a/SMILEBASIC/parser.d +++ b/SMILEBASIC/parser.d @@ -858,13 +858,13 @@ class Parser while(true) { token = lex.front(); - if(token.type != TokenType.Iden) + Expression arg = expression(); + if(!isLValue(arg)) { + syntaxError(); return null; } - wstring arg = token.value.stringValue; func.addOut(arg); - lex.popFront(); token = lex.front(); if(token.type == TokenType.Comma) {