00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00012 #ifndef ZYPP_PARSER_TAGFILE_PATTERNTAGFILEPARSER_H 00013 #define ZYPP_PARSER_TAGFILE_PATTERNTAGFILEPARSER_H 00014 00015 #include <iosfwd> 00016 #include <set> 00017 #include <map> 00018 #include <list> 00019 00020 #include "zypp/parser/tagfile/TagFileParser.h" 00021 #include "zypp/parser/tagfile/ParseException.h" 00022 #include "zypp/Pattern.h" 00023 #include "zypp/source/susetags/SuseTagsPatternImpl.h" 00024 00025 #include "zypp/Pathname.h" 00026 00028 namespace zypp 00029 { 00030 00031 namespace source 00032 { 00033 00034 namespace susetags 00035 { 00036 00038 // 00039 // CLASS NAME : PatternTagFileParser 00040 // 00042 struct PatternTagFileParser : public zypp::parser::tagfile::TagFileParser 00043 { 00044 Pattern::Ptr result; 00045 detail::ResImplTraits<SuseTagsPatternImpl>::Ptr patImpl; 00046 00047 PatternTagFileParser(); 00048 virtual ~PatternTagFileParser() 00049 {} 00050 00051 void consume( const SingleTag &tag ); 00052 void consume( const MultiTag &tag ); 00053 void endParse(); 00054 }; 00056 00059 Pattern::Ptr parsePattern( Source_Ref source_r, const Pathname & file_r ); 00061 } // namespace source 00064 } // namespace susetags 00067 } // namespace zypp 00069 // 00070 #endif // ZYPP_PARSER_TAGFILE_PATTERNTAGFILEPPARSER_H