Example #1
0
 internal void AddHintNode(BaseHintChainNode <TState> node)
 {
     if (node.Id == null)
     {
         return;
     }
     hintNodeIdMap[node.Id] = node;
 }
Example #2
0
        internal override BaseHintChainNode <TState>?MakeHintChain(GuideParser <TState> guideParser)
        {
            if (hints.Count == 0)
            {
                return(null);
            }
            BaseHintChainNode <TState> root     = hints[0].MakeHintChain(guideParser) !;
            BaseHintChainNode <TState> prevNode = root;

            for (int i = 1; i < hints.Count; ++i)
            {
                var hint        = hints[i];
                var currentNode = hint.MakeHintChain(guideParser);
                prevNode.SetNextNode(currentNode);
                if (currentNode == null)
                {
                    break;
                }
                prevNode = currentNode;
            }

            return(root);
        }