Rubberduck.Parsing.Preprocessing.VBALibrary.CreateLibraryFunction C# (CSharp) Method

CreateLibraryFunction() public static method

public static CreateLibraryFunction ( string functionName, IExpression argument ) : IExpression
functionName string
argument IExpression
return IExpression
        public static IExpression CreateLibraryFunction(string functionName, IExpression argument)
        {
            Func<IExpression, IExpression> functionCreator;
            if (_libraryFunctions.TryGetValue(functionName.ToUpper(), out functionCreator))
            {
                return functionCreator(argument);
            }
            throw new InvalidOperationException("Unexpected library function encountered: " + functionName);
        }
    }

Usage Example

        private IExpression VisitLibraryFunction(VBAConditionalCompilationParser.CcExpressionContext context)
        {
            var intrinsicFunction = context.intrinsicFunction();
            var functionName      = ParserRuleContextHelper.GetText(intrinsicFunction.intrinsicFunctionName(), _stream);
            var argument          = Visit(intrinsicFunction.ccExpression());

            return(VBALibrary.CreateLibraryFunction(functionName, argument));
        }