From f9d52680f437fdcb7c818732673b8a16d545f1e8 Mon Sep 17 00:00:00 2001 From: otya128 Date: Thu, 4 Jun 2015 19:18:14 +0900 Subject: [PATCH] =?UTF-8?q?PRINT=E6=96=87=E3=81=AE=E6=A7=8B=E6=96=87?= =?UTF-8?q?=E6=9C=A8=E3=82=92=E5=AE=9A=E7=BE=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SMILEBASIC/node.d | 47 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/SMILEBASIC/node.d b/SMILEBASIC/node.d index e3a74a1..e8b77dc 100644 --- a/SMILEBASIC/node.d +++ b/SMILEBASIC/node.d @@ -100,6 +100,7 @@ class Statements : Statement this() { this.type = NodeType.Statements; + statements = new Statement[0]; } void addStatement(Statement statement) { @@ -110,10 +111,28 @@ class Statements : Statement enum PrintArgumentType { Expression,//exp - LF, + Line, Tab,//, } /* +*;は基本無視 +*/ +struct PrintArgument +{ + PrintArgumentType type; + Expression expression; + this(PrintArgumentType type) + { + this.type = type; + this.expression = null; + } + this(PrintArgumentType type, Expression expression) + { + this.type = type; + this.expression = expression; + } +} +/* *PRINTは関数ではないしmkIIと違って必ず:がいる *関数と違ってFUNC(,,,)のような記述はエラー *と言っても3.2で上の記述もエラーになりうる @@ -121,14 +140,22 @@ enum PrintArgumentType class Print : Statement { - /* - *;は基本無視 - */ - struct PrintArgument - { - PrintArgumentType type; - Expression expression; - } PrintArgument[] args; - + this() + { + this.type = NodeType.Print; + args = new PrintArgument[0]; + } + void addArgument(Expression expression) + { + args ~= PrintArgument(PrintArgumentType.Expression, expression); + } + void addTab() + { + args ~= PrintArgument(PrintArgumentType.Tab); + } + void addLine() + { + args ~= PrintArgument(PrintArgumentType.Line); + } }