public override object VisitUDefine(UHeaderParser.UDefineContext context) { if (_ignoreOfPragma) { return(null); } var name = context.uDefineName().GetText(); if (name.StartsWith("DECLARE_DYNAMIC_MULTICAST_DELEGATE")) { var ls = context.uMeta().uMetaParametrList(); _currentDelegate = Get(ls.uMetaParametr().uMetaParamKey().type(), n => new Delegate(n)); _currentDelegate.SourceFile = _currentFile; _currentDelegate.SourceLine = context.Start.Line; _currentDelegate.IsImplemented = true; _currentDelegate.IsTemplate = context.FoundChild <UHeaderParser.TemplateDefineContext>(); _currentDelegate.Description = _currentComment; _currentDelegateVariable = null; _currentUMeta = new Dictionary <string, string>(); if (ls.uMetaParametrList() != null) { VisitChildren(ls.uMetaParametrList()); } _currentDelegate = null; _currentUMeta = null; _currentComment = ""; } return(base.VisitUDefine(context)); }
/// <summary> /// Visit a parse tree produced by <see cref="UHeaderParser.uDefine"/>. /// <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 VisitUDefine([NotNull] UHeaderParser.UDefineContext context) { return(VisitChildren(context)); }