public BehaviourTreeCompiler() { Creators = new List <LispParser.ICanCreateFromLispParseTree <TBb> > { // Control Flow new Sequence <TBb>(), new Selector <TBb>(), // Utility Control Flow new UtilitySelector <TBb>(), new UtilitySequence <TBb>(), new TaskUtility <TBb>(null, null), // Decorators new Counter <TBb>(null), new AlwaysFail <TBb>(null), new AlwaysSucceed <TBb>(null), new Invert <TBb>(null), new UntilFail <TBb>(null), new UntilSuccess <TBb>(null), new RunOnce <TBb>(null), new RunNTimes <TBb>(null), // Leaves new Fail <TBb>(), new Succeed <TBb>(), new KeepRunning <TBb>(), new DebugLog <TBb>(), new FixedResultState <TBb>(null, TaskState.Running) }; LispCompiler = new LispCompiler <TBb>(); }
public void Test(string code, float extected) { LispCompiler<Blackboard> lispCompiler = new LispCompiler<Blackboard>(); Blackboard blackboard = new Blackboard(); LispOperator<Blackboard> func = lispCompiler.Compile(blackboard, code); float result = func.TryEvaluateToFloat(); Debug.WriteLine(func.BuildParseTree().ToCode() + " => " + result); result.Should().Be(extected); }
public void Test() { string code = "(+ 7 10 (* 2 8))"; LispCompiler<Blackboard> lispCompiler = new LispCompiler<Blackboard>(); Blackboard blackboard = new Blackboard(); LispOperator<Blackboard> func = lispCompiler.Compile(blackboard, code); Debug.WriteLine(func.BuildParseTree().ToCode()); Debug.WriteLine(func.TryEvaluateToFloat()); }
public void BoolTest() { string code = "(And True False)"; LispCompiler<Blackboard> lispCompiler = new LispCompiler<Blackboard>(); Blackboard blackboard = new Blackboard(); LispOperator<Blackboard> func = lispCompiler.Compile(blackboard, code); Debug.WriteLine(func.BuildParseTree().ToCode()); Debug.WriteLine(func.TryEvaluateToBool()); }
public void Test3() { string code = "5"; LispCompiler<Blackboard> lispCompiler = new LispCompiler<Blackboard>(); Blackboard blackboard = new Blackboard(); LispOperator<Blackboard> func = lispCompiler.Compile(blackboard, code); Debug.WriteLine(func.BuildParseTree().ToCode()); func.Should().BeOfType<IntConstant<Blackboard>>(); }
public void Test2() { string code = "(* 2 Pi (+ A B))"; LispCompiler<Blackboard> lispCompiler = new LispCompiler<Blackboard>(); Blackboard blackboard = new Blackboard(); LispOperator<Blackboard> func = lispCompiler.Compile(blackboard, code); Debug.WriteLine(func.BuildParseTree().ToCode()); Debug.WriteLine(func.TryEvaluateToFloat()); }
public void Test_Compiler() { var compiler = new LispCompiler(); var code = "(print \"Hello world!\")"; var result = compiler.CompileToCsCode(code); compiler.CompileCsCodeToAssembly(result.StringValue, CompilerOutputFileName); Assert.IsTrue(result.StringValue.Length > 0); //Assert.IsTrue(File.Exists(CompilerOutputFileName)); }