summaryrefslogtreecommitdiff
path: root/m4/resyntax.c
diff options
context:
space:
mode:
Diffstat (limited to 'm4/resyntax.c')
-rw-r--r--m4/resyntax.c127
1 files changed, 0 insertions, 127 deletions
diff --git a/m4/resyntax.c b/m4/resyntax.c
deleted file mode 100644
index 704e357c..00000000
--- a/m4/resyntax.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* GNU m4 -- A simple macro processor
- Copyright (C) 2006-2008, 2010, 2013-2014, 2017 Free Software
- Foundation, Inc.
-
- This file is part of GNU M4.
-
- GNU M4 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 of the License, or
- (at your option) any later version.
-
- GNU M4 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.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include <config.h>
-
-#include <regex.h>
-#include <string.h>
-
-#include "m4private.h"
-
-typedef struct {
- const char *spec;
- const int code;
-} m4_resyntax;
-
-/* The syntaxes named in this table are saved into frozen files. Changing
- the mappings will break programs that load a frozen file made before
- such a change... */
-
-static m4_resyntax const m4_resyntax_map[] =
-{
- /* First, the canonical definitions for reverse lookups: */
-
- { "AWK", RE_SYNTAX_AWK },
- { "ED", RE_SYNTAX_ED },
- { "EGREP", RE_SYNTAX_EGREP },
- { "EMACS", RE_SYNTAX_EMACS },
- { "GNU_AWK", RE_SYNTAX_GNU_AWK },
- { "GREP", RE_SYNTAX_GREP },
- { "POSIX_AWK", RE_SYNTAX_POSIX_AWK },
- { "POSIX_BASIC", RE_SYNTAX_POSIX_BASIC },
- { "POSIX_EGREP", RE_SYNTAX_POSIX_EGREP },
- { "POSIX_EXTENDED", RE_SYNTAX_POSIX_EXTENDED },
- { "POSIX_MINIMAL_BASIC", RE_SYNTAX_POSIX_MINIMAL_BASIC },
- { "SED", RE_SYNTAX_SED },
-
- /* The rest are aliases, for forward lookups only: */
-
- { "", RE_SYNTAX_EMACS },
- { "BASIC", RE_SYNTAX_POSIX_BASIC },
- { "BSD_M4", RE_SYNTAX_POSIX_EXTENDED },
- { "EXTENDED", RE_SYNTAX_POSIX_EXTENDED },
- { "GAWK", RE_SYNTAX_GNU_AWK },
- { "GNU_EGREP", RE_SYNTAX_EGREP },
- { "GNU_EMACS", RE_SYNTAX_EMACS },
- { "GNU_M4", RE_SYNTAX_EMACS },
- { "MINIMAL", RE_SYNTAX_POSIX_MINIMAL_BASIC },
- { "MINIMAL_BASIC", RE_SYNTAX_POSIX_MINIMAL_BASIC },
- { "POSIX_MINIMAL", RE_SYNTAX_POSIX_MINIMAL_BASIC },
-
- /* End marker: */
-
- { NULL, -1 }
-};
-
-
-/* Return the internal code representing the syntax SPEC, or -1 if
- SPEC is invalid. The `m4_syntax_map' table is searched case
- insensitively, after replacing any spaces or dashes in SPEC with
- underscore characters. Possible matches for the "GNU_M4" element
- then, are "gnu m4", "GNU-m4" or "Gnu_M4". */
-int
-m4_regexp_syntax_encode (const char *spec)
-{
- const m4_resyntax *resyntax;
- char *canonical;
- char *p;
-
- /* Unless specified otherwise, return the historical GNU M4 default. */
- if (!spec)
- return RE_SYNTAX_EMACS;
-
- canonical = xstrdup (spec);
-
- /* Canonicalise SPEC. */
- for (p = canonical; *p != '\0'; ++p)
- {
- if ((*p == ' ') || (*p == '-'))
- *p = '_';
- else if (islower (to_uchar (*p)))
- *p = toupper (to_uchar (*p));
- }
-
- for (resyntax = m4_resyntax_map; resyntax->spec != NULL; ++resyntax)
- {
- if (STREQ (resyntax->spec, canonical))
- break;
- }
-
- free (canonical);
-
- return resyntax->code;
-}
-
-
-/* Return the syntax specifier that matches CODE, or NULL if there is
- no match. */
-const char *
-m4_regexp_syntax_decode (int code)
-{
- const m4_resyntax *resyntax;
-
- for (resyntax = m4_resyntax_map; resyntax->spec != NULL; ++resyntax)
- {
- if (resyntax->code == code)
- break;
- }
-
- return resyntax->spec;
-}