/// <summary>
        /// Returns false if the function was unhandled
        /// </summary>
        /// <param name="n"></param>
        /// <returns></returns>
        public bool HandlePredefinedFunction(FunctionNode n, bool isBaseFunction)
        {
            string functionName = isBaseFunction ? n.functionName.Substring(1) : n.functionName;

            switch(functionName)
            {
                case "defsub":
                    List<Node> arguments = n.GetArguments(1);
                    userDefinedFunctionLookup.DefineUserFunction(VerifyType<AliasNode>(arguments[0]).aliasName);
                    return true;

                
            }

            return false;
        }