本文整理汇总了C++中parser::check_constant_next方法的典型用法代码示例。如果您正苦于以下问题:C++ parser::check_constant_next方法的具体用法?C++ parser::check_constant_next怎么用?C++ parser::check_constant_next使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类parser
的用法示例。
在下文中一共展示了parser::check_constant_next方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: opaque_hint_cmd
environment opaque_hint_cmd(parser & p) {
environment env = p.env();
bool found = false;
while (p.curr_is_token(g_lparen)) {
p.next();
bool hiding;
auto pos = p.pos();
if (p.curr_is_token_or_id(g_hiding))
hiding = true;
else if (p.curr_is_token_or_id(g_exposing))
hiding = false;
else
throw parser_error("invalid 'opaque_hint', 'hiding' or 'exposing' expected", pos);
p.next();
while (!p.curr_is_token(g_rparen)) {
if (p.curr_is_token(g_module)) {
found = true;
p.next();
env = set_hide_main_opaque(env, hiding);
} else {
name c = p.check_constant_next("invalid 'opaque_hint', constant expected");
found = true;
if (hiding)
env = hide_definition(env, c);
else
env = expose_definition(env, c);
}
}
p.next();
}
if (!found)
throw exception("invalid empty 'opaque_hint' command");
return env;
}