public void gen_cpp_TestRegex2cpp()
{
Regex Regex9 = new Regex(@"^(?i:www\.bing\.com)$", RegexOptions.Compiled | (RegexOptions.Singleline));
Regex Regex10 = new Regex(@"^(?i:SERP|Web|Auth|FacebookConnect)$", RegexOptions.Compiled | (RegexOptions.Singleline));
Regex Regex11 = new Regex(@"^(?i:\[])$", RegexOptions.Compiled | (RegexOptions.Singleline));
Regex Regex12 = new Regex(@"^(?i:\s*)$", RegexOptions.Compiled | (RegexOptions.Singleline));
Regex Regex13 = new Regex(@"^(?i:0AB26296E0B262B222FB6A89E1106324)$", RegexOptions.Compiled | (RegexOptions.Singleline));
Regex Regex14 = new Regex(@"^(?i:Bing\.com)$", RegexOptions.Compiled | (RegexOptions.Singleline));
Regex Regex15 = new Regex(@"^(?i:beta.*)$", RegexOptions.Compiled | (RegexOptions.Singleline));
Regex Regex16 = new Regex(@"^(?i:osjsonrankedct|osjsonranked)$", RegexOptions.Compiled | (RegexOptions.Singleline));
Regex EvilRegex = new Regex(@"^(([a-z])+.)+[A-Z]([a-z])+$", RegexOptions.Compiled | (RegexOptions.Singleline));
Regex abplus = new Regex(@"^(ab)+$", RegexOptions.Compiled | (RegexOptions.Singleline));
Regex margus = new Regex(@"^(?i:margus)Veanes$");
Regex wdplusASCII = new Regex(@"^([\w-[\x80-\uFFFF]][\d-[\x80-\uFFFF]])+$");
Regex wdplus = new Regex(@"^(\w\d\s)+$");
//var regexes = new Regex[] {Regex9, Regex10, Regex11, Regex12, Regex13, Regex14, Regex15, Regex16, EvilRegex, abplus, margus, wdplusASCII, wdplus};
var regexes = new Regex[] { wdplus };
TestCppCodeGen(regexes);
//TestRegex(Regex16);
//TestIgnoreCase();
////Test3();
//TestCodeGen();
//return;
//var z3 = new Z3Provider(BitWidth.BV7);
//string regex = "^(([a-z])+.)+[A-Z]([a-z])+$";
//var sfa = z3.CharSetProvider.Convert(regex, RegexOptions.Singleline).RemoveEpsilons(z3.CharSetProvider.MkOr);
//var sfaDet = sfa.Determinize(z3.CharSetProvider);
//var sfaMin = sfaDet.Minimize(z3.CharSetProvider);
//z3.CharSetProvider.ShowGraph(sfa, "sfa");
////z3.CharSetProvider.ShowGraph(sfaDet, "sfaDet");
//z3.CharSetProvider.ShowGraph(sfaMin, "sfaMin");
//var regexMin = z3.CharSetProvider.ConvertToRegex(sfaMin);
//var res3 = Regex.IsMatch("aaaaAaaaa", regex);
//var res3b = Regex.IsMatch("aaaaAaaaa", regexMin);
//string s = "a";
//int t1;
//int t2;
//for (int i = 0; i < 35; i++)
//{
// t1 = System.Environment.TickCount;
// var res4 = Regex.IsMatch(s, regex);
// t1 = System.Environment.TickCount - t1;
// t2 = System.Environment.TickCount;
// var res4b = Regex.IsMatch(s, regexMin);
// t2 = System.Environment.TickCount - t2;
// Console.WriteLine(s.Length + ", " + t1 + "," + t2);
// s += "a";
//}
//var sfaMinExpr = z3.ConvertAutomatonGuardsToExpr(sfaMin);
//var sfaExpr = new SFA<FuncDecl, Expr, Sort>(z3, z3.CharacterSort, sfaMinExpr);
//var st = ST<FuncDecl, Expr, Sort>.SFAtoST(sfaExpr);
//var stb = st.ToSTb();
//var csAcceptor = stb.Compile("RegexTransfomer", "SampleAcceptor", false, true);
//var res = csAcceptor.Apply("aaa");
//var res2 = csAcceptor.Apply("aaaAaaa");
////Console.WriteLine("res=" + (res == null ? false : true));
////Console.WriteLine("res2=" + (res2 == null ? false : true));
////Console.WriteLine("res3=" + (res3 == null ? false : true));
////Console.ReadKey();
}