12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- // this must occur after all of the includes and before any code appears
- // suppress warnings about dependent classes not being exported from the dll
- ///////////////////////////////////////////////////////////////////////////////
- namespace boost {
- namespace wave {
- namespace cpplexer {
- ///////////////////////////////////////////////////////////////////////////////
- //
- // The lex_input_interface decouples the lex_iterator_shim from the actual
- // lexer. This is done to allow compile time reduction.
- // Thanks to JCAB for having this idea.
- //
- ///////////////////////////////////////////////////////////////////////////////
- template <typename TokenT>
- struct lex_input_interface
- {
- typedef typename TokenT::position_type position_type;
- lex_input_interface() {}
- virtual ~lex_input_interface() {}
- virtual TokenT& get(TokenT&) = 0;
- virtual void set_position(position_type const &pos) = 0;
- virtual bool has_include_guards(std::string& guard_name) const = 0;
- };
- ///////////////////////////////////////////////////////////////////////////////
- } // namespace cpplexer
- } // namespace wave
- } // namespace boost
- // the suffix header occurs after all of the code
|