public override bool ExecuteAction(ActionProgramRun ap) { string res; if (ap.functions.ExpandString(UserData, out res) != ConditionFunctions.ExpandResult.Failed) { StringParser p = new StringParser(res); string cmd; while ((cmd = p.NextWord(" ", true)) != null) { if (cmd.Equals("dumpvars")) { string rest = p.NextQuotedWord(); if (rest != null && rest.Length > 0) { ConditionVariables filtered = ap.variables.FilterVars(rest); foreach (string key in filtered.NameEnumuerable) { ap.actioncontroller.LogLine(key + "=" + filtered[key]); } } else { ap.ReportError("Missing variable wildcard after Pragma DumpVars"); return(true); } } else if (cmd.Equals("log")) { string rest = p.NextQuotedWord(replaceescape: true); if (rest != null) { ap.actioncontroller.LogLine(rest); } else { ap.ReportError("Missing string after Pragma Log"); return(true); } } else if (cmd.Equals("debug")) { string rest = p.NextQuotedWord(replaceescape: true); if (rest != null) { #if DEBUG ap.actioncontroller.LogLine(rest); #endif } else { ap.ReportError("Missing string after Debug"); } return(true); } else if (cmd.Equals("ignoreerrors")) { ap.SetContinueOnErrors(true); } else if (cmd.Equals("allowerrors")) { ap.SetContinueOnErrors(true); } } } else { ap.ReportError(res); } return(true); }