Moved patmatch() to yosys.cc
authorClifford Wolf <clifford@clifford.at>
Fri, 10 Oct 2014 16:19:00 +0000 (18:19 +0200)
committerClifford Wolf <clifford@clifford.at>
Fri, 10 Oct 2014 16:20:17 +0000 (18:20 +0200)
kernel/patmatch.h [deleted file]
kernel/yosys.cc
kernel/yosys.h
passes/cmds/cover.cc
passes/cmds/select.cc
passes/hierarchy/hierarchy.cc

diff --git a/kernel/patmatch.h b/kernel/patmatch.h
deleted file mode 100644 (file)
index 611c8d8..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- *  yosys -- Yosys Open SYnthesis Suite
- *
- *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at>
- *  
- *  Permission to use, copy, modify, and/or distribute this software for any
- *  purpose with or without fee is hereby granted, provided that the above
- *  copyright notice and this permission notice appear in all copies.
- *  
- *  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- *  WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- *  MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- *  ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- *  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- *  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- *  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- */
-
-#ifndef PATMATCH_H
-#define PATMATCH_H
-
-#include "kernel/yosys.h"
-
-YOSYS_NAMESPACE_BEGIN
-
-// this is very similar to fnmatch(). the exact rules used by this
-// function are:
-//
-//    ?        matches any character except
-//    *        matches any sequence of characters
-//    [...]    matches any of the characters in the list
-//    [!..]    matches any of the characters not in the list
-//
-// a backslash may be used to escape the next characters in the
-// pattern. each special character can also simply match itself.
-//
-static bool patmatch(const char *pattern, const char *string)
-{
-       if (*pattern == 0)
-               return *string == 0;
-
-       if (*pattern == '\\') {
-               if (pattern[1] == string[0] && patmatch(pattern+2, string+1))
-                       return true;
-       }
-
-       if (*pattern == '?') {
-               if (*string == 0)
-                       return false;
-               return patmatch(pattern+1, string+1);
-       }
-
-       if (*pattern == '*') {
-               while (*string) {
-                       if (patmatch(pattern+1, string++))
-                               return true;
-               }
-               return pattern[1] == 0;
-       }
-
-       if (*pattern == '[') {
-               bool found_match = false;
-               bool inverted_list = pattern[1] == '!';
-               const char *p = pattern + (inverted_list ? 1 : 0);
-
-               while (*++p) {
-                       if (*p == ']') {
-                               if (found_match != inverted_list && patmatch(p+1, string+1))
-                                       return true;
-                               break;
-                       }
-
-                       if (*p == '\\') {
-                               if (*++p == *string)
-                                       found_match = true;
-                       } else
-                       if (*p == *string)
-                               found_match = true;
-               }
-       }
-
-       if (*pattern == *string)
-               return patmatch(pattern+1, string+1);
-
-       return false;
-}
-
-YOSYS_NAMESPACE_END
-
-#endif
index 971da78abb85bb515baa3c5b54e585774e85c6c2..d728329e3350385643258bab3f59713036cd00c3 100644 (file)
@@ -66,6 +66,68 @@ std::string vstringf(const char *fmt, va_list ap)
        return string;
 }
 
+// this is very similar to fnmatch(). the exact rules used by this
+// function are:
+//
+//    ?        matches any character except
+//    *        matches any sequence of characters
+//    [...]    matches any of the characters in the list
+//    [!..]    matches any of the characters not in the list
+//
+// a backslash may be used to escape the next characters in the
+// pattern. each special character can also simply match itself.
+//
+static bool patmatch(const char *pattern, const char *string)
+{
+       if (*pattern == 0)
+               return *string == 0;
+
+       if (*pattern == '\\') {
+               if (pattern[1] == string[0] && patmatch(pattern+2, string+1))
+                       return true;
+       }
+
+       if (*pattern == '?') {
+               if (*string == 0)
+                       return false;
+               return patmatch(pattern+1, string+1);
+       }
+
+       if (*pattern == '*') {
+               while (*string) {
+                       if (patmatch(pattern+1, string++))
+                               return true;
+               }
+               return pattern[1] == 0;
+       }
+
+       if (*pattern == '[') {
+               bool found_match = false;
+               bool inverted_list = pattern[1] == '!';
+               const char *p = pattern + (inverted_list ? 1 : 0);
+
+               while (*++p) {
+                       if (*p == ']') {
+                               if (found_match != inverted_list && patmatch(p+1, string+1))
+                                       return true;
+                               break;
+                       }
+
+                       if (*p == '\\') {
+                               if (*++p == *string)
+                                       found_match = true;
+                       } else
+                       if (*p == *string)
+                               found_match = true;
+               }
+       }
+
+       if (*pattern == *string)
+               return patmatch(pattern+1, string+1);
+
+       return false;
+}
+
 int GetSize(RTLIL::Wire *wire)
 {
        return wire->width;
index d3f8856449699ea86ba08d6d9f0ce109de84fd16..a796dd09fe3c00f85881d737b584518be20aea92 100644 (file)
@@ -84,6 +84,9 @@ namespace RTLIL {
 
 std::string stringf(const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
 std::string vstringf(const char *fmt, va_list ap);
+
+bool patmatch(const char *pattern, const char *string);
+
 template<typename T> int GetSize(const T &obj) { return obj.size(); }
 int GetSize(RTLIL::Wire *wire);
 
index 64f7acf50fd2d54bb9a4697495282bb2dec6b7d4..b8792a05f185df89e63155e64a6df68bcfcec912 100644 (file)
@@ -19,9 +19,7 @@
 
 #include <sys/types.h>
 #include <unistd.h>
-
 #include "kernel/yosys.h"
-#include "kernel/patmatch.h"
 
 USING_YOSYS_NAMESPACE
 PRIVATE_NAMESPACE_BEGIN
index 893f897d20804834e0b09c7e5be2f3e27201fe58..af0df07b357484dc9f3f37eb60613df0c81ccc22 100644 (file)
@@ -20,7 +20,6 @@
 #include "kernel/yosys.h"
 #include "kernel/celltypes.h"
 #include "kernel/sigtools.h"
-#include "kernel/patmatch.h"
 #include <string.h>
 #include <errno.h>
 
index 68317a60a507199a28428a00f012f7de9bc252d5..87d1150279f9f163ba1870d938c01adb1195c0e7 100644 (file)
@@ -18,7 +18,6 @@
  */
 
 #include "kernel/yosys.h"
-#include "kernel/patmatch.h"
 #include <stdlib.h>
 #include <stdio.h>
 #include <set>