22 #ifndef SPOT_LTLAST_BUNOP_HH
23 # define SPOT_LTLAST_BUNOP_HH
42 static const unsigned unbounded = -1U;
59 static const formula* instance(type op,
62 unsigned max = unbounded);
75 unsigned max = unbounded);
85 unsigned max = unbounded);
87 virtual void accept(
visitor& v)
const;
100 std::string format()
const;
105 const char* op_name()
const;
108 virtual std::string
dump()
const;
111 static unsigned instance_count();
114 static std::ostream& dump_instances(std::ostream& os);
129 typedef std::pair<unsigned, unsigned> pairu;
130 typedef std::pair<type, const formula*> pairo;
131 typedef std::pair<pairo, pairu> pair;
132 typedef std::map<pair, const bunop*> map;
133 static map instances;
135 bunop(type op,
const formula* child,
unsigned min,
unsigned max);
143 static const formula* one_star_;
154 if (f->
kind() != formula::BUnOp)
156 return static_cast<const bunop*
>(f);
165 is_bunop(
const formula* f, bunop::type op)
167 if (
const bunop* bo = is_bunop(f))
178 is_Star(
const formula* f)
180 return is_bunop(f, bunop::Star);
188 is_KleenStar(
const formula* f)
190 if (
const bunop* b = is_Star(f))
191 if (b->min() == 0 && b->max() == bunop::unbounded)
198 #endif // SPOT_LTLAST_BUNOP_HH