public MacroInfo(Symbol @namespace, LexicalMacroAttribute a, LexicalMacro macro, bool deprecateAllNames = false) : base(a.Syntax, a.Description, a.Names) { DeprecatedNames = a.DeprecatedNames; DeprecationMessage = a.DeprecationMessage; if (Names.Length == 0 && (a.DeprecatedNames == null || a.DeprecatedNames.Length == 0) && (a.Mode & (MacroMode.MatchEveryCall | MacroMode.MatchEveryLiteral | MacroMode.MatchEveryIdentifier)) == 0) { Names = new string[1] { macro.Method.Name } } ; if (deprecateAllNames) { DeprecatedNames = (DeprecatedNames ?? EmptyArray <string> .Value).Union(Names).ToArray(); } CheckParam.IsNotNull("macro", macro); Namespace = @namespace; Macro = macro; Mode = a.Mode; }
public MacroInfo(Symbol @namespace, LexicalMacroAttribute a, LexicalMacro macro) : base(a.Syntax, a.Description, a.Names != null && a.Names.Length > 0 ? a.Names : new[] { macro.Method.Name }) { CheckParam.IsNotNull("macro", macro); Namespace = @namespace; Macro = macro; Mode = a.Mode; }
public MacroInfo(Symbol @namespace, Symbol name, LexicalMacro macro, LexicalMacroAttribute info) { NamespaceSym = @namespace; Name = name; Macro = macro; Info = info; Mode = info.Mode; if ((Mode & MacroMode.PriorityMask) == 0) { Mode |= MacroMode.NormalPriority; } }
public new static object ActivateFixed(IokeObject self, IokeObject ctx, IokeObject message, object obj) { AliasMethod am = (AliasMethod)self.data; IokeObject realSelf = am.realSelf; switch (am.realMethod.type) { case IokeData.TYPE_DEFAULT_METHOD: return(DefaultMethod.ActivateFixed(realSelf, ctx, message, obj)); case IokeData.TYPE_DEFAULT_MACRO: return(DefaultMacro.ActivateFixed(realSelf, ctx, message, obj)); case IokeData.TYPE_DEFAULT_SYNTAX: return(DefaultSyntax.ActivateFixed(realSelf, ctx, message, obj)); case IokeData.TYPE_LEXICAL_MACRO: return(LexicalMacro.ActivateFixed(realSelf, ctx, message, obj)); case IokeData.TYPE_NATIVE_METHOD: return(NativeMethod.ActivateFixed(realSelf, ctx, message, obj)); case IokeData.TYPE_METHOD_PROTOTYPE: return(Method.ActivateFixed(realSelf, ctx, message, obj)); case IokeData.TYPE_LEXICAL_BLOCK: return(LexicalBlock.ActivateFixed(realSelf, ctx, message, obj)); case IokeData.TYPE_ALIAS_METHOD: return(AliasMethod.ActivateFixed(realSelf, ctx, message, obj)); case IokeData.TYPE_NONE: default: return(IokeData.ActivateFixed(realSelf, ctx, message, obj)); } }
public MacroInfo(Symbol @namespace, string name, LexicalMacro macro) : this(@namespace, new LexicalMacroAttribute("", "", name), macro) { }