range_rewriter.hh
Go to the documentation of this file.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/dep_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 public ConstVisitor<DependencySpecTree>,
00048 private PrivateImplementationPattern<RangeRewriter>
00049 {
00050 public:
00051
00052
00053
00054 RangeRewriter();
00055 virtual ~RangeRewriter();
00056
00057
00058
00059
00060
00061
00062
00063 std::tr1::shared_ptr<PackageDepSpec> spec() const;
00064
00065
00066
00067
00068 void visit_sequence(const AllDepSpec &,
00069 DependencySpecTree::ConstSequenceIterator,
00070 DependencySpecTree::ConstSequenceIterator);
00071
00072 void visit_sequence(const AnyDepSpec &,
00073 DependencySpecTree::ConstSequenceIterator,
00074 DependencySpecTree::ConstSequenceIterator);
00075
00076 void visit_sequence(const ConditionalDepSpec &,
00077 DependencySpecTree::ConstSequenceIterator,
00078 DependencySpecTree::ConstSequenceIterator);
00079
00080 void visit_leaf(const PackageDepSpec &);
00081
00082 void visit_leaf(const BlockDepSpec &);
00083
00084 void visit_leaf(const DependencyLabelsDepSpec &);
00085
00086 void visit_leaf(const NamedSetDepSpec &);
00087
00088
00089 };
00090 }
00091
00092 #endif