本文整理汇总了C++中ParameterPtr::setDefaultValue方法的典型用法代码示例。如果您正苦于以下问题:C++ ParameterPtr::setDefaultValue方法的具体用法?C++ ParameterPtr::setDefaultValue怎么用?C++ ParameterPtr::setDefaultValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParameterPtr
的用法示例。
在下文中一共展示了ParameterPtr::setDefaultValue方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parseParameterClause
/*
parameter-clauses → parameter-clause parameter-clauses opt
parameter-clause → () | (parameter-list...opt)
parameter-list → parameter | parameter,parameter-list
parameter → inout opt let opt#opt parameter-name local-parameter-name opt type-annotation default-argument-clause opt
parameter → inout opt var #opt parameter-name local-parameter-name opt type-annotation default-argument-clause opt
parameter → attributes opt type
parameter-name → identifier | _
local-parameter-name → identifier | _
default-argument-clause → =expression
*/
ParametersPtr Parser::parseParameterClause()
{
Token token;
expect(L"(", token);
ParametersPtr ret = nodeFactory->createParameters(token.state);
if(match(L")"))
return ret;
do
{
bool inout = match(Keyword::Inout);
Parameter::Accessibility accessibility = Parameter::None;
expect_next(token);
if(token.type == TokenType::Identifier)
{
if(token.identifier.keyword == Keyword::Var)
{
expect_next(token);
accessibility = Parameter::Variable;
}
else if(token.identifier.keyword == Keyword::Let)
{
expect_next(token);
accessibility = Parameter::Constant;
}
}
bool shorthandExternalName = false;
if(token == L"#")
{
shorthandExternalName = true;
expect_next(token);
}
tassert(token, token.type = TokenType::Identifier, Errors::E_EXPECT_IDENTIFIER_1, token.token);
std::wstring name = token.token;
std::wstring localName;
if(match_identifier(token))
{
localName = token.token;
}
else
{
localName = name;
name.clear();
}
ParameterPtr param = nodeFactory->createParameter(token.state);
expect(L":");
Attributes attrs;
parseAttributes(attrs);
TypeNodePtr type = parseType();
ExpressionPtr def = NULL;
if(match(L"="))
{
peek(token);
def = parseExpression();
tassert(token, def != NULL, Errors::E_EXPECT_EXPRESSION_1, token.token);
}
param->setInout(inout);
param->setAccessibility(accessibility);
param->setExternalName(name);
param->setLocalName(localName);
param->setShorthandExternalName(shorthandExternalName);
param->setTypeAttributes(attrs);
param->setDeclaredType(type);
param->setDefaultValue(def);
ret->addParameter(param);
}while(match(L","));
bool variadicParameters = match(L"...");
ret->setVariadicParameters(variadicParameters);
expect(L")");
return ret;
}