public ITerminalNode AddRule(ReteBuilderContext context, IRuleDefinition rule) { Visit(context, rule.LeftHandSide); var terminalNode = new TerminalNode(context.BetaSource); return(terminalNode); }
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); }