00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef PALUDIS_GUARD_PALUDIS_RANGE_REWRITER_HH
00021 #define PALUDIS_GUARD_PALUDIS_RANGE_REWRITER_HH 1
00022
00023 #include <paludis/spec_tree.hh>
00024 #include <paludis/util/private_implementation_pattern.hh>
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 namespace paludis
00037 {
00038
00039
00040
00041
00042
00043
00044
00045
00046 class PALUDIS_VISIBLE RangeRewriter :
00047 private PrivateImplementationPattern<RangeRewriter>
00048 {
00049 public:
00050
00051
00052
00053 RangeRewriter();
00054 virtual ~RangeRewriter();
00055
00056
00057
00058
00059
00060
00061
00062 std::tr1::shared_ptr<PackageDepSpec> spec() const;
00063
00064
00065
00066
00067 void visit(const DependencySpecTree::NodeType<AnyDepSpec>::Type & node);
00068 void visit(const DependencySpecTree::NodeType<AllDepSpec>::Type & node);
00069 void visit(const DependencySpecTree::NodeType<ConditionalDepSpec>::Type & node);
00070 void visit(const DependencySpecTree::NodeType<PackageDepSpec>::Type & node);
00071 void visit(const DependencySpecTree::NodeType<BlockDepSpec>::Type & node);
00072 void visit(const DependencySpecTree::NodeType<DependencyLabelsDepSpec>::Type & node);
00073 void visit(const DependencySpecTree::NodeType<NamedSetDepSpec>::Type & node);
00074
00075
00076 };
00077 }
00078
00079 #endif