From 59182ddd13d5d9b47d3a70d37ad7161f09ec4f19 Mon Sep 17 00:00:00 2001 From: myun2 Date: Tue, 12 Jun 2012 21:01:03 +0900 Subject: [PATCH] =?utf8?q?seq.hpp:=20=E3=81=A8=E3=82=8A=E3=81=82=E3=81=88?= =?utf8?q?=E3=81=9A=20=5Fseq=5Fparse?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- roast/include/roast/lexical2/seq.hpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/roast/include/roast/lexical2/seq.hpp b/roast/include/roast/lexical2/seq.hpp index 7466bbac..f20702a0 100644 --- a/roast/include/roast/lexical2/seq.hpp +++ b/roast/include/roast/lexical2/seq.hpp @@ -344,6 +344,34 @@ namespace roast return true*/; } + + ////////////////////////////////////////////////////////////////////// + + template void get(); // for gcc 4.4.5 compilable + + // parse + template + 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 + 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; + } ////////////////////////////////////////////////////////////// -- 2.11.0