Example #1
0
 public LispParser.Node BuildParseTree()
 {
     LispParser.MethodNode node = new LispParser.MethodNode("TaskUtility");
     node.Add(UtilityComputer.BuildParseTree());
     node.Add(Task.BuildParseTree());
     return(node);
 }
Example #2
0
 public LispParser.Node BuildParseTree()
 {
     LispParser.MethodNode node = new LispParser.MethodNode("BehaviourTree");
     node.Add("Name", Name, true);
     node.Add("RunningTaskHysterisis", RunningTaskHysterisis);
     node.Add(RootTask.BuildParseTree());
     return(node);
 }
Example #3
0
        public override LispParser.MethodNode BuildParseTree()
        {
            LispParser.MethodNode node = (LispParser.MethodNode)base.BuildParseTree();
            if (Predicate != null)
            {
                node.Add("if", Predicate.BuildParseTree());
            }

            foreach (TreeTask <TBb> treeTask in Children)
            {
                node.Add(treeTask.BuildParseTree());
            }
            return(node);
        }
Example #4
0
        LispParser.ICanCreateFromLispParseTree <TBb> LispParser.ICompiler <TBb> .Compile(TBb blackboard, LispParser.Node parseTree)
        {
            foreach (LispParser.ICanCreateFromLispParseTree <TBb> creator in Creators)
            {
                LispParser.ICanCreateFromLispParseTree <TBb> result = creator.CreateFromParseTree(blackboard, parseTree, this);
                if (result != null)
                {
                    return(result);
                }
            }

            // For named couritines, we rewrite the parsetree to be able to use the regular flow.
            LispParser.MethodNode method = parseTree as LispParser.MethodNode;
            if (method != null)
            {
                Func <IEnumerator <TaskState> > function = blackboard.GetCoRoutineFunc(method.Identifier.Value);
                if (function != null)
                {
                    method.Add(method.Identifier);
                    method.Identifier = new LispParser.IdentifierNode("NamedCoroutine");
                    LispParser.ICanCreateFromLispParseTree <TBb> result = ((LispParser.ICanCreateFromLispParseTree <TBb>)_namedCoroutine).CreateFromParseTree(blackboard, method, this);
                    if (result != null)
                    {
                        return(result);
                    }
                }
            }

            throw new InvalidOperationException(
                      string.Format("Unrecognized token: {0}.", parseTree));
        }
Example #5
0
        public virtual LispParser.MethodNode BuildParseTree()
        {
            string className = GetClassName();

            LispParser.MethodNode node = new LispParser.MethodNode(className);
            node.Add("Name", Name, true);
            return(node);
        }
Example #6
0
 public override LispParser.MethodNode BuildParseTree()
 {
     // Named Coroutine is hidden in the code, so this behaves slightly differently than would be expected
     //LispParser.MethodNode node = base.BuildParseTree();
     //node.Add(NamedCoroutineCreator.BuildParseTree());
     //return node;
     LispParser.MethodNode node = new LispParser.MethodNode(NamedCoroutineCreator.Name);
     node.Add("Name", Name, true);
     return(node);
 }
Example #7
0
 public override LispParser.MethodNode BuildParseTree()
 {
     LispParser.MethodNode node = new LispParser.MethodNode("DebugLog");
     node.Add(StringComputer.BuildParseTree());
     return(node);
 }
Example #8
0
 public override LispParser.MethodNode BuildParseTree()
 {
     LispParser.MethodNode node = base.BuildParseTree();
     node.Add("ResultState", ResultState.ToString());
     return(node);
 }
Example #9
0
 public override LispParser.MethodNode BuildParseTree()
 {
     LispParser.MethodNode node = base.BuildParseTree();
     node.Add(DecoratedTask.BuildParseTree());
     return(node);
 }