/// <summary> /// script_full : /// (INCLUDE CHAR_STRING) * /// NAME key (VERSION versionNumber=number)? /// (CONCURENCY concurencyNumber=number)? /// (DESCRIPTION comment)? /// (MATCHING matchings)? /// (define_referenciel_statement SEMICOLON)+ /// initializing? /// (define_state_statement SEMICOLON) * /// ; /// </summary> /// <param name="context"></param> /// <returns></returns> public override object VisitScript_full([NotNull] WorkflowParser.Script_fullContext context) { return(base.VisitScript_full(context)); }
/// <summary> /// Visit a parse tree produced by <see cref="WorkflowParser.script_full"/>. /// <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 VisitScript_full([NotNull] WorkflowParser.Script_fullContext context) { return(VisitChildren(context)); }
/// <summary> /// script_full : /// (INCLUDE CHAR_STRING) * /// NAME key (VERSION versionNumber=number)? /// (CONCURENCY concurencyNumber=number)? /// (DESCRIPTION comment)? /// (MATCHING matchings)? /// (define_referenciel_statement SEMICOLON)+ /// initializing? /// (define_state_statement SEMICOLON) * /// ; /// </summary> /// <param name="context"></param> /// <returns></returns> public override object VisitScript_full([NotNull] WorkflowParser.Script_fullContext context) { this._workflow.Name = (string)VisitKey(context.key()); if (context.VERSION() != null) { this._workflow.Version = (int)VisitNumber(context.versionNumber); } else { this._workflow.Version = 1; } var concurency = context.concurency(); if (concurency != null) { this._workflow.Concurrency = (int)VisitConcurency(concurency); } else { this._workflow.Concurrency = 1; } if (context.DESCRIPTION() != null) { this._workflow.Label = (string)VisitComment(context.comment()); } if (context.MATCHING() != null) { var filters = (List <(string, string)>)VisitMatchings(context.matchings()); foreach (var matching in filters) { this._workflow.AddFilter(matching.Item1, matching.Item2); } } var define_referenciel_statements = context.define_referenciel_statement(); foreach (var define_referenciel_statement in define_referenciel_statements) { var declaration = VisitDefine_referenciel_statement(define_referenciel_statement); switch (declaration) { case ConstantExpressionModel c: this._constants.Add(c.Key, c); break; case DeclaredEventConfig e: this._workflow.DeclaredEvents.Add(e.Name, e); break; case MethodReference r: // Do nothing break; default: throw new NotImplementedException(declaration.GetType().Name); } } // Add states definitions var define_state_statements = context.define_state_statement(); if (define_state_statements != null) { foreach (var define_state_statement in define_state_statements) { var declaration = VisitDefine_state_statement(define_state_statement); if (declaration is StateConfig s) { this._workflow.AddState(s); } else { Stop(); throw new NotImplementedException(declaration.GetType().Name); } } } // Add initializers var initializing = context.initializing(); if (initializing != null) { var inits = (List <InitializationOnEventConfig>)VisitInitializing(initializing); foreach (var init in inits) { this._workflow.AddInitializer(init); } } // workflow.Errors.AddRange(this._errors); return(null); }