本文整理汇总了C++中TokenizeContext::withinRange方法的典型用法代码示例。如果您正苦于以下问题:C++ TokenizeContext::withinRange方法的具体用法?C++ TokenizeContext::withinRange怎么用?C++ TokenizeContext::withinRange使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TokenizeContext
的用法示例。
在下文中一共展示了TokenizeContext::withinRange方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: consume_multiline_comment
void consume_multiline_comment(TokenizeContext& context)
{
int lookahead = 0;
// Keep track of the current depth, for nested blocks.
int depth = 0;
while (context.withinRange(lookahead)) {
if (context.next(lookahead) == '{' && context.next(lookahead + 1) == '-') {
// Found a comment opener, increase depth. Also advance lookahead so that
// we don't get confused by this: {-}
lookahead += 2;
depth++;
continue;
}
if (context.next(lookahead) == '-' && context.next(lookahead + 1) == '}') {
// Found a comment ender.
depth--;
lookahead += 2;
if (depth == 0)
break;
continue;
}
lookahead++;
}
context.consume(tok_Comment, lookahead);
}
示例2: consume_string_literal
void consume_string_literal(TokenizeContext &context)
{
int lookahead = 0;
// Consume starting quote, this can be ' or "
char quote_type = context.next();
lookahead++;
bool escapedNext = false;
while (context.withinRange(lookahead)) {
char c = context.next(lookahead);
if (c == quote_type && !escapedNext)
break;
if (c == '\\' && !escapedNext)
escapedNext = true;
else
escapedNext = false;
lookahead++;
}
// consume ending quote
lookahead++;
context.consume(tok_String, lookahead);
}
示例3: consume_comment
void consume_comment(TokenizeContext& context)
{
int lookahead = 0;
while (context.withinRange(lookahead) && !is_newline(context.next(lookahead)))
lookahead++;
context.consume(tok_Comment, lookahead);
}
示例4: consume_triple_quoted_string_literal
void consume_triple_quoted_string_literal(TokenizeContext &context)
{
int lookahead = 0;
// Consume initial <<<
lookahead += 3;
while (context.withinRange(lookahead) &&
!(context.next(lookahead) == '>'
&& context.next(lookahead + 1) == '>'
&& context.next(lookahead + 2) == '>'))
lookahead++;
// Consume closing >>>
lookahead += 3;
context.consume(tok_String, lookahead);
}