svnno****@sourc*****
svnno****@sourc*****
2009年 1月 29日 (木) 17:32:43 JST
Revision: 5 http://svn.sourceforge.jp/view?root=yamato&view=rev&rev=5 Author: whiteball Date: 2009-01-29 17:32:43 +0900 (Thu, 29 Jan 2009) Log Message: ----------- r3への追加 Modified Paths: -------------- trunk/yamato/ident_manager.h Modified: trunk/yamato/ident_manager.h =================================================================== --- trunk/yamato/ident_manager.h 2009-01-29 08:27:24 UTC (rev 4) +++ trunk/yamato/ident_manager.h 2009-01-29 08:32:43 UTC (rev 5) @@ -19,12 +19,23 @@ }; typedef boost::shared_ptr<tag_compare_res_t> compare_res_t; + typedef std::vector<PToken> IdentBlock; + typedef std::list<IdentBlock> TableElement; + struct tag_search_res_t : public tag_compare_res_t + { + void SetCmpRes(const compare_res_t& val) + { + this->cmp_res = val->cmp_res; + this->token_num = val->token_num; + this->itr = val->itr; + } + TableElement::iterator insert_itr; + }; + typedef boost::shared_ptr<tag_search_res_t> search_res_t; + class CIdentManager { private: - typedef std::vector<PToken> IdentBlock; - typedef std::list<IdentBlock> TableElement; - boost::scoped_array<boost::scoped_ptr<TableElement> > m_table; boost::shared_ptr<CIdentManager> m_parent; @@ -33,13 +44,13 @@ inline TableElement &GetList(size_t); CIdentManager(const CIdentManager&); public: - void RegisterIdentList(std::list<PToken>&); + void RegisterIdentList(std::list<PToken>&,bool is_force_dec = true); void RegisterIdent(std::list<PToken>&); void RegisterIdent(PToken); //void RegisterIdent(str_t); - compare_res_t SearchIdent(std::list<PToken>::iterator,std::list<PToken>::iterator); - compare_res_t SearchIdent(std::list<PToken>&); + search_res_t SearchIdent(std::list<PToken>::iterator,std::list<PToken>::iterator); + search_res_t SearchIdent(std::list<PToken>&); explicit CIdentManager(boost::shared_ptr<CIdentManager>); ~CIdentManager(void);