/// <summary> /// initializing_item : /// ON EVENT key (WHEN rule_conditions)? RECURSIVE? SWITCH key /// ; /// </summary> /// <param name="context"></param> /// <returns></returns> public override object VisitInitializing_item([NotNull] WorkflowParser.Initializing_itemContext context) { var keys = context.key(); string eventName = (string)VisitKey(keys[0]); string _switch = (string)VisitKey(keys[1]); string conditionTxt = string.Empty; string conditionCode = string.Empty; Func <RunContext, bool> func = null; RuleSpan whenRulePosition = null; if (context.WHEN() != null) { var condition = context.rule_conditions(); conditionTxt = condition.GetText(); var compilation = ((Func <RunContext, bool>, string))Compile((ExpressionModel)VisitRule_conditions(condition)); func = compilation.Item1; conditionCode = compilation.Item2; whenRulePosition = new RuleSpan() { StartLine = condition.Start.Line, StartColumn = condition.Start.Column, StartIndex = condition.Start.StartIndex, StopLine = condition.Stop.Line, StopColumn = condition.Stop.Column, StopIndex = condition.Stop.StopIndex, }; } InitializationOnEventConfig c1 = new InitializationOnEventConfig() { EventName = eventName, Recursive = context.RECURSIVE() != null, } .AddSwitch(_switch, func, conditionTxt, conditionCode, whenRulePosition); return(c1); }
/// <summary> /// Visit a parse tree produced by <see cref="WorkflowParser.initializing_item"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitInitializing_item([NotNull] WorkflowParser.Initializing_itemContext context) { return(VisitChildren(context)); }
/// <summary> /// initializing_item : /// ON EVENT eventNamereference (WHEN rule_conditions)? RECURSIVE? SWITCH key /// ; /// </summary> /// <param name="context"></param> /// <returns></returns> public override object VisitInitializing_item([NotNull] WorkflowParser.Initializing_itemContext context) { return(base.VisitInitializing_item(context)); }