00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef PALUDIS_GUARD_PALUDIS_ELIKE_DEP_PARSER_FWD_HH
00021 #define PALUDIS_GUARD_PALUDIS_ELIKE_DEP_PARSER_FWD_HH 1
00022
00023 #include <paludis/util/attributes.hh>
00024 #include <paludis/util/map-fwd.hh>
00025 #include <paludis/name-fwd.hh>
00026 #include <tr1/functional>
00027 #include <tr1/memory>
00028
00029 namespace paludis
00030 {
00031 struct ELikeDepParserCallbacks;
00032
00033 typedef std::tr1::function<void (const std::string &)> ELikeDepParserStringFunction;
00034 typedef std::tr1::function<void (const std::string &, const std::string &)> ELikeDepParserArrowFunction;
00035 typedef std::tr1::function<void ()> ELikeDepParserAnyFunction;
00036 typedef std::tr1::function<void ()> ELikeDepParserAllFunction;
00037 typedef std::tr1::function<void (const std::string &)> ELikeDepParserUseFunction;
00038 typedef std::tr1::function<void (const std::string &)> ELikeDepParserLabelFunction;
00039 typedef std::tr1::function<void ()> ELikeDepParserPushFunction;
00040 typedef std::tr1::function<void ()> ELikeDepParserPopFunction;
00041 typedef std::tr1::function<void ()> ELikeDepParserShouldBeEmptyFunction;
00042 typedef std::tr1::function<void (const std::string &, const std::string::size_type &, const std::string &)> ELikeDepParserErrorFunction;
00043 typedef std::tr1::function<void ()> ELikeDepParserUseUnderAnyFunction;
00044 typedef std::tr1::function<void (const std::tr1::shared_ptr<const Map<std::string, std::string> > &)>
00045 ELikeDepParserAnnotationsFunction;
00046
00047 void parse_elike_dependencies(const std::string &, const ELikeDepParserCallbacks & callbacks) PALUDIS_VISIBLE;
00048 }
00049
00050 #endif