// ---------------------------------------------------------------------------- // TextLanguage::addFunction // // Adds a function arg set to the language. If the function [name] exists, // [args] will be added to it as a new arg set, otherwise a new function will // be added // ---------------------------------------------------------------------------- void TextLanguage::addFunction( string name, string args, string desc, string deprecated, bool replace, string return_type) { // Split out context from name string context; if (name.Contains(".")) { string fname; context = name.BeforeFirst('.', &fname); name = fname; } // Check if the function exists auto func = function(name); // If it doesn't, create it if (!func) { functions_.push_back(TLFunction(name)); func = &functions_.back(); } // Clear the function if we're replacing it else if (replace) { if (!context.empty()) { func->clear(); } else { func->clearContexts(); } } // Add the context func->addContext(context, args, return_type, desc, deprecated); }
// ----------------------------------------------------------------------------- // Adds a function arg set to the language. If the function [name] exists, // [args] will be added to it as a new arg set, otherwise a new function will // be added // ----------------------------------------------------------------------------- void TextLanguage::addFunction( string_view name, string_view args, string_view desc, string_view deprecated, bool replace, string_view return_type) { // Split out context from name string context; string func_name{ name }; if (StrUtil::contains(name, '.')) { context = StrUtil::beforeFirst(name, '.'); func_name = StrUtil::afterFirst(name, '.'); } // Check if the function exists auto func = function(func_name); // If it doesn't, create it if (!func) { functions_.emplace_back(func_name); func = &functions_.back(); } // Clear the function if we're replacing it else if (replace) { if (!context.empty()) func->clear(); else func->clearContexts(); } // Add the context func->addContext(context, args, return_type, desc, deprecated); }