public override object VisitUMetaParametr(UHeaderParser.UMetaParametrContext context)
        {
            var key       = context.uMetaParamKey().GetText();
            var value     = context.uMetaParamValue()?.GetText();
            var paramList = context.uMetaParametrList();

            if (!_currentUMeta.ContainsKey(key))
            {
                if (_currentDelegate != null)
                {
                    ParceDelegateKey(context);
                }
                else
                {
                    _currentUMeta.Add(key, value != null ? value.Trim('"') : "");
                }
            }

            if (paramList != null)
            {
                VisitUMetaParametrList(paramList);
            }

            return(null);
        }
        private void ParceDelegateKey(UHeaderParser.UMetaParametrContext context)
        {
            if (_currentDelegate == null)
            {
                return;
            }

            if (_currentDelegateVariable == null)
            {
                _currentDelegateVariable = ParceType(context.FindFirst <UHeaderParser.TypeContext>());
            }
            else
            {
                var key = context.uMetaParamKey().GetText();
                _currentDelegateVariable.Name = key;

                _currentDelegate.Parametrs.Add(_currentDelegateVariable);
                _currentDelegateVariable = null;
            }
        }
 /// <summary>
 /// Visit a parse tree produced by <see cref="UHeaderParser.uMetaParametr"/>.
 /// <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 VisitUMetaParametr([NotNull] UHeaderParser.UMetaParametrContext context)
 {
     return(VisitChildren(context));
 }