本文整理汇总了C++中Converter::convertPTToAST方法的典型用法代码示例。如果您正苦于以下问题:C++ Converter::convertPTToAST方法的具体用法?C++ Converter::convertPTToAST怎么用?C++ Converter::convertPTToAST使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Converter
的用法示例。
在下文中一共展示了Converter::convertPTToAST方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: it_begin
DLVHEX_NAMESPACE_END
// Local Variables:
// mode: C++
// End:
#if 0
void
HexParserDriver::parse(std::istream& is,
Program& program,
AtomSet& EDB) throw (SyntaxError)
{
// put whole input from stream into a string
// (an alternative would be the boost::spirit::multi_pass iterator
// but it was not possible to setup/simply did not compile)
std::ostringstream buf;
buf << is.rdbuf();
std::string input = buf.str();
HexGrammar grammar;
typedef HexGrammarPTToASTConverter Converter;
Converter::iterator_t it_begin(input.c_str(), input.c_str()+input.size());
Converter::iterator_t it_end;
// parse ast
boost::spirit::tree_parse_info<Converter::iterator_t, Converter::factory_t> info =
boost::spirit::pt_parse<Converter::factory_t>(
it_begin, it_end, grammar, boost::spirit::space_p);
// successful parse?
if( !info.full )
throw SyntaxError("Could not parse complete input!",
info.stop.get_position().line, this->source);
// if this is not ok, there is some bug and the following code will be incomplete
assert(info.trees.size() == 1);
// create dlvhex AST from spirit parser tree
Converter converter;
converter.convertPTToAST(*info.trees.begin(), program, EDB);
}