protected override string InnerTranslate() { string finallyStr = ""; if (Finally != null) { finallyStr = Finally.Translate(); } if (Catches.GetEnumerable().Count() > 1) { return($@"try {Block.Translate()} catch(__ex__){{ {BuildCatchBlock()} }} {finallyStr}"); } return($@"try {Block.Translate()} {Catches.Translate()} {finallyStr}"); }
private string BuildCatchBlock() { StringBuilder bd = new StringBuilder(); foreach (var item in Catches.GetEnumerable()) { string str = ""; string name = "__ex__"; if (item.Syntax.Declaration.Identifier.ToString() != string.Empty) { str = $"var {item.Syntax.Declaration.Identifier } = __ex__;"; name = item.Syntax.Declaration.Identifier.ToString(); } str += $"if( {name } instanceof {item.Syntax.Declaration.Type})" + $"\n {item.Block} \n"; bd.Append(str); } return(bd.ToString()); }