OSDN Git Service

seq.hpp: とりあえず _seq_parse
authormyun2 <myun2@nwhite.info>
Tue, 12 Jun 2012 12:01:03 +0000 (21:01 +0900)
committermyun2 <myun2@nwhite.info>
Tue, 12 Jun 2012 12:01:03 +0000 (21:01 +0900)
roast/include/roast/lexical2/seq.hpp

index 7466bba..f20702a 100644 (file)
@@ -344,6 +344,34 @@ namespace roast
                                
                        return true*/;
                }
+               
+               //////////////////////////////////////////////////////////////////////
+               
+               template <int N> void get();            //      for gcc 4.4.5 compilable
+
+               //      parse
+               template <typename _Seq, typename InputIterator, typename _Param>
+               bool _seq_parse(_Seq& _this, InputIterator& it, _Param& param, const EmptyType& )
+               {
+                       //if ( generate(strm, doc.get<0>()) == false )  
+                       if ( _this.get<0>().parse(it, param) == false )
+                               return false;
+
+                       return true;
+               }
+
+               //      parse
+               template <typename _Seq, typename InputIterator, typename _Param, typename _NextType>
+               bool _seq_parse(_Seq& _this, InputIterator& it, _Param& param, const _NextType& )
+               {
+                       if ( _this.get<0>().parse(it, param) == false )
+                               return false;
+
+                       if ( _seq_parse(_this.next, it, param, typename _NextType::_Next()) == false )  
+                               return false;
+                               
+                       return true;
+               }
 
                //////////////////////////////////////////////////////////////