summaryrefslogtreecommitdiff
path: root/src/theory/strings/regexp_operation.h
diff options
context:
space:
mode:
authorTianyi Liang <tianyi-liang@uiowa.edu>2014-04-28 16:29:27 -0500
committerTianyi Liang <tianyi-liang@uiowa.edu>2014-04-28 17:37:00 -0500
commit84a42a79fdb0fed414b705d854acf67115ebd02f (patch)
treec4f0c850438212a01e287b96d0e51478e5e8e02d /src/theory/strings/regexp_operation.h
parentc28d0a243dbfd4295f785a017890251bd2670ce8 (diff)
add strings-opt2 for regular splitting
Diffstat (limited to 'src/theory/strings/regexp_operation.h')
-rw-r--r--src/theory/strings/regexp_operation.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/theory/strings/regexp_operation.h b/src/theory/strings/regexp_operation.h
index 116868820..0513eeef4 100644
--- a/src/theory/strings/regexp_operation.h
+++ b/src/theory/strings/regexp_operation.h
@@ -39,9 +39,9 @@ class RegExpOpr {
private:
unsigned d_card;
- Node d_emptyString;
- Node d_true;
- Node d_false;
+ Node d_emptyString;
+ Node d_true;
+ Node d_false;
Node d_emptySingleton;
Node d_emptyRegexp;
Node d_zero;
@@ -62,6 +62,7 @@ private:
std::map< Node, std::pair< std::set<unsigned>, std::set<Node> > > d_cset_cache;
std::map< Node, std::pair< std::set<unsigned>, std::set<Node> > > d_fset_cache;
std::map< PairNodes, Node > d_inter_cache;
+ std::map< Node, std::vector< PairNodes > > d_split_cache;
//bool checkStarPlus( Node t );
void simplifyPRegExp( Node s, Node r, std::vector< Node > &new_nodes );
void simplifyNRegExp( Node s, Node r, std::vector< Node > &new_nodes );
@@ -80,13 +81,14 @@ public:
RegExpOpr();
bool checkConstRegExp( Node r );
- void simplify(Node t, std::vector< Node > &new_nodes, bool polarity);
+ void simplify(Node t, std::vector< Node > &new_nodes, bool polarity);
int delta( Node r, Node &exp );
int derivativeS( Node r, CVC4::String c, Node &retNode );
Node derivativeSingle( Node r, CVC4::String c );
bool guessLength( Node r, int &co );
Node intersect(Node r1, Node r2, bool &spflag);
Node complement(Node r, int &ret);
+ void splitRegExp(Node r, std::vector< PairNodes > &pset);
std::string mkString( Node r );
};
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback