1 #ifndef _RE2C_IR_REGEXP_REGEXP_
2 #define _RE2C_IR_REGEXP_REGEXP_
27 vFreeList.insert (
this);
31 vFreeList.
erase (
this);
33 virtual void split (std::set<uint32_t> &) = 0;
37 virtual void display (std::ostream &)
const = 0;
43 RegExp *
doAlt (RegExp * e1, RegExp * e2);
44 RegExp *
mkAlt (RegExp * e1, RegExp * e2);
45 RegExp *
doCat (RegExp * e1, RegExp * e2);
46 RegExp *
repeat (RegExp * e, uint32_t n);
52 #endif // _RE2C_IR_REGEXP_REGEXP_
size_type erase(const key_type &key)
std::vector< uint32_t > charset_t
RegExp * doAlt(RegExp *e1, RegExp *e2)
RegExp * repeat_from(RegExp *e, uint32_t n)
RegExp * repeat_from_to(RegExp *e, uint32_t n, uint32_t m)
friend std::ostream & operator<<(std::ostream &o, const RegExp &re)
static free_list< RegExp * > vFreeList
virtual nfa_state_t * compile(nfa_t &nfa, nfa_state_t *n)=0
virtual void split(std::set< uint32_t > &)=0
virtual uint32_t fixedLength()
virtual uint32_t calc_size() const =0
virtual void display(std::ostream &) const =0
RegExp * repeat(RegExp *e, uint32_t n)
RegExp * doCat(RegExp *e1, RegExp *e2)
RegExp * mkAlt(RegExp *e1, RegExp *e2)