nicer loop structure
[oweals/gnunet.git] / src / regex / regex_test_lib.h
index 107c2ffceb21053434f121d7eec3c676da9b211e..226a0fbb634cc0fb2e1c42145209a8c522e02861 100644 (file)
@@ -1,21 +1,21 @@
 /*
  *  This file is part of GNUnet
- *  (C) 2012 Christian Grothoff (and other contributing authors)
- * 
- *  GNUnet is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published
- *  by the Free Software Foundation; either version 3, or (at your
- *  option) any later version.
- * 
+ *  Copyright (C) 2012 GNUnet e.V.
+ *
+ *  GNUnet is free software: you can redistribute it and/or modify it
+ *  under the terms of the GNU Affero General Public License as published
+ *  by the Free Software Foundation, either version 3 of the License,
+ *  or (at your option) any later version.
+ *
  *  GNUnet is distributed in the hope that it will be useful, but
  *  WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  General Public License for more details.
+ *  Affero General Public License for more details.
  * 
- *  You should have received a copy of the GNU General Public License
- *  along with GNUnet; see the file COPYING.  If not, write to the
- *  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- *  Boston, MA 02111-1307, USA.
+ *  You should have received a copy of the GNU Affero General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+     SPDX-License-Identifier: AGPL3.0-or-later
  */
 /**
  * @file src/regex/regex_test_lib.h
@@ -25,8 +25,8 @@
  * @author Bertlomiej Polot
  */
 
-#ifndef REGEX_ITERNAL_TEST_LIB_H
-#define REGEX_ITERNAL_TEST_LIB_H
+#ifndef REGEX_INTERNAL_TEST_LIB_H
+#define REGEX_INTERNAL_TEST_LIB_H
 
 #include "regex_internal_lib.h"
 
@@ -38,28 +38,36 @@ extern "C"
 #endif
 #endif
 
+
 /**
  * Combine an array of regexes into a single prefix-shared regex.
+ * Returns a prefix-combine regex that matches the same strings as
+ * any of the original regexes.
+ *
+ * WARNING: only useful for reading specific regexes for specific applications,
+ *          namely the gnunet-regex-profiler / gnunet-regex-daemon.
+ *          This function DOES NOT support arbitrary regex combining.
  *
  * @param regexes A NULL-terminated array of regexes.
+ * @param alphabet_size Size of the alphabet the regex uses.
  *
  * @return A string with a single regex that matches any of the original regexes
  */
 char *
-REGEX_ITERNAL_combine(char * const regexes[]);
+REGEX_TEST_combine (char * const regexes[], unsigned int alphabet_size);
 
 
 /**
  * Read a set of regexes from a file, one per line and return them in an array
- * suitable for REGEX_ITERNAL_combine.
- * The array must be free'd using REGEX_ITERNAL_free_from_file.
+ * suitable for REGEX_TEST_combine.
+ * The array must be free'd using REGEX_TEST_free_from_file.
  *
  * @param filename Name of the file containing the regexes.
  *
  * @return A newly allocated, NULL terminated array of regexes.
  */
 char **
-REGEX_ITERNAL_read_from_file (const char *filename);
+REGEX_TEST_read_from_file (const char *filename);
 
 
 /**
@@ -68,7 +76,7 @@ REGEX_ITERNAL_read_from_file (const char *filename);
  * @param regexes NULL-terminated array of regexes.
  */
 void
-REGEX_ITERNAL_free_from_file (char **regexes);
+REGEX_TEST_free_from_file (char **regexes);
 
 
 /**
@@ -85,7 +93,7 @@ REGEX_ITERNAL_free_from_file (char **regexes);
  *         needs to be freed, otherwise.
  */
 char *
-REGEX_ITERNAL_generate_random_regex (size_t rx_length, char *matching_str);
+REGEX_TEST_generate_random_regex (size_t rx_length, char *matching_str);
 
 
 /**
@@ -98,30 +106,30 @@ REGEX_ITERNAL_generate_random_regex (size_t rx_length, char *matching_str);
  * @return random string that needs to be freed.
  */
 char *
-REGEX_ITERNAL_generate_random_string (size_t max_len);
+REGEX_TEST_generate_random_string (size_t max_len);
 
 
 /**
  * Options for graph creation function
- * REGEX_ITERNAL_automaton_save_graph.
+ * REGEX_TEST_automaton_save_graph.
  */
-enum REGEX_ITERNAL_GraphSavingOptions
+enum REGEX_TEST_GraphSavingOptions
 {
   /**
    * Default. Do nothing special.
    */
-  REGEX_ITERNAL_GRAPH_DEFAULT = 0,
+  REGEX_TEST_GRAPH_DEFAULT = 0,
 
   /**
    * The generated graph will include extra information such as the NFA states
    * that were used to generate the DFA state.
    */
-  REGEX_ITERNAL_GRAPH_VERBOSE = 1,
+  REGEX_TEST_GRAPH_VERBOSE = 1,
 
   /**
    * Enable graph coloring. Will color each SCC in a different color.
    */
-  REGEX_ITERNAL_GRAPH_COLORING = 2
+  REGEX_TEST_GRAPH_COLORING = 2
 };
 
 
@@ -134,9 +142,9 @@ enum REGEX_ITERNAL_GraphSavingOptions
  *                mode
  */
 void
-REGEX_ITERNAL_automaton_save_graph (struct REGEX_ITERNAL_Automaton *a,
+REGEX_TEST_automaton_save_graph (struct REGEX_INTERNAL_Automaton *a,
                                    const char *filename,
-                                   enum REGEX_ITERNAL_GraphSavingOptions options);
+                                   enum REGEX_TEST_GraphSavingOptions options);