1 //http://www.boost.org/libs/libraries.htm
6 #include <zypp/base/Logger.h>
7 #include <zypp/base/Exception.h>
8 #include <zypp/base/PtrTypes.h>
9 #include <zypp/parser/tagfile/Tags.h>
11 ///////////////////////////////////////////////////////////////////
13 { /////////////////////////////////////////////////////////////////
14 ///////////////////////////////////////////////////////////////////
16 { /////////////////////////////////////////////////////////////////
17 ///////////////////////////////////////////////////////////////////
19 { /////////////////////////////////////////////////////////////////
21 void echoOn( std::ostream & str,
22 iterator_t first, const iterator_t last,
26 str << first.get_position() << last.get_position();
28 while ( first != last )
30 str << "<< " << std::endl;
33 void echo( iterator_t first, const iterator_t last, const char* s = "" )
35 echoOn( DBG, first, last, s );
37 void mecho( iterator_t first, const iterator_t last, const char* s = "" )
39 echoOn( MIL, first, last, s );
42 /////////////////////////////////////////////////////////////////
43 } // namespace tagfile
44 ///////////////////////////////////////////////////////////////////
45 /////////////////////////////////////////////////////////////////
47 ///////////////////////////////////////////////////////////////////
48 /////////////////////////////////////////////////////////////////
50 ///////////////////////////////////////////////////////////////////
51 ////////////////////////////////////////////////////////////////////////////
55 ////////////////////////////////////////////////////////////////////////////
60 using namespace zypp::parser::tagfile;
61 typedef scanner<iterator_t> scanner_t;
62 typedef rule<scanner_t> rule_t;
63 ////////////////////////////////////////////////////////////////////////////
67 ////////////////////////////////////////////////////////////////////////////
72 : _begin( time(NULL) )
74 USR << "START MEASURE..." << endl;
78 USR << "DURATION: " << (time(NULL)-_begin) << " sec." << endl;
81 ////////////////////////////////////////////////////////////////////////////
85 ////////////////////////////////////////////////////////////////////////////
86 int main( int argc, char* argv[] )
88 INT << "===[START]==========================================" << endl;
93 // Create a file iterator for this file
94 fiterator_t first(infile);
97 ERR << "Unable to open file!\n";
100 // Create an EOF iterator
101 fiterator_t last = first.make_end();
103 // Create position iterators
104 iterator_t begin( first, last, infile );
118 >> *(anychar_p - eol_p)
121 | error_report_p( "neither empty nor comment" )
127 shared_ptr<Measure> duration( new Measure );
128 parse_info<iterator_t> info
129 = parse( begin, end, file );
134 USR << "Parse succeeded!\n";
137 ERR << "Parse partial!\n";
138 ERR << " at pos " << info.length << endl;
142 ERR << "Parse failed!\n";
143 ERR << " at pos " << info.length << endl;
146 INT << "===[END]============================================" << endl;