internal void AddHintNode(BaseHintChainNode <TState> node) { if (node.Id == null) { return; } hintNodeIdMap[node.Id] = node; }
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); }