aboutsummaryrefslogtreecommitdiff
path: root/src/regex/test_regex_iterate_api.c
diff options
context:
space:
mode:
authorMaximilian Szengel <gnunet@maxsz.de>2012-06-25 08:33:13 +0000
committerMaximilian Szengel <gnunet@maxsz.de>2012-06-25 08:33:13 +0000
commit6803579aeefc80a95cd2047901fc691fd03401a1 (patch)
tree8efdd648eeeae8bc76bd8f4a0bd0c62755a0260f /src/regex/test_regex_iterate_api.c
parentfebbf34313acf57b3a1c336fe0eb2fed80d7a1e0 (diff)
downloadgnunet-6803579aeefc80a95cd2047901fc691fd03401a1.tar.gz
gnunet-6803579aeefc80a95cd2047901fc691fd03401a1.zip
regex simplification wip
Diffstat (limited to 'src/regex/test_regex_iterate_api.c')
-rw-r--r--src/regex/test_regex_iterate_api.c48
1 files changed, 30 insertions, 18 deletions
diff --git a/src/regex/test_regex_iterate_api.c b/src/regex/test_regex_iterate_api.c
index a36419a95..e9843e180 100644
--- a/src/regex/test_regex_iterate_api.c
+++ b/src/regex/test_regex_iterate_api.c
@@ -34,7 +34,8 @@ key_iterator (void *cls, const struct GNUNET_HashCode *key, const char *proof,
34{ 34{
35 int i; 35 int i;
36 36
37 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Iterating...\n"); 37 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Iterating... (accepting: %i)\n",
38 accepting);
38 for (i = 0; i < num_edges; i++) 39 for (i = 0; i < num_edges; i++)
39 { 40 {
40 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Edge %i: %s\n", i, edges[i].label); 41 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Edge %i: %s\n", i, edges[i].label);
@@ -60,26 +61,37 @@ main (int argc, char *argv[])
60 struct GNUNET_REGEX_Automaton *dfa; 61 struct GNUNET_REGEX_Automaton *dfa;
61 62
62 error = 0; 63 error = 0;
63 regex = "ab(c|d)+c*(a(b|c)+d)+(bla)+"; 64 /* regex = "ab(c|d)+c*(a(b|c)+d)+(bla)+"; */
64 /*regex = "(bla)+"; */ 65 /* regex = "(bla)*"; */
65 /*regex = "b(lab)*la"; */ 66 /*regex = "b(lab)*la"; */
66 /*regex = "(bla)*"; */ 67 /* regex = "(ab)*"; */
67 /*regex = "ab(c|d)+c*(a(b|c)+d)+(bla)(bla)*"; */ 68 /*regex = "ab(c|d)+c*(a(b|c)+d)+(bla)(bla)*"; */
68 /*regex = "z(abc|def)?xyz"; */ 69 /*regex = "z(abc|def)?xyz"; */
69 /*regex = "1*0(0|1)*"; */ 70 /* regex = "1*0(0|1)*"; */
70 /*regex = "a+X*y+c|p|R|Z*K*y*R+w|Y*6+n+h*k*w+V*F|W*B*e*"; */ 71 /* regex = "a*b*"; */
71 /*regex = "abcd:(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)"; */ 72 /* regex = "a+X*y+c|p|R|Z*K*y*R+w|Y*6+n+h*k*w+V*F|W*B*e*"; */
72 /*regex = "abc(1|0)*def"; */ 73 /* regex = "abcd:(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1):(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)(0|1)"; */
73 /*regex = "ab|ac"; */ 74 /* regex = "abc(1|0)*def"; */
74 /*regex = "(ab)(ab)*"; */ 75 /* regex = "ab|ac"; */
75 /*regex = "ab|cd|ef|gh"; */ 76 /* regex = "(ab)(ab)*"; */
76 /*regex = "a|b|c|d|e|f|g"; */ 77 /* regex = "ab|cd|ef|gh"; */
77 /*regex = "(ab)|(ac)"; */ 78 /* regex = "a|b|c|d|e|f|g"; */
78 /*regex = "a(b|c)"; */ 79 /* regex = "(ab)|(ac)"; */
79 /*regex = "a*a"; */ 80 /* regex = "a(b|c)"; */
80 /*regex = "ab?(abcd)?"; */ 81 /* regex = "a*a"; */
81 /*regex = "(ab)+"; */ 82 /* regex = "ab?(abcd)?"; */
82 /*regex = "(abcsdfsdf)+"; */ 83 /* regex = "(ab)+"; */
84 /* regex = "(ab|cs|df|sdf)*"; */
85 /* regex = "(ab|cd)*"; */
86 regex = "(cd|ab)*";
87 regex = "(cd|ab)*";
88 /* regex = "(ab|c)+"; */
89 /* regex = "(a|bc)+"; */
90 /* regex = "(ab|c)(ab|c)*"; */
91 /* regex = "(a|bc)(a|bc)*"; */
92 /* regex = "(ac|b)*"; */
93 /* regex = "a|aa*a"; */
94
83 dfa = GNUNET_REGEX_construct_dfa (regex, strlen (regex)); 95 dfa = GNUNET_REGEX_construct_dfa (regex, strlen (regex));
84 GNUNET_REGEX_automaton_save_graph (dfa, "dfa.dot"); 96 GNUNET_REGEX_automaton_save_graph (dfa, "dfa.dot");
85 GNUNET_REGEX_iterate_all_edges (dfa, key_iterator, NULL); 97 GNUNET_REGEX_iterate_all_edges (dfa, key_iterator, NULL);