本文整理汇总了C++中Tokens::reserve方法的典型用法代码示例。如果您正苦于以下问题:C++ Tokens::reserve方法的具体用法?C++ Tokens::reserve怎么用?C++ Tokens::reserve使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Tokens
的用法示例。
在下文中一共展示了Tokens::reserve方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parse
Tokens Parser::parse(){
boost::smatch matches;
boost::regex re;
//re.assign("(?:\\n\\s*)?\\{\\.(!)?([^\\}\\s]*)(([^\\}\"\']([\"\'].*?[\"\'])?)*)\\}?",boost::regex_constants::icase);
re.assign("(?:\\n\\s*)?\\{\\.(!)?([^\\}\\s]*)(.*?)(?<!\\\\)\\}",boost::regex_constants::icase);
string leftovers = str;
string::const_iterator begin,end;
begin = str.begin();
end = str.end();
Tokens result;
result.reserve(50);
while(boost::regex_search(begin,end,matches,re)){
string comm(matches[1].str());
string func(matches[2].str());
string parm(matches[3].str());
string text(matches.prefix().str());
if(text!=""){
Token temp;
temp.func = "ECHO";
temp.param = text;
result.push_back(temp);
}
if(comm==""){
Token temp;
temp.func = func;
temp.param = parm;
result.push_back(temp);
}
begin = matches.suffix().first;
leftovers = matches.suffix().str();
}
if(leftovers!=""){
Token temp;
temp.func = "ECHO";
temp.param = leftovers;
result.push_back(temp);
}
return result;
}