Ejemplo n.º 1
0
        /// <summary>
        /// script_fragment :
        ///     FRAGMENT NAME key
        ///     (DESCRIPTION comment)?
        ///     (define_referenciel_statement SEMICOLON)+
        ///     ;
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override object VisitScript_fragment([NotNull] WorkflowParser.Script_fragmentContext context)
        {
            if (context.DESCRIPTION() != null)
            {
                this._workflow.Label = (string)VisitComment(context.comment());
            }

            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);
                }
            }

            Stop();

            return(null);
        }
 /// <summary>
 /// Visit a parse tree produced by <see cref="WorkflowParser.script_fragment"/>.
 /// <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_fragment([NotNull] WorkflowParser.Script_fragmentContext context)
 {
     return(VisitChildren(context));
 }
 /// <summary>
 /// script_fragment :
 ///     FRAGMENT NAME key
 ///     (DESCRIPTION comment)?
 ///     (define_referenciel_statement SEMICOLON)+
 ///     ;
 /// </summary>
 /// <param name="context"></param>
 /// <returns></returns>
 public override object VisitScript_fragment([NotNull] WorkflowParser.Script_fragmentContext context)
 {
     return(base.VisitScript_fragment(context));
 }