private int RunDirect() { var input = cmda.GetStringDefault("file", null); if (string.IsNullOrWhiteSpace(input) || !File.Exists(input)) { return(Fail("Please specify a valid input file")); } try { string inputCode = File.ReadAllText(input); var parser = new TextFungeParser(); var prog = parser.GenerateAst(inputCode); var env = new RunnerEnvironment(); prog.RunDirect(env, TextFungeParser.ExtractDisplayFromTFFormat(inputCode)); return(0); } catch (BefunGenException ex) { return(Fail("Error while compiling:\n\n" + ex)); } catch (Exception ex) { return(Fail("Internal error:\n\n" + ex)); } }
public RunnerResult RunDirect(RunnerEnvironment env, List <long> parameter, out long?returnValue) { env.StackFrameDown(Identifier); for (int i = 0; i < Parameter.Count; i++) { env.RegisterVariable(Parameter[i], parameter[i]); } foreach (var vv in Variables.Except(Parameter)) { env.RegisterVariable(vv); } var r = Body.RunDirect(env); while (true) { if (r.ResultType == RunnerResult.RRType.Exit) { returnValue = null; return(r); } else if (r.ResultType == RunnerResult.RRType.Return) { returnValue = env.StackFrameUp(); return(RunnerResult.Normal()); } else if (r.ResultType == RunnerResult.RRType.Normal) { returnValue = env.StackFrameUp(); return(RunnerResult.Normal()); } else if (r.ResultType == RunnerResult.RRType.Jump) { int iskip = Body.List.IndexOf(env.JumpTarget); if (iskip < 0) { throw new InternalCodeRunException($"Label '{env.JumpTarget.Identifier}' not found in {env.CurrentFrame.Name}"); } env.JumpTarget = null; r = Body.RunDirect(env, iskip); } } }
protected virtual void InitRunnerTypes() { var runnerLibraries = RunnerEnvironment.GetEnvironmentVariable(EnvironmentConsts.RunnerLibraries); Trace.WriteLine(string.Format("Testing with runner libraries: [{0}]", runnerLibraries)); //if (!string.IsNullOrEmpty(runnerLibraries)) //{ // var libs = runnerLibraries.Split(','); // foreach (var lib in libs) // ProvisionRunnerAssemblies.Add(lib); //} ProvisionRunnerAssemblies.Add("SPMeta2.Regression.Runners.O365.dll"); //ProvisionRunnerAssemblies.Add("SPMeta2.Regression.Runners.CSOM.dll"); //ProvisionRunnerAssemblies.Add("SPMeta2.Regression.Runners.SSOM.dll"); }
public void RunDirect(RunnerEnvironment env, string initialDisp) { env.ResetDisplay(DisplayWidth, DisplayHeight, initialDisp, ' '); foreach (var ml in MethodList) { env.RegisterMethod(ml); } foreach (var cc in Constants) { env.RegisterGlobalVariable(cc); } foreach (var vv in Variables) { env.RegisterGlobalVariable(vv); } MainMethod.RunDirect(env, new List <long>(), out _); }
public O365ProvisionRunner() { SiteUrl = RunnerEnvironment.GetEnvironmentVariable(EnvironmentConsts.O365_SiteUrl); UserName = RunnerEnvironment.GetEnvironmentVariable(EnvironmentConsts.O365_UserName); UserPassword = RunnerEnvironment.GetEnvironmentVariable(EnvironmentConsts.O365_Password); }
public SSOMProvisionRunner() { WebApplicationUrl = RunnerEnvironment.GetEnvironmentVariable(EnvironmentConsts.SSOM_WebApplicationUrl); SiteUrl = RunnerEnvironment.GetEnvironmentVariable(EnvironmentConsts.SSOM_SiteUrl); }