From 6aa3b22e8ec09f5c0b384eccbfe542e969ca7920 Mon Sep 17 00:00:00 2001 From: Tom Date: Thu, 18 Oct 2018 17:30:25 -0600 Subject: [PATCH] converting 'else if' statements to lua 'elseif' instead of nested ifs --- src/Transpiler.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Transpiler.ts b/src/Transpiler.ts index bfbd58a6e..bb884134b 100644 --- a/src/Transpiler.ts +++ b/src/Transpiler.ts @@ -458,10 +458,20 @@ export abstract class LuaTranspiler { result += this.transpileStatement(node.thenStatement); this.popIndent(); - if (node.elseStatement) { + let elseStatement = node.elseStatement; + while (elseStatement && ts.isIfStatement(elseStatement)) { + const elseIfCondition = this.transpileExpression(elseStatement.expression); + result += this.indent + `elseif ${elseIfCondition} then\n`; + this.pushIndent(); + result += this.transpileStatement(elseStatement.thenStatement); + this.popIndent(); + elseStatement = elseStatement.elseStatement; + } + + if (elseStatement) { result += this.indent + "else\n"; this.pushIndent(); - result += this.transpileStatement(node.elseStatement); + result += this.transpileStatement(elseStatement); this.popIndent(); }