protected override void TranslateSwitchStatementContinuousSafe(List <string> output, SwitchStatementContinuousSafe switchStatement) { SwitchStatementContinuousSafe.SearchTree tree = switchStatement.GenerateSearchTree(); int switchId = this.GetNextInt(); string varName = "switch_key_" + switchId; output.Add(this.CurrentTabIndention); output.Add(varName); output.Add(" = "); this.TranslateExpression(output, switchStatement.Condition); output.Add("\r\n"); this.GenerateSearchTree(output, tree, varName); }
private void GenerateSearchTree(List <string> output, SwitchStatementContinuousSafe.SearchTree tree, string varName) { if (tree.Code == null) { output.Add(this.CurrentTabIndention); output.Add("if " + varName + " < " + tree.LessThanThis + ":\r\n"); this.CurrentIndention++; this.GenerateSearchTree(output, tree.Left, varName); this.CurrentIndention--; output.Add(this.CurrentTabIndention); output.Add("else:\r\n"); this.CurrentIndention++; this.GenerateSearchTree(output, tree.Right, varName); this.CurrentIndention--; } else { this.Translate(output, tree.Code); } }