本文整理汇总了C++中Token::IsFormat方法的典型用法代码示例。如果您正苦于以下问题:C++ Token::IsFormat方法的具体用法?C++ Token::IsFormat怎么用?C++ Token::IsFormat使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Token
的用法示例。
在下文中一共展示了Token::IsFormat方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Build
DebugCommand* ExamineCommand::Build(std::vector<Token*> args) {
if (args.size() < 2) {
return new InvalidCommand(args, -1, "too few arguments");
}
Token* target = args[1];
if (!target->CanAddressMemory()) {
return new InvalidCommand(args, 1, "expects address");
}
FormatToken* format = NULL;
IntegerToken* count = NULL;
switch (args.size()) {
case 2: { // mem addr[.x64] [10]
format = new Format<uint64_t>("%016" PRIx64, 'x');
count = new IntegerToken(10);
break;
}
case 3: { // mem addr.format [10]
// mem addr[.x64] n
Token* second = args[2];
if (second->IsFormat()) {
format = FormatToken::Cast(second);
count = new IntegerToken(10);
break;
} else if (second->IsInteger()) {
format = new Format<uint64_t>("%016" PRIx64, 'x');
count = IntegerToken::Cast(second);
} else {
return new InvalidCommand(args, 2, "expects format or integer");
}
VIXL_UNREACHABLE();
break;
}
case 4: { // mem addr.format n
Token* second = args[2];
Token* third = args[3];
if (!second->IsFormat() || !third->IsInteger()) {
return new InvalidCommand(args, -1, "expects addr[.format] [n]");
}
format = FormatToken::Cast(second);
count = IntegerToken::Cast(third);
break;
}
default:
return new InvalidCommand(args, -1, "too many arguments");
}
return new ExamineCommand(args[0], target, format, count);
}