[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
FYI: 27-gary-syntax-parser-tidy.patch
From: |
Gary V. Vaughan |
Subject: |
FYI: 27-gary-syntax-parser-tidy.patch |
Date: |
Thu, 17 Jul 2003 21:06:03 +0100 |
User-agent: |
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.3) Gecko/20030312 |
Applied to HEAD.
--
())_. Gary V. Vaughan gary@(oranda.demon.co.uk|gnu.org)
( '/ Research Scientist http://www.oranda.demon.co.uk ,_())____
/ )= GNU Hacker http://www.gnu.org/software/libtool \' `&
`(_~)_ Tech' Author http://sources.redhat.com/autobook =`---d__/
Index: ChangeLog
from Gary V. Vaughan <address@hidden>
Change the macros for checking syntax so that matching against
multiple possible syntax classes can be done with a single
comparison some of the time. The various classes are now bits of
an int that can be checked with bitwise logic operators.
* m4/m4module.h (M4_SYNTAX_IGNORE, M4_SYNTAX_OTHER)
(M4_SYNTAX_SPACE, M4_SYNTAX_OPEN, M4_SYNTAX_CLOSE, M4_SYNTAX_COMMA)
(M4_SYNTAX_DOLLAR, M4_SYNTAX_ACTIVE, M4_SYNTAX_ESCAPE)
(M4_SYNTAX_ASSIGN, M4_SYNTAX_ALPHA, M4_SYNTAX_NUM)
(M4_SYNTAX_LQUOTE, M4_SYNTAX_RQUOTE, M4_SYNTAX_BCOMM)
(M4_SYNTAX_ECOMM): Replaced #defines with an enum.
(M4_SYNTAX_ALNUM): Removed. Changed all callers.
(M4_IS_IGNORE, M4_IS_OTHER, M4_IS_SPACE, M4_IS_OPEN, M4_IS_CLOSE)
(M4_IS_COMMA, M4_IS_DOLLAR, M4_IS_ACTIVE, M4_IS_ESCAPE)
(M4_IS_ASSIGN, M4_IS_ALPHA, M4_IS_NUM, M4_IS_LQUOTE, M4_IS_RQUOTE)
(M4_IS_BCOMM, M4_IS_ECOMM, M4__IS_STRING, M4_IS_IDENT): Removed.
Replace all calls with invocations of these...
(m4_is_syntax, m4_has_syntax): ...New macros.
* src/freeze.c (produce_syntax_dump): Remove mask argument, which
is no longer required with new macros. Changed all callers.
Index: m4/input.c
===================================================================
RCS file: /cvsroot/m4/m4/m4/input.c,v
retrieving revision 1.31
diff -u -p -u -r1.31 input.c
--- m4/input.c 15 Jul 2003 09:24:54 -0000 1.31
+++ m4/input.c 17 Jul 2003 19:53:49 -0000
@@ -752,21 +752,20 @@ m4__next_token (m4 *context, m4_symbol_v
}
(void) next_char (context);
- if (M4_IS_BCOMM (M4SYNTAX, ch)) /* COMMENT, SHORT DELIM */
- {
+ if (m4_has_syntax (M4SYNTAX, ch, M4_SYNTAX_BCOMM))
+ { /* COMMENT, SHORT DELIM */
obstack_1grow (&token_stack, ch);
while ((ch = next_char (context)) != CHAR_EOF
- && !M4_IS_ECOMM (M4SYNTAX, ch))
+ && !m4_has_syntax (M4SYNTAX, ch, M4_SYNTAX_ECOMM))
obstack_1grow (&token_stack, ch);
if (ch != CHAR_EOF)
obstack_1grow (&token_stack, ch);
type = m4_get_discard_comments_opt (context)
? M4_TOKEN_NONE : M4_TOKEN_STRING;
}
- /* COMMENT, LONGER DELIM */
else if (!m4_is_syntax_single_comments (M4SYNTAX)
&& MATCH (context, ch, context->syntax->bcomm.string))
- {
+ { /* COMMENT, LONGER DELIM */
obstack_grow (&token_stack, context->syntax->bcomm.string,
context->syntax->bcomm.length);
while ((ch = next_char (context)) != CHAR_EOF
@@ -778,16 +777,17 @@ m4__next_token (m4 *context, m4_symbol_v
type = m4_get_discard_comments_opt (context)
? M4_TOKEN_NONE : M4_TOKEN_STRING;
}
- else if (M4_IS_ESCAPE (M4SYNTAX, ch)) /* ESCAPED WORD */
- {
+ else if (m4_has_syntax (M4SYNTAX, ch, M4_SYNTAX_ESCAPE))
+ { /* ESCAPED WORD */
obstack_1grow (&token_stack, ch);
if ((ch = next_char (context)) != CHAR_EOF)
{
- if (M4_IS_ALPHA (M4SYNTAX, ch))
+ if (m4_has_syntax (M4SYNTAX, ch, M4_SYNTAX_ALPHA))
{
obstack_1grow (&token_stack, ch);
while ((ch = next_char (context)) != CHAR_EOF
- && (M4_IS_ALNUM (M4SYNTAX, ch)))
+ && (m4_is_syntax (M4SYNTAX, ch, M4_SYNTAX_ALPHA)
+ || m4_is_syntax (M4SYNTAX, ch, M4_SYNTAX_NUM)))
{
obstack_1grow (&token_stack, ch);
}
@@ -807,11 +807,12 @@ m4__next_token (m4 *context, m4_symbol_v
type = M4_TOKEN_SIMPLE; /* escape before eof */
}
}
- else if (M4_IS_ALPHA (M4SYNTAX, ch))
+ else if (m4_has_syntax (M4SYNTAX, ch, M4_SYNTAX_ALPHA))
{
obstack_1grow (&token_stack, ch);
while ((ch = next_char (context)) != CHAR_EOF
- && (M4_IS_ALNUM (M4SYNTAX, ch)))
+ && (m4_is_syntax (M4SYNTAX, ch, M4_SYNTAX_ALPHA)
+ || m4_is_syntax (M4SYNTAX, ch, M4_SYNTAX_NUM)))
{
obstack_1grow (&token_stack, ch);
}
@@ -821,8 +822,8 @@ m4__next_token (m4 *context, m4_symbol_v
type = m4_is_syntax_macro_escaped (M4SYNTAX)
? M4_TOKEN_STRING : M4_TOKEN_WORD;
}
- else if (M4_IS_LQUOTE (M4SYNTAX, ch)) /* QUOTED STRING, SINGLE QUOTES */
- {
+ else if (m4_has_syntax (M4SYNTAX, ch, M4_SYNTAX_LQUOTE))
+ { /* QUOTED STRING, SINGLE QUOTES
*/
const char *current_file = m4_current_file;
int current_line = m4_current_line;
quote_level = 1;
@@ -834,13 +835,13 @@ m4__next_token (m4 *context, m4_symbol_v
current_file, current_line,
_("EOF in string"));
- if (M4_IS_RQUOTE (M4SYNTAX, ch))
+ if (m4_has_syntax (M4SYNTAX, ch, M4_SYNTAX_RQUOTE))
{
if (--quote_level == 0)
break;
obstack_1grow (&token_stack, ch);
}
- else if (M4_IS_LQUOTE (M4SYNTAX, ch))
+ else if (m4_has_syntax (M4SYNTAX, ch, M4_SYNTAX_LQUOTE))
{
quote_level++;
obstack_1grow (&token_stack, ch);
@@ -850,10 +851,9 @@ m4__next_token (m4 *context, m4_symbol_v
}
type = M4_TOKEN_STRING;
}
- /* QUOTED STRING, LONGER QUOTES */
else if (!m4_is_syntax_single_quotes (M4SYNTAX)
&& MATCH (context, ch, context->syntax->lquote.string))
- {
+ { /* QUOTED STRING, LONGER QUOTES
*/
const char *current_file = m4_current_file;
int current_line = m4_current_line;
quote_level = 1;
@@ -883,15 +883,18 @@ m4__next_token (m4 *context, m4_symbol_v
type = M4_TOKEN_STRING;
}
else if (m4_is_syntax_single_quotes (M4SYNTAX)
- && m4_is_syntax_single_comments (M4SYNTAX)) /* EVERYTHING ELSE */
- {
+ && m4_is_syntax_single_comments (M4SYNTAX))
+ { /* EVERYTHING ELSE (SHORT QUOTES AND COMMENTS)
*/
obstack_1grow (&token_stack, ch);
- if (M4_IS_OTHER (M4SYNTAX, ch) || M4__IS_STRING (M4SYNTAX, ch))
- {
- while ((ch = next_char(context)) != CHAR_EOF
- && (M4_IS_OTHER (M4SYNTAX, ch)
- || M4__IS_STRING (M4SYNTAX, ch)))
+ if (m4_is_syntax (M4SYNTAX, ch, M4_SYNTAX_OTHER)
+ || m4_is_syntax (M4SYNTAX, ch, M4_SYNTAX_NUM)
+ || m4_is_syntax (M4SYNTAX, ch, M4_SYNTAX_DOLLAR))
+ {
+ while (((ch = next_char(context)) != CHAR_EOF)
+ && (m4_is_syntax (M4SYNTAX, ch, M4_SYNTAX_OTHER)
+ || m4_is_syntax (M4SYNTAX, ch, M4_SYNTAX_NUM)
+ || m4_is_syntax (M4SYNTAX, ch, M4_SYNTAX_DOLLAR)))
{
obstack_1grow (&token_stack, ch);
}
@@ -900,12 +903,12 @@ m4__next_token (m4 *context, m4_symbol_v
unget_input(ch);
type = M4_TOKEN_STRING;
}
- else if (M4_IS_SPACE (M4SYNTAX, ch))
+ else if (m4_has_syntax (M4SYNTAX, ch, M4_SYNTAX_SPACE))
{
if (!m4_get_interactive_opt (context))
{
while ((ch = next_char (context)) != CHAR_EOF
- && M4_IS_SPACE (M4SYNTAX, ch))
+ && m4_has_syntax (M4SYNTAX, ch, M4_SYNTAX_SPACE))
obstack_1grow (&token_stack, ch);
if (ch != CHAR_EOF)
@@ -913,20 +916,22 @@ m4__next_token (m4 *context, m4_symbol_v
}
type = M4_TOKEN_SPACE;
}
- else if (M4_IS_ACTIVE (M4SYNTAX, ch))
+ else if (m4_has_syntax (M4SYNTAX, ch, M4_SYNTAX_ACTIVE))
type = M4_TOKEN_WORD;
else
type = M4_TOKEN_SIMPLE;
}
- else /* EVERYTHING ELSE AGAIN?! */
+ else /* EVERYTHING ELSE (LONG QUOTES OR COMMENTS) */
{
obstack_1grow (&token_stack, ch);
- if (M4_IS_OTHER (M4SYNTAX, ch) || M4__IS_STRING (M4SYNTAX, ch))
+ if (m4_is_syntax (M4SYNTAX, ch, M4_SYNTAX_OTHER)
+ || m4_is_syntax (M4SYNTAX, ch, M4_SYNTAX_NUM)
+ || m4_is_syntax (M4SYNTAX, ch, M4_SYNTAX_DOLLAR))
type = M4_TOKEN_STRING;
- else if (M4_IS_SPACE (M4SYNTAX, ch))
+ else if (m4_has_syntax (M4SYNTAX, ch, M4_SYNTAX_SPACE))
type = M4_TOKEN_SPACE;
- else if (M4_IS_ACTIVE (M4SYNTAX, ch))
+ else if (m4_has_syntax (M4SYNTAX, ch, M4_SYNTAX_ACTIVE))
type = M4_TOKEN_WORD;
else
type = M4_TOKEN_SIMPLE;
Index: m4/m4module.h
===================================================================
RCS file: /cvsroot/m4/m4/m4/m4module.h,v
retrieving revision 1.54
diff -u -p -u -r1.54 m4module.h
--- m4/m4module.h 9 Jul 2003 12:32:41 -0000 1.54
+++ m4/m4module.h 17 Jul 2003 19:53:52 -0000
@@ -328,67 +328,39 @@ extern boolean m4_is_syntax_single_quo
extern boolean m4_is_syntax_single_comments (m4_syntax_table *);
extern boolean m4_is_syntax_macro_escaped (m4_syntax_table *);
-/* These are simple values, not bit masks. There is no overlap. */
-#define M4_SYNTAX_OTHER (0x0000)
+/* These are values to be assigned to syntax table entries, although they
+ are bit masks for fast categorisation in m4__next_token(), only one
+ value per syntax table entry is allowed. */
+enum {
+ M4_SYNTAX_OTHER = (1 << 0),
+ M4_SYNTAX_IGNORE = (1 << 1),
+ M4_SYNTAX_SPACE = (1 << 2),
+ M4_SYNTAX_OPEN = (1 << 3),
+ M4_SYNTAX_CLOSE = (1 << 4),
+ M4_SYNTAX_COMMA = (1 << 5),
+ M4_SYNTAX_DOLLAR = (1 << 6),
+ M4_SYNTAX_ACTIVE = (1 << 7),
+ M4_SYNTAX_ESCAPE = (1 << 8),
+ M4_SYNTAX_ASSIGN = (1 << 9),
+ M4_SYNTAX_ALPHA = (1 << 10),
+ M4_SYNTAX_NUM = (1 << 11),
+
+ /* These values ARE bit masks to AND with categories above, a syntax entry
+ may have any number of these in addition to a maximum of one of the
+ values above. */
+ M4_SYNTAX_LQUOTE = (1 << 12),
+ M4_SYNTAX_RQUOTE = (1 << 13),
+ M4_SYNTAX_BCOMM = (1 << 14),
+ M4_SYNTAX_ECOMM = (1 << 15),
+};
+
+#define M4_SYNTAX_MASKS
(M4_SYNTAX_LQUOTE|M4_SYNTAX_RQUOTE|M4_SYNTAX_BCOMM|M4_SYNTAX_ECOMM)
+#define M4_SYNTAX_VALUE (~(M4_SYNTAX_RQUOTE|M4_SYNTAX_ECOMM))
+
+#define m4_syntab(S,C) ((S)->table[(int)(C)])
+#define m4_has_syntax(S,C,T) ((m4_syntab((S),(C)) & (T)) > 0)
+#define m4_is_syntax(S,C,T) ((m4_syntab((S),(C)) & M4_SYNTAX_VALUE) == (T))
-#define M4_SYNTAX_IGNORE (0x0001)
-#define M4_SYNTAX_SPACE (0x0002)
-#define M4_SYNTAX_OPEN (0x0003)
-#define M4_SYNTAX_CLOSE (0x0004)
-#define M4_SYNTAX_COMMA (0x0005)
-#define M4_SYNTAX_DOLLAR (0x0006)
-#define M4_SYNTAX_ACTIVE (0x0007)
-#define M4_SYNTAX_ESCAPE (0x0008)
-#define M4_SYNTAX_ASSIGN (0x0009)
-
-/* These are values to be assigned to syntax table entries, but they are
- used as bit masks with M4_IS_ALNUM.*/
-#define M4_SYNTAX_ALPHA (0x0010)
-#define M4_SYNTAX_NUM (0x0020)
-#define M4_SYNTAX_ALNUM (M4_SYNTAX_ALPHA|M4_SYNTAX_NUM)
-
-/* We can OR the valid M4_TOKEN_STRING chars together, since they are
- carefully chosen not to overlap. This reduces the number of comparisons
- the compiled code needs in order to speed up m4__next_token () a bit. */
-#define M4__SYNTAX_STRING (M4_SYNTAX_NUM|M4_SYNTAX_DOLLAR)
-
-/* These are bit masks to AND with other categories.
- See input.c for details. */
-#define M4_SYNTAX_LQUOTE (0x0100)
-#define M4_SYNTAX_RQUOTE (0x0200)
-#define M4_SYNTAX_BCOMM (0x0400)
-#define M4_SYNTAX_ECOMM (0x0800)
-
-/* These bits define the syntax code of a character */
-#define M4_SYNTAX_VALUE
(0x00FF|M4_SYNTAX_LQUOTE|M4_SYNTAX_BCOMM)
-#define M4_SYNTAX_MASKS (0xFF00)
-
-#define m4__is_syntax(S,C,T) \
- (((S)->table[(int)(C)] & M4_SYNTAX_VALUE) == (T))
-
-#define M4_IS_IGNORE(S, C) (((S)->table[(int)(C)]) == M4_SYNTAX_IGNORE)
-#define M4_IS_OTHER(S, C) (m4__is_syntax((S), (C), M4_SYNTAX_OTHER))
-#define M4_IS_SPACE(S, C) (m4__is_syntax((S), (C), M4_SYNTAX_SPACE))
-
-#define M4_IS_OPEN(S, C) (m4__is_syntax((S), (C), M4_SYNTAX_OPEN))
-#define M4_IS_CLOSE(S, C) (m4__is_syntax((S), (C), M4_SYNTAX_CLOSE))
-#define M4_IS_COMMA(S, C) (m4__is_syntax((S), (C), M4_SYNTAX_COMMA))
-#define M4_IS_DOLLAR(S, C) (m4__is_syntax((S), (C), M4_SYNTAX_DOLLAR))
-#define M4_IS_ACTIVE(S, C) (m4__is_syntax((S), (C), M4_SYNTAX_ACTIVE))
-#define M4_IS_ESCAPE(S, C) (m4__is_syntax((S), (C), M4_SYNTAX_ESCAPE))
-#define M4_IS_ASSIGN(S, C) (m4__is_syntax((S), (C), M4_SYNTAX_ASSIGN))
-
-#define M4_IS_ALPHA(S, C) (m4__is_syntax((S), (C), M4_SYNTAX_ALPHA))
-#define M4_IS_NUM(S, C) (m4__is_syntax((S), (C), M4_SYNTAX_NUM))
-#define M4_IS_ALNUM(S, C) ((S)->table[(int)(C)] & M4_SYNTAX_ALNUM)
-
-#define M4_IS_LQUOTE(S, C) ((S)->table[(int)(C)] & M4_SYNTAX_LQUOTE)
-#define M4_IS_RQUOTE(S, C) ((S)->table[(int)(C)] & M4_SYNTAX_RQUOTE)
-#define M4_IS_BCOMM(S, C) ((S)->table[(int)(C)] & M4_SYNTAX_BCOMM)
-#define M4_IS_ECOMM(S, C) ((S)->table[(int)(C)] & M4_SYNTAX_ECOMM)
-
-#define M4__IS_STRING(S, C) (m4__is_syntax((S), (C), M4__SYNTAX_STRING))
-#define M4_IS_IDENT(S, C) (M4_IS_OTHER((S),(C))||M4_IS_ALNUM((S),(C)))
/* --- TOKENISATION AND INPUT --- */
Index: m4/macro.c
===================================================================
RCS file: /cvsroot/m4/m4/m4/macro.c,v
retrieving revision 1.33
diff -u -p -u -r1.33 macro.c
--- m4/macro.c 15 Jul 2003 09:24:54 -0000 1.33
+++ m4/macro.c 17 Jul 2003 19:53:52 -0000
@@ -80,7 +80,7 @@ expand_token (m4 *context, struct obstac
char *textp = text;
int ch;
- if (M4_IS_ESCAPE (M4SYNTAX, *textp))
+ if (m4_has_syntax (M4SYNTAX, *textp, M4_SYNTAX_ESCAPE))
++textp;
symbol = m4_symbol_lookup (M4SYMTAB, textp);
@@ -89,7 +89,7 @@ expand_token (m4 *context, struct obstac
|| (symbol->value->type == M4_SYMBOL_FUNC
&& BIT_TEST (SYMBOL_FLAGS (symbol), VALUE_BLIND_ARGS_BIT)
&& (ch = m4_peek_input (context)) < CHAR_EOF
- && !M4_IS_OPEN (M4SYNTAX, ch)))
+ && !m4_has_syntax (M4SYNTAX, ch, M4_SYNTAX_OPEN)))
{
m4_shipout_text (context, obs, text, strlen (text));
}
@@ -140,7 +140,8 @@ expand_argument (m4 *context, struct obs
{ /* TOKSW */
case M4_TOKEN_SIMPLE:
text = m4_get_symbol_value_text (&token);
- if ((M4_IS_COMMA (M4SYNTAX, *text) || M4_IS_CLOSE (M4SYNTAX, *text))
+ if ((m4_has_syntax (M4SYNTAX, *text,
+ M4_SYNTAX_COMMA|M4_SYNTAX_CLOSE))
&& paren_level == 0)
{
@@ -152,12 +153,12 @@ expand_argument (m4 *context, struct obs
{
m4_set_symbol_value_text (argp, text);
}
- return (boolean) (M4_IS_COMMA (M4SYNTAX,
*m4_get_symbol_value_text (&token)));
+ return (boolean) (m4_has_syntax (M4SYNTAX,
*m4_get_symbol_value_text (&token), M4_SYNTAX_COMMA));
}
- if (M4_IS_OPEN (M4SYNTAX, *text))
+ if (m4_has_syntax (M4SYNTAX, *text, M4_SYNTAX_OPEN))
paren_level++;
- else if (M4_IS_CLOSE (M4SYNTAX, *text))
+ else if (m4_has_syntax (M4SYNTAX, *text, M4_SYNTAX_CLOSE))
paren_level--;
expand_token (context, obs, type, &token);
break;
@@ -272,7 +273,7 @@ collect_arguments (m4 *context, const ch
obstack_grow (argptr, (void *) &tokenp, sizeof (tokenp));
ch = m4_peek_input (context);
- if ((ch < CHAR_EOF) && M4_IS_OPEN (M4SYNTAX, ch))
+ if ((ch < CHAR_EOF) && m4_has_syntax (M4SYNTAX, ch, M4_SYNTAX_OPEN))
{
m4__next_token (context, &token); /* gobble parenthesis */
do
@@ -334,7 +335,7 @@ m4_process_macro (m4 *context, m4_symbol
{
char ch;
- if (!M4_IS_DOLLAR (M4SYNTAX, *text))
+ if (!m4_has_syntax (M4SYNTAX, *text, M4_SYNTAX_DOLLAR))
{
obstack_1grow (obs, *text);
text++;
@@ -382,7 +383,7 @@ m4_process_macro (m4 *context, m4_symbol
const char * endp;
const char * key;
- for (endp = ++text; *endp && M4_IS_IDENT (M4SYNTAX, *endp);
++endp)
+ for (endp = ++text; *endp && m4_has_syntax (M4SYNTAX, *endp,
M4_SYNTAX_OTHER|M4_SYNTAX_ALPHA|M4_SYNTAX_NUM); ++endp)
++len;
key = xstrzdup (text, len);
Index: m4/syntax.c
===================================================================
RCS file: /cvsroot/m4/m4/m4/syntax.c,v
retrieving revision 1.5
diff -u -p -u -r1.5 syntax.c
--- m4/syntax.c 27 Jun 2003 14:00:25 -0000 1.5
+++ m4/syntax.c 17 Jul 2003 19:54:02 -0000
@@ -203,8 +203,8 @@ m4_set_quotes (m4_syntax_table *syntax,
assert (syntax);
for (ch = 256; --ch >= 0;) /* changequote overrides syntax_table */
- if (M4_IS_LQUOTE (syntax, ch) || M4_IS_RQUOTE (syntax, ch))
- remove_syntax_attribute (syntax, ch, M4_SYNTAX_LQUOTE |
M4_SYNTAX_RQUOTE);
+ if (m4_has_syntax (syntax, ch, M4_SYNTAX_LQUOTE|M4_SYNTAX_RQUOTE))
+ remove_syntax_attribute (syntax, ch, M4_SYNTAX_LQUOTE|M4_SYNTAX_RQUOTE);
xfree (syntax->lquote.string);
xfree (syntax->rquote.string);
@@ -249,8 +249,8 @@ m4_set_comment (m4_syntax_table *syntax,
assert (syntax);
for (ch = 256; --ch >= 0;) /* changecom overrides syntax_table */
- if (M4_IS_BCOMM (syntax, ch) || M4_IS_ECOMM (syntax, ch))
- remove_syntax_attribute (syntax, ch, M4_SYNTAX_BCOMM | M4_SYNTAX_ECOMM);
+ if (m4_has_syntax (syntax, ch, M4_SYNTAX_BCOMM|M4_SYNTAX_ECOMM))
+ remove_syntax_attribute (syntax, ch, M4_SYNTAX_BCOMM|M4_SYNTAX_ECOMM);
xfree (syntax->bcomm.string);
xfree (syntax->ecomm.string);
@@ -377,7 +377,7 @@ check_is_macro_escaped (m4_syntax_table
syntax->is_macro_escaped = FALSE;
for (ch = 256; --ch >= 0; )
- if (M4_IS_ESCAPE (syntax, ch))
+ if (m4_has_syntax (syntax, ch, M4_SYNTAX_ESCAPE))
{
syntax->is_macro_escaped = TRUE;
break;
Index: m4/utility.c
===================================================================
RCS file: /cvsroot/m4/m4/m4/utility.c,v
retrieving revision 1.29
diff -u -p -u -r1.29 utility.c
--- m4/utility.c 26 Jun 2003 14:57:32 -0000 1.29
+++ m4/utility.c 17 Jul 2003 19:54:02 -0000
@@ -61,7 +61,7 @@ m4_bad_argc (m4 *context, int argc, m4_s
const char *
m4_skip_space (m4 *context, const char *arg)
{
- while (M4_IS_SPACE (M4SYNTAX, *arg))
+ while (m4_has_syntax (M4SYNTAX, *arg, M4_SYNTAX_SPACE))
arg++;
return arg;
}
Index: src/freeze.c
===================================================================
RCS file: /cvsroot/m4/m4/src/freeze.c,v
retrieving revision 1.32
diff -u -p -u -r1.32 freeze.c
--- src/freeze.c 26 Jun 2003 14:57:32 -0000 1.32
+++ src/freeze.c 17 Jul 2003 19:54:03 -0000
@@ -27,7 +27,7 @@ static int decode_char (FILE *in);
static void issue_expect_message (int expected);
static int produce_char_dump (char *buf, int ch);
static void produce_syntax_dump (FILE *file, m4_syntax_table *syntax,
- char ch, int mask);
+ char ch);
static void produce_module_dump (FILE *file, lt_dlhandle handle);
static void produce_symbol_dump (m4 *context, FILE *file,
m4_symbol_table *symtab);
@@ -79,7 +79,7 @@ produce_char_dump (char *buf, int ch)
#define MAX_CHAR_LENGTH 4 /* '\377' -> 4 characters */
static void
-produce_syntax_dump (FILE *file, m4_syntax_table *syntax, char ch, int mask)
+produce_syntax_dump (FILE *file, m4_syntax_table *syntax, char ch)
{
char buf[1+ MAX_CHAR_LENGTH * sizeof (m4_syntax_table)];
int code = m4_syntax_code (ch);
@@ -93,8 +93,7 @@ produce_syntax_dump (FILE *file, m4_synt
for (i = 1; i < 256; ++i)
{
- if ((mask && ((syntax->table[i] & mask) == code))
- || (!mask && ((syntax->table[i] & code) == code)))
+ if (m4_has_syntax (syntax, i, code))
{
offset += produce_char_dump (buf + offset, i);
++count;
@@ -236,23 +235,23 @@ produce_frozen_state (m4 *context, const
/* Dump syntax table. */
- produce_syntax_dump (file, M4SYNTAX, 'I', M4_SYNTAX_VALUE);
- produce_syntax_dump (file, M4SYNTAX, 'S', M4_SYNTAX_VALUE);
- produce_syntax_dump (file, M4SYNTAX, '(', M4_SYNTAX_VALUE);
- produce_syntax_dump (file, M4SYNTAX, ')', M4_SYNTAX_VALUE);
- produce_syntax_dump (file, M4SYNTAX, ',', M4_SYNTAX_VALUE);
- produce_syntax_dump (file, M4SYNTAX, '$', M4_SYNTAX_VALUE);
- produce_syntax_dump (file, M4SYNTAX, 'A', M4_SYNTAX_VALUE);
- produce_syntax_dump (file, M4SYNTAX, '@', M4_SYNTAX_VALUE);
- produce_syntax_dump (file, M4SYNTAX, 'O', M4_SYNTAX_VALUE);
-
- produce_syntax_dump (file, M4SYNTAX, 'W', M4_SYNTAX_VALUE);
- produce_syntax_dump (file, M4SYNTAX, 'D', M4_SYNTAX_VALUE);
-
- produce_syntax_dump (file, M4SYNTAX, 'L', 0);
- produce_syntax_dump (file, M4SYNTAX, 'R', 0);
- produce_syntax_dump (file, M4SYNTAX, 'B', 0);
- produce_syntax_dump (file, M4SYNTAX, 'E', 0);
+ produce_syntax_dump (file, M4SYNTAX, 'I');
+ produce_syntax_dump (file, M4SYNTAX, 'S');
+ produce_syntax_dump (file, M4SYNTAX, '(');
+ produce_syntax_dump (file, M4SYNTAX, ')');
+ produce_syntax_dump (file, M4SYNTAX, ',');
+ produce_syntax_dump (file, M4SYNTAX, '$');
+ produce_syntax_dump (file, M4SYNTAX, 'A');
+ produce_syntax_dump (file, M4SYNTAX, '@');
+ produce_syntax_dump (file, M4SYNTAX, 'O');
+
+ produce_syntax_dump (file, M4SYNTAX, 'W');
+ produce_syntax_dump (file, M4SYNTAX, 'D');
+
+ produce_syntax_dump (file, M4SYNTAX, 'L');
+ produce_syntax_dump (file, M4SYNTAX, 'R');
+ produce_syntax_dump (file, M4SYNTAX, 'B');
+ produce_syntax_dump (file, M4SYNTAX, 'E');
/* Dump all loaded modules. */
produce_module_dump (file, lt_dlhandle_next (0));
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- FYI: 27-gary-syntax-parser-tidy.patch,
Gary V. Vaughan <=