本文整理汇总了C++中string_buffer::reset方法的典型用法代码示例。如果您正苦于以下问题:C++ string_buffer::reset方法的具体用法?C++ string_buffer::reset怎么用?C++ string_buffer::reset使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类string_buffer
的用法示例。
在下文中一共展示了string_buffer::reset方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: lookahead_newline
bool lookahead_newline() {
while (m_curr_char == ' ') {
save_and_next();
}
if (m_curr_char == '\n') {
next();
m_line++;
m_buffer.reset();
return true;
}
if (m_curr_char == '#') {
m_buffer.reset();
m_prev_char = 0;
read_comment();
return true;
}
return false;
}
示例2: next_token
dtoken next_token() {
for(;;) {
if (eos()) {
return TK_EOS;
}
m_buffer.reset();
switch (m_curr_char) {
case '#': // comment
read_comment();
break;
case '\n':
next();
m_line++;
return TK_NEWLINE;
case '\\':
// here we ignore a newline if it is preceded by a backslash.
// We need to take care, since anywhere else backshlash is used
// as a regular character
next();
save_char('\\');
if (lookahead_newline()) {
break;
}
return read_id();
case '(':
m_tok_pos = m_pos;
next();
return TK_LP;
case ')':
m_tok_pos = m_pos;
next();
return TK_RP;
case ',':
m_tok_pos = m_pos;
next();
return TK_COMMA;
case '=':
m_tok_pos = m_pos;
next();
return TK_EQ;
case '!':
m_tok_pos = m_pos;
next();
if(m_curr_char == '=') {
next();
return TK_NEQ;
}
return TK_NEG;
case ':':
m_tok_pos = m_pos;
next();
if (m_curr_char == '-') {
next();
return TK_LEFT_ARROW;
}
return TK_COLON;
case '\"':
return read_string();
case '|':
next();
return read_bid();
default:
if (iswspace(m_curr_char)) {
next();
break;
}
else if (iswdigit(m_curr_char)) {
m_tok_pos = m_pos;
save_and_next();
return read_num();
}
else {
char old = m_curr_char;
m_tok_pos = m_pos;
save_and_next();
if (old == '-' && iswdigit(m_curr_char)) {
return read_num();
}
else {
return read_id();
}
}
}
}
}