Ejemplo n.º 1
0
        /// <summary>
        /// parameters :
        ///     parameter(COMMA parameter)*
        ///     ;
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override object VisitParameters([NotNull] WorkflowParser.ParametersContext context)
        {
            Dictionary <string, Type> _h = new Dictionary <string, Type>();

            foreach (var item in context.parameter())
            {
                var pp = ((Type, string))VisitParameter(item);
                if (!_h.ContainsKey(pp.Item2))
                {
                    this._errors.Add(new ErrorModel()
                    {
                        StartIndex = item.Start.StartIndex,
                        Line       = item.Start.Line,
                        Column     = item.Start.Column,
                        Text       = item.Start.Text,
                        Message    = $"duplicated parameter {pp} at position {item.Start.StartIndex}, line {item.Start.Line}, col {item.Start.Column}"
                    });
                }
                _h.Add(pp.Item2, pp.Item1);
            }
            return(_h);
        }
 /// <summary>
 /// Visit a parse tree produced by <see cref="WorkflowParser.parameters"/>.
 /// <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 VisitParameters([NotNull] WorkflowParser.ParametersContext context)
 {
     return(VisitChildren(context));
 }
 /// <summary>
 /// parameters :
 ///     parameter(COMMA parameter)*
 ///     ;
 /// </summary>
 /// <param name="context"></param>
 /// <returns></returns>
 public override object VisitParameters([NotNull] WorkflowParser.ParametersContext context)
 {
     return(base.VisitParameters(context));
 }