From c5db2b9db6c8c707c745c5920a4179e6e6b2772c Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 12 Feb 2016 13:40:27 +0200 Subject: Add support for generating vector scanner (--generate-vector-scanner) --- cli/runtime-header.cxx | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'cli/runtime-header.cxx') diff --git a/cli/runtime-header.cxx b/cli/runtime-header.cxx index 98a2e5d..50281fa 100644 --- a/cli/runtime-header.cxx +++ b/cli/runtime-header.cxx @@ -292,6 +292,37 @@ generate_runtime_header (context& ctx) << "bool erase_;" << "};"; + // vector_scanner + // + if (ctx.options.generate_vector_scanner ()) + { + os << "class vector_scanner: public scanner" + << "{" + << "public:" << endl + << "vector_scanner (const std::vector&, " << + "std::size_t start = 0);" + << endl + << "std::size_t" << endl + << "end () const;" + << endl + << "virtual bool" << endl + << "more ();" + << endl + << "virtual const char*" << endl + << "peek ();" + << endl + << "virtual const char*" << endl + << "next ();" + << endl + << "virtual void" << endl + << "skip ();" + << endl + << "private:" << endl + << "const std::vector& v_;" + << "std::size_t i_;" + << "};"; + } + // argv_file_scanner // if (ctx.options.generate_file_scanner ()) -- cgit v1.1