本文整理汇总了C++中FunctionDefinition::getNumArguments方法的典型用法代码示例。如果您正苦于以下问题:C++ FunctionDefinition::getNumArguments方法的具体用法?C++ FunctionDefinition::getNumArguments怎么用?C++ FunctionDefinition::getNumArguments使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FunctionDefinition
的用法示例。
在下文中一共展示了FunctionDefinition::getNumArguments方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MMOFunction
void
MMOModel::add (const FunctionDefinition &f)
{
string fname = f.getId ();
MMOFunction *func = new MMOFunction (fname);
int na = f.getNumArguments ();
MMOMath d = MMOMath (_replace, &_functions, _prefix);
list<string> funcArgs;
for (int i = 0; i < na; i++)
{
d.parseEquation (f.getArgument (i));
string argExp = d.getExp ();
MMODecl *adec = new MMODecl (argExp, function_input);
func->add (adec);
funcArgs.push_back (argExp);
}
string var = MMOUtils::getInstance ()->getVar ();
d.parseEquation (f.getBody ());
_addAlgebraicReplacement (d);
MMODecl *adec = new MMODecl (var, d.getExp (), function_definition);
func->add (adec);
_functions[fname] = pair<list<string>, ASTNode*> (
funcArgs, new ASTNode (*f.getBody ()));
_add (func, external_functions);
}
示例2: logUndefined
/**
* Checks that all variables referenced in FunctionDefinition bodies are
* bound variables (function arguments).
*/
void
FunctionDefinitionVars::check_ (const Model& m, const FunctionDefinition& fd)
{
if ( fd.getLevel() == 1 ) return;
if ( !fd.isSetMath() ) return;
if ( fd.getBody() == NULL ) return;
if ( fd.getNumArguments() == 0 ) return;
List* variables = fd.getBody()->getListOfNodes( ASTNode_isName );
for (unsigned int n = 0; n < variables->getSize(); ++n)
{
ASTNode* node = static_cast<ASTNode*>( variables->get(n) );
string name = node->getName() ? node->getName() : "";
if ( fd.getArgument(name) == NULL )
{
/* if this is the csymbol time - technically it is allowed
* in L2v1 and L2v2
*/
if (node->getType() == AST_NAME_TIME)
{
if (fd.getLevel() > 2
|| (fd.getLevel() == 2 && fd.getVersion() > 2))
{
logUndefined(fd, name);
}
}
else
{
logUndefined(fd, name);
}
}
}
delete variables;
}