Boo.Lang.Compiler.Steps.ExpandMacros.ProcessMacro C# (CSharp) Метод

ProcessMacro() приватный Метод

private ProcessMacro ( Type actualType, MacroStatement node ) : void
actualType System.Type
node Boo.Lang.Compiler.Ast.MacroStatement
Результат void
        private void ProcessMacro(Type actualType, MacroStatement node)
        {
            // HACK: workaround for mono
            if (-1 == Array.IndexOf(actualType.GetInterfaces(), typeof(IAstMacro)))
            //			if (!typeof(IAstMacro).IsAssignableFrom(actualType))
            {
                ProcessingError(CompilerErrorFactory.InvalidMacro(node, actualType.FullName));
                return;
            }

            try
            {
                Statement replacement = ExpandMacro(actualType, node);
                if (null != node.Modifier)
                {
                    replacement = NormalizeStatementModifiers.CreateModifiedStatement(node.Modifier, replacement);
                }
                ReplaceCurrentNode(replacement);

                ++_expanded;
            }
            catch (Exception error)
            {
                ProcessingError(CompilerErrorFactory.MacroExpansionError(node, error));
            }
        }

Same methods

ExpandMacros::ProcessMacro ( IType macroType, MacroStatement node ) : void