OSDN Git Service

seq.hpp: generate()出来たかな
authormyun2 <myun2@nwhite.info>
Tue, 12 Jun 2012 10:24:03 +0000 (19:24 +0900)
committermyun2 <myun2@nwhite.info>
Tue, 12 Jun 2012 10:24:03 +0000 (19:24 +0900)
roast/include/roast/lexical2/fixed.hpp
roast/include/roast/lexical2/seq.hpp

index 7cb608e..73883cf 100644 (file)
@@ -35,8 +35,8 @@ namespace roast
 
                        //----
                        
-                       template <typename OutputStream, typename _Document>
-                       void generate(OutputStream& os, const _Document& doc) const
+                       template <typename OutputStream, typename _Param>
+                       void generate(OutputStream& os, const _Param& param) const
                        {
                                os << data;
                        }
@@ -69,8 +69,8 @@ namespace roast
 
                        //----
                        
-                       template <typename OutputStream, typename _Document>
-                       void generate(OutputStream& os, const _Document& doc) const
+                       template <typename OutputStream, typename _Param>
+                       void generate(OutputStream& os, const _Param& param) const
                        {
                                os.write(data, length);
                                
index a4f38e1..449f1a1 100644 (file)
@@ -260,8 +260,8 @@ namespace roast
                        
                        ///////////////////////////////////////////////////
 
-                       template <typename _It, typename _Param>
-                       bool parse(_It& it, _Param& param)
+                       template <typename InputIterator, typename _Param>
+                       bool parse(InputIterator& it, _Param& param)
                        {
                                T0 t0;
                                _It it_work = it;
@@ -276,9 +276,11 @@ namespace roast
                                it = it_work;
                                return true;
                        }
+
+                       ////////
                        
-                       template <typename _Strm, typename _Document>
-                       bool generate(_Strm& strm, _Document& doc) const
+                       template <typename OutputStream, typename _Param>
+                       void generate(OutputStream& os, const _Param& param) const
                        {
                                /*
                                T0 t0;
@@ -293,7 +295,7 @@ namespace roast
                                return true;
                                */
                                
-                               return _seq_generate(strm, doc, typename _Base::_Next());
+                               _seq_generate(*this, os, param, typename _Base::_Next());
                        }
                };
                
@@ -337,28 +339,28 @@ namespace roast
                template <int N> void get();            //      for gcc 4.4.5 compilable
 
                //      generate
-               template <typename _Strm, typename _NestType>
-               bool _seq_generate(_Strm& strm, _NestType& doc, const EmptyType& )
+               template <typename _Seq, typename OutputStream, typename _Param>
+               void _seq_generate(_Seq& _this, OutputStream& os, _Param& param, const EmptyType& )
                {
                        //if ( generate(strm, doc.get<0>()) == false )  
-                       if ( doc.get<0>().generate(strm, doc.get<0>()) == false )       
+                       /*if (*/ _this.get<0>().generate(os, param) /*== false )        
                                return false;
 
-                       return true;
+                       return true*/;
                }
 
                //      generate
-               template <typename _Strm, typename _NestType, typename _NextType>
-               bool _seq_generate(_Strm& strm, _NestType& doc, const _NextType& )
+               template <typename _Seq, typename OutputStream, typename _Param, typename _NextType>
+               void _seq_generate(_Seq& _this, OutputStream& os, _Param& param, const _NextType& )
                {
                        //if ( generate(strm, doc.get<0>()) == false )  
-                       if ( doc.get<0>().generate(strm, doc.get<0>()) == false )       
-                               return false;
+                       /*if (*/ _this.get<0>().generate(os, param) /*== false )        
+                               return false*/;
 
-                       if ( _seq_generate(strm, doc.next, typename _NextType::_Next()) == false )      
+                       /*if (*/ _seq_generate(_this, os, _this.next, typename _NextType::_Next())/* == false ) 
                                return false;
                                
-                       return true;
+                       return true*/;
                }
 
                //////////////////////////////////////////////////////////////