/[m4]/m4/src/freeze.c
ViewVC logotype

Diff of /m4/src/freeze.c

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

revision 1.28 by gary, Tue Jun 17 15:17:45 2003 UTC revision 1.29 by gary, Wed Jun 18 16:21:55 2003 UTC
# Line 126  produce_symbol_dump (FILE *file, m4_hash Line 126  produce_symbol_dump (FILE *file, m4_hash
126  {  {
127    m4_hash_iterator *place       = 0;    m4_hash_iterator *place       = 0;
128    
129    while ((place = m4_hash_iterator_next (hash, place)))    while ((place = m4_get_hash_iterator_next (hash, place)))
130      {      {
131        const char   *symbol_name = (const char *) m4_hash_iterator_key (place);        const char   *symbol_name = (const char *) m4_get_hash_iterator_key (place);
132        m4_symbol    *symbol      = m4_hash_iterator_value (place);        m4_symbol    *symbol      = m4_get_hash_iterator_value (place);
133        lt_dlhandle   handle      = SYMBOL_HANDLE (symbol);        lt_dlhandle   handle      = SYMBOL_HANDLE (symbol);
134        const char   *module_name = handle ? m4_get_module_name (handle) : NULL;        const char   *module_name = handle ? m4_get_module_name (handle) : NULL;
135        const m4_builtin *bp;        const m4_builtin *bp;
136    
137        switch (SYMBOL_TYPE (symbol))        switch (SYMBOL_TYPE (symbol))
138          {          {
139          case M4_TOKEN_TEXT:          case M4_SYMBOL_TEXT:
140            fprintf (file, "T%lu,%lu",            fprintf (file, "T%lu,%lu",
141                     (unsigned long) strlen (symbol_name),                     (unsigned long) strlen (symbol_name),
142                     (unsigned long) strlen (SYMBOL_TEXT (symbol)));                     (unsigned long) strlen (SYMBOL_TEXT (symbol)));
# Line 151  produce_symbol_dump (FILE *file, m4_hash Line 151  produce_symbol_dump (FILE *file, m4_hash
151            fputc ('\n', file);            fputc ('\n', file);
152            break;            break;
153    
154          case M4_TOKEN_FUNC:          case M4_SYMBOL_FUNC:
155            bp = m4_builtin_find_by_func            bp = m4_builtin_find_by_func
156                  (m4_get_module_builtin_table (SYMBOL_HANDLE (symbol)),                  (m4_get_module_builtin_table (SYMBOL_HANDLE (symbol)),
157                   SYMBOL_FUNC (symbol));                   SYMBOL_FUNC (symbol));
# Line 473  reload_frozen_state (m4 *context, const Line 473  reload_frozen_state (m4 *context, const
473    
474            if (bp)            if (bp)
475              {              {
476                m4_token *token = XCALLOC (m4_token, 1);                m4_symbol_value *token = XCALLOC (m4_symbol_value, 1);
477    
478                if (bp->groks_macro_args)                if (bp->groks_macro_args)
479                  BIT_SET (TOKEN_FLAGS (token), TOKEN_MACRO_ARGS_BIT);                  BIT_SET (VALUE_FLAGS (token), VALUE_MACRO_ARGS_BIT);
480                if (bp->blind_if_no_args)                if (bp->blind_if_no_args)
481                  BIT_SET (TOKEN_FLAGS (token), TOKEN_BLIND_ARGS_BIT);                  BIT_SET (VALUE_FLAGS (token), VALUE_BLIND_ARGS_BIT);
482    
483                TOKEN_TYPE (token)        = M4_TOKEN_FUNC;                VALUE_TYPE (token)        = M4_SYMBOL_FUNC;
484                TOKEN_FUNC (token)        = bp->func;                VALUE_FUNC (token)        = bp->func;
485                TOKEN_HANDLE (token)      = handle;                VALUE_HANDLE (token)      = handle;
486                TOKEN_MIN_ARGS (token)    = bp->min_args;                VALUE_MIN_ARGS (token)    = bp->min_args;
487                TOKEN_MAX_ARGS (token)    = bp->max_args;                VALUE_MAX_ARGS (token)    = bp->max_args;
488    
489                m4_symbol_pushdef (M4SYMTAB, string[0], token);                m4_symbol_pushdef (M4SYMTAB, string[0], token);
490              }              }
# Line 655  reload_frozen_state (m4 *context, const Line 655  reload_frozen_state (m4 *context, const
655    
656          /* Enter a macro having an expansion text as a definition.  */          /* Enter a macro having an expansion text as a definition.  */
657          {          {
658            m4_token *token = XCALLOC (m4_token, 1);            m4_symbol_value *token = XCALLOC (m4_symbol_value, 1);
659            lt_dlhandle handle = 0;            lt_dlhandle handle = 0;
660    
661            if (number[2] > 0)            if (number[2] > 0)
# Line 663  reload_frozen_state (m4 *context, const Line 663  reload_frozen_state (m4 *context, const
663                if (strcmp (m4_get_module_name (handle), string[2]) == 0)                if (strcmp (m4_get_module_name (handle), string[2]) == 0)
664                  break;                  break;
665    
666            TOKEN_TYPE (token)            = M4_TOKEN_TEXT;            VALUE_TYPE (token)            = M4_SYMBOL_TEXT;
667            TOKEN_TEXT (token)            = xstrdup (string[1]);            VALUE_TEXT (token)            = xstrdup (string[1]);
668            TOKEN_HANDLE (token)          = handle;            VALUE_HANDLE (token)          = handle;
669            TOKEN_MAX_ARGS (token)        = -1;            VALUE_MAX_ARGS (token)        = -1;
670    
671            m4_symbol_pushdef (M4SYMTAB, string[0], token);            m4_symbol_pushdef (M4SYMTAB, string[0], token);
672          }          }

Legend:
Removed from v.1.28  
changed lines
  Added in v.1.29

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