public override MultilineStatement Interprete(string src) { var returns = new TryCatchStmt(); string trysrc = ""; string catchsrc = ""; string finalysrc = ""; var state = TryCatchState.Try; for (int index = 0; index < src.Split(new[] { '\n', ';' }, StringSplitOptions.RemoveEmptyEntries).Length; index++) { string i = src.Split(new[] { '\n', ';' }, StringSplitOptions.RemoveEmptyEntries)[index]; if (Parser.Grammar.GetPattern("catch").IsValid(i)) { returns.catchheader = i; state = TryCatchState.Catch; } if (Parser.Grammar.GetPattern("finally").IsValid(i)) { state = TryCatchState.Finally; } if (state == TryCatchState.Try) { if (index != 0) { trysrc += i + ";\n"; } } if (state == TryCatchState.Catch) { catchsrc += i + ";\n"; } if (state == TryCatchState.Finally) { finalysrc += i + ";\n"; } } returns.TryNodes = Parser.ParseCodeBlock(trysrc.TrimEnd('\n'), "").Nodes; returns.CatchNodes = Parser.ParseCodeBlock(catchsrc, "").Nodes; returns.FinallyNodes = Parser.ParseCodeBlock(finalysrc, "").Nodes; return(returns); }
public override MultilineStatement Interprete(string src) { var returns = new TryCatchStmt(); string trysrc = ""; string catchsrc = ""; string finalysrc = ""; var state = TryCatchState.Try; for (int index = 0; index < src.Split(new[] { '\n', ';' }, StringSplitOptions.RemoveEmptyEntries).Length; index++) { string i = src.Split(new[] { '\n', ';' }, StringSplitOptions.RemoveEmptyEntries)[index]; if (Parser.Grammar.GetPattern("catch").IsValid(i)) { returns.catchheader = i; state = TryCatchState.Catch; } if (Parser.Grammar.GetPattern("finally").IsValid(i)) { state = TryCatchState.Finally; } if (state == TryCatchState.Try) { if (index != 0) { trysrc += i + ";\n"; } } if (state == TryCatchState.Catch) { catchsrc += i + ";\n"; } if (state == TryCatchState.Finally) { finalysrc += i + ";\n"; } } returns.TryNodes = Parser.ParseCodeBlock(trysrc.TrimEnd('\n'), "").Nodes; returns.CatchNodes = Parser.ParseCodeBlock(catchsrc, "").Nodes; returns.FinallyNodes = Parser.ParseCodeBlock(finalysrc, "").Nodes; return returns; }