/[m4]/m4/m4/macro.c
ViewVC logotype

Diff of /m4/m4/macro.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.33 by gary, Tue Jul 15 09:24:54 2003 UTC revision 1.34 by gary, Thu Jul 17 19:57:06 2003 UTC
# Line 80  expand_token (m4 *context, struct obstac Line 80  expand_token (m4 *context, struct obstac
80          char *textp = text;          char *textp = text;
81          int ch;          int ch;
82    
83          if (M4_IS_ESCAPE (M4SYNTAX, *textp))          if (m4_has_syntax (M4SYNTAX, *textp, M4_SYNTAX_ESCAPE))
84            ++textp;            ++textp;
85    
86          symbol = m4_symbol_lookup (M4SYMTAB, textp);          symbol = m4_symbol_lookup (M4SYMTAB, textp);
# Line 89  expand_token (m4 *context, struct obstac Line 89  expand_token (m4 *context, struct obstac
89              || (symbol->value->type == M4_SYMBOL_FUNC              || (symbol->value->type == M4_SYMBOL_FUNC
90                  && BIT_TEST (SYMBOL_FLAGS (symbol), VALUE_BLIND_ARGS_BIT)                  && BIT_TEST (SYMBOL_FLAGS (symbol), VALUE_BLIND_ARGS_BIT)
91                  && (ch = m4_peek_input (context)) < CHAR_EOF                  && (ch = m4_peek_input (context)) < CHAR_EOF
92                  && !M4_IS_OPEN (M4SYNTAX, ch)))                  && !m4_has_syntax (M4SYNTAX, ch, M4_SYNTAX_OPEN)))
93            {            {
94              m4_shipout_text (context, obs, text, strlen (text));              m4_shipout_text (context, obs, text, strlen (text));
95            }            }
# Line 140  expand_argument (m4 *context, struct obs Line 140  expand_argument (m4 *context, struct obs
140          {                       /* TOKSW */          {                       /* TOKSW */
141          case M4_TOKEN_SIMPLE:          case M4_TOKEN_SIMPLE:
142            text = m4_get_symbol_value_text (&token);            text = m4_get_symbol_value_text (&token);
143            if ((M4_IS_COMMA (M4SYNTAX, *text) || M4_IS_CLOSE (M4SYNTAX, *text))            if ((m4_has_syntax (M4SYNTAX, *text,
144                                  M4_SYNTAX_COMMA|M4_SYNTAX_CLOSE))
145                && paren_level == 0)                && paren_level == 0)
146              {              {
147    
# Line 152  expand_argument (m4 *context, struct obs Line 153  expand_argument (m4 *context, struct obs
153                  {                  {
154                    m4_set_symbol_value_text (argp, text);                    m4_set_symbol_value_text (argp, text);
155                  }                  }
156                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));
157              }              }
158    
159            if (M4_IS_OPEN (M4SYNTAX, *text))            if (m4_has_syntax (M4SYNTAX, *text, M4_SYNTAX_OPEN))
160              paren_level++;              paren_level++;
161            else if (M4_IS_CLOSE (M4SYNTAX, *text))            else if (m4_has_syntax (M4SYNTAX, *text, M4_SYNTAX_CLOSE))
162              paren_level--;              paren_level--;
163            expand_token (context, obs, type, &token);            expand_token (context, obs, type, &token);
164            break;            break;
# Line 272  collect_arguments (m4 *context, const ch Line 273  collect_arguments (m4 *context, const ch
273    obstack_grow (argptr, (void *) &tokenp, sizeof (tokenp));    obstack_grow (argptr, (void *) &tokenp, sizeof (tokenp));
274    
275    ch = m4_peek_input (context);    ch = m4_peek_input (context);
276    if ((ch < CHAR_EOF) && M4_IS_OPEN (M4SYNTAX, ch))    if ((ch < CHAR_EOF) && m4_has_syntax (M4SYNTAX, ch, M4_SYNTAX_OPEN))
277      {      {
278        m4__next_token (context, &token);         /* gobble parenthesis */        m4__next_token (context, &token);         /* gobble parenthesis */
279        do        do
# Line 334  m4_process_macro (m4 *context, m4_symbol Line 335  m4_process_macro (m4 *context, m4_symbol
335      {      {
336        char ch;        char ch;
337    
338        if (!M4_IS_DOLLAR (M4SYNTAX, *text))        if (!m4_has_syntax (M4SYNTAX, *text, M4_SYNTAX_DOLLAR))
339          {          {
340            obstack_1grow (obs, *text);            obstack_1grow (obs, *text);
341            text++;            text++;
# Line 382  m4_process_macro (m4 *context, m4_symbol Line 383  m4_process_macro (m4 *context, m4_symbol
383                const char * endp;                const char * endp;
384                const char * key;                const char * key;
385    
386                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)
387                  ++len;                  ++len;
388                key = xstrzdup (text, len);                key = xstrzdup (text, len);
389    

Legend:
Removed from v.1.33  
changed lines
  Added in v.1.34

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26