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

Diff of /m4/m4/symtab.c

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

revision 1.29 by gary, Tue May 28 21:46:37 2002 UTC revision 1.30 by gary, Thu Jun 5 16:12:16 2003 UTC
# Line 270  m4_symbol_delete (const char *name) Line 270  m4_symbol_delete (const char *name)
270     arguments.  This function is usually passed a newly pushdef()d symbol     arguments.  This function is usually passed a newly pushdef()d symbol
271     that is already interned in the symbol table.  The traced bit should     that is already interned in the symbol table.  The traced bit should
272     be appropriately set by the caller.  */     be appropriately set by the caller.  */
273  void  m4_symbol *
274  m4_symbol_builtin (m4_symbol *symbol, lt_dlhandle handle,  m4_symbol_builtin (m4_symbol *symbol, m4_token *token)
                    m4_builtin_func *func, int flags,  
                    int min_args, int max_args)  
275  {  {
276    assert (symbol);    assert (symbol);
277    assert (handle);    assert (token);
278    assert (func);    assert (TOKEN_FUNC (token));
279      assert (TOKEN_HANDLE (token));
280      assert (TOKEN_TYPE (token) == M4_TOKEN_FUNC);
281    
282    if (SYMBOL_TYPE (symbol) == M4_TOKEN_TEXT)    if (SYMBOL_TYPE (symbol) == M4_TOKEN_TEXT)
283      xfree (SYMBOL_TEXT (symbol));      xfree (SYMBOL_TEXT (symbol));
284    
285    SYMBOL_TYPE (symbol)          = M4_TOKEN_FUNC;    SYMBOL_TYPE (symbol)          = TOKEN_TYPE (token);
286    SYMBOL_FUNC (symbol)          = func;    SYMBOL_FUNC (symbol)          = TOKEN_FUNC (token);
287    SYMBOL_HANDLE (symbol)        = handle;    SYMBOL_HANDLE (symbol)        = TOKEN_HANDLE (token);
288    SYMBOL_FLAGS (symbol)         = flags;    SYMBOL_FLAGS (symbol)         = TOKEN_FLAGS (token);
289    SYMBOL_MIN_ARGS (symbol)      = min_args;    SYMBOL_ARG_SIGNATURE (symbol) = TOKEN_ARG_SIGNATURE (token);
290    SYMBOL_MAX_ARGS (symbol)      = max_args;    SYMBOL_MIN_ARGS (symbol)      = TOKEN_MIN_ARGS (token);
291      SYMBOL_MAX_ARGS (symbol)      = TOKEN_MAX_ARGS (token);
292    
293      return symbol;
294  }  }
295    
296  /* ...and similarly for macro valued symbols.  */  /* ...and similarly for macro valued symbols.  */
297  void  m4_symbol *
298  m4_symbol_macro (m4_symbol *symbol, lt_dlhandle handle,  m4_symbol_macro (m4_symbol *symbol, m4_token *token)
                  const char *text, int flags, int min_args, int max_args)  
299  {  {
300    assert (symbol);    assert (symbol);
301      assert (TOKEN_TEXT (token));
302      assert (TOKEN_TYPE (token) == M4_TOKEN_TEXT);
303    
304    if (SYMBOL_TYPE (symbol) == M4_TOKEN_TEXT)    if (SYMBOL_TYPE (symbol) == M4_TOKEN_TEXT)
305      xfree (SYMBOL_TEXT (symbol));      xfree (SYMBOL_TEXT (symbol));
306    
307    SYMBOL_TYPE (symbol)          = M4_TOKEN_TEXT;    SYMBOL_TYPE (symbol)          = TOKEN_TYPE (token);
308    SYMBOL_TEXT (symbol)          = xstrdup (text);    SYMBOL_TEXT (symbol)          = xstrdup (TOKEN_TEXT (token));
309    SYMBOL_HANDLE (symbol)        = handle;    SYMBOL_HANDLE (symbol)        = TOKEN_HANDLE (token);
310    SYMBOL_FLAGS (symbol)         = flags;    SYMBOL_FLAGS (symbol)         = TOKEN_FLAGS (token);
311    SYMBOL_MIN_ARGS (symbol)      = min_args;    SYMBOL_ARG_SIGNATURE (symbol) = TOKEN_ARG_SIGNATURE (token);
312    SYMBOL_MAX_ARGS (symbol)      = max_args;    SYMBOL_MIN_ARGS (symbol)      = TOKEN_MIN_ARGS (token);
313      SYMBOL_MAX_ARGS (symbol)      = TOKEN_MAX_ARGS (token);
314    
315      return symbol;
316  }  }
317    
318    

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

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