本文整理汇总了C++中ParseResult::status方法的典型用法代码示例。如果您正苦于以下问题:C++ ParseResult::status方法的具体用法?C++ ParseResult::status怎么用?C++ ParseResult::status使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ParseResult
的用法示例。
在下文中一共展示了ParseResult::status方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parse
ParseResult Pid::parse(const Line& line, Output& output, bool execute) {
auto iter = line.begin();
auto endIter = line.end();
ParseResult desc;
const auto parser = x3::with<ParseResult>(ref(desc))[command];
ast::PidCommand data;
const bool ok {x3::phrase_parse(iter, endIter, parser, x3::space, data)};
if (!ok) return desc;
const unsigned pid = data.pid ? boost::apply_visitor(PidVisitor{}, data.pid.get())
: getpid();
desc.status(Status::Ok);
if (execute) {
if (data.function) {
boost::apply_visitor(FunctionVisitor{pid, output}, data.function.get());
} else {
output << pid << "\n";
}
}
return desc;
}
示例2: parse
ParseResult BuiltIn::parse(const Line& line, Output& output, bool execute) {
auto matched = matches(line);
if (matched && execute){
_function(line, output);
}
ParseResult desc;
if (matched){
desc.status(Status::Ok);
desc.segments().emplace_back(Segment::Type::Builtin, line.begin(), line.end(), _help);
}
return desc;
}
示例3: handleExecuteCommand
ParseResult Shell::handleExecuteCommand(const LineBuffer& line){
_buffer += line.line();
const ParseResult executionResult {
_commands.parse(_buffer, _out, true)};
switch (executionResult.status()) {
case Status::Incomplete:
_buffer += '\n';
break;
default:
_buffer.clear();
break;
}
return executionResult;
}