{
//////////////////////////////////////////////////////////////////////////////////
- // Null Document Class (for Not Used Document Only!!)
-
- template <typename>
- class null_document_
- {
- public:
- template <typename T>
- bool operator << (T){ return true; }
- };
- /*static*/ null_document_<int> null_document;
-
- //////////////////////////////////////////////////////////////////////////////////
-
- // Analyze Utility Functions.
-
- template <typename _Rule, typename _It, typename _Param>
- bool analyze(const _It& it, _Param& param)
+ template <typename Lexer, typename InputIterator, typename Param>
+ bool analyze(Lexer &lexer, InputIterator& it, Param& param = EmptyType())
{
- ::roast::lexical::rule::work_iterator<_Rule> r;
- return r.analyze(it, param);
+ return lexer.analyze(it, param);
}
- template <typename _Rule, typename _It, typename _Param>
- bool parse(const _It& it, _Param& param){ return analyze<_Rule>(it, param); }
-
//////////////////////////////////////////////////////////////////////////////////
- // Generate Utility Functions.
-
- template <typename _Rule, typename _Strm, typename _Document>
- bool generate(_Strm& strm, _Document& doc = null_document)
+ template <typename Lexer, typename OutputStream, typename Param>
+ void generate(const Lexer &lexer, OutputStream& os, Param& param = EmptyType())
{
- _Rule r;
- return r.generate(strm,doc);
+ lexer.generate(os, param);
}
- /////
//////////////////////////////////////////////////////////////////////////////////
}