示例#1
0
        public ITerminalNode AddRule(ReteBuilderContext context, IRuleDefinition rule)
        {
            Visit(context, rule.LeftHandSide);
            var terminalNode = new TerminalNode(context.BetaSource);

            return(terminalNode);
        }
示例#2
0
        private TerminalNode BuildTerminalNode(ReteBuilderContext context, IEnumerable <Declaration> ruleDeclarations)
        {
            if (context.AlphaSource != null)
            {
                BuildJoinNode(context);
            }
            var factIndexMap = IndexMap.CreateMap(ruleDeclarations, context.Declarations);
            var terminalNode = new TerminalNode(context.BetaSource, factIndexMap);

            return(terminalNode);
        }