public SelectTable[] Run() { SelectTable[] table = null; var parser = new LangParser(_source, _flags); var ast = parser.Parse(); parser.Errors.ToList().ForEach(x => Errors.Add(x)); if (Errors.Count == 0) { //semantic check if ((_flags & ExecuteFlags.Semantic) == ExecuteFlags.Semantic) { var inter = new Interpreter.Execution.Interpreter(ast, _editorCursor, Authorization, _semanticHttpExecutor); inter.Execute(); if (inter.Errors.Count > 0) { Errors = inter.Errors; } ScopeModel = inter.ScopeModel; } if (Authorization == "Basic" && Errors.Count == 0) //empty auth header { Errors.Add(new ApiExecuteError(ApiExecuteErrorType.AuthError, "Authentication error")); return(table); } if (Errors.Count == 0 && ((_flags & ExecuteFlags.Execute) == ExecuteFlags.Execute)) // we run { var inter = new Interpreter.Execution.Interpreter(ast, _editorCursor, Authorization, _httpExecutor); table = inter.Execute(); Errors = inter.Errors; } } return(table); }