/[m4]/m4/m4/m4module.h
ViewVC logotype

Diff of /m4/m4/m4module.h

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

revision 1.49 by gary, Wed Jun 18 16:21:54 2003 UTC revision 1.50 by gary, Thu Jun 19 14:51:04 2003 UTC
# Line 31  BEGIN_C_DECLS Line 31  BEGIN_C_DECLS
31  /* Various declarations.  */  /* Various declarations.  */
32    
33  typedef struct m4               m4;  typedef struct m4               m4;
 typedef struct m4_symbol        m4_symbol;  
 typedef struct m4_symbol_value          m4_symbol_value;  
34  typedef struct m4_hash          m4_symtab;  typedef struct m4_hash          m4_symtab;
35    typedef struct m4_symbol        m4_symbol;
36    typedef struct m4_symbol_value  m4_symbol_value;
37    
38  typedef void m4_builtin_func (m4 *, struct obstack *, int, m4_symbol_value **);  typedef void m4_builtin_func (m4 *, struct obstack *, int, m4_symbol_value **);
39  typedef void *m4_module_func (const char *);  typedef void *m4_module_func (const char *);
40    
41  typedef struct {  typedef struct {
     unsigned char *string;      /* characters of the string */  
     size_t length;              /* length of the string */  
 } m4_string;  
   
 typedef struct {  
42    const char *name;    const char *name;
43    const char *value;    const char *value;
44  } m4_macro;  } m4_macro;
# Line 80  extern const char  *m4_get_module_name Line 74  extern const char  *m4_get_module_name
74  extern m4_builtin  *m4_get_module_builtin_table (lt_dlhandle);  extern m4_builtin  *m4_get_module_builtin_table (lt_dlhandle);
75  extern m4_macro    *m4_get_module_macro_table   (lt_dlhandle);  extern m4_macro    *m4_get_module_macro_table   (lt_dlhandle);
76    
 extern void     m4_set_module_macro_table   (m4 *context, lt_dlhandle handle,  
                                              const m4_macro *table);  
 extern void     m4_set_module_builtin_table (m4 *context, lt_dlhandle handle,  
                                              const m4_builtin *table);  
77    
78    
79  /* --- SYMBOL TABLE MANAGEMENT --- */  /* --- SYMBOL TABLE MANAGEMENT --- */
# Line 110  extern void       m4_symbol_delete  (m4_ Line 100  extern void       m4_symbol_delete  (m4_
100          while (m4_symbol_lookup ((symtab), (name)))                     \          while (m4_symbol_lookup ((symtab), (name)))                     \
101              m4_symbol_popdef ((symtab), (name));        } M4_STMT_END              m4_symbol_popdef ((symtab), (name));        } M4_STMT_END
102    
103  extern void       m4_set_symbol_traced (m4_symtab*, const char *);  extern m4_symbol_value *m4_get_symbol_value       (m4_symbol *symbol);
104    extern boolean          m4_get_symbol_traced      (m4_symbol*);
105    extern boolean          m4_set_symbol_traced      (m4_symbol*, boolean);
106    extern boolean          m4_set_symbol_name_traced (m4_symtab*, const char *);
107  /* The data for a token, a macro argument, and a macro definition.  */  
108  typedef enum {  #define m4_is_symbol_text(symbol)                                       \
109    M4_SYMBOL_VOID,          (m4_is_symbol_value_text (m4_get_symbol_value (symbol)))
110    M4_SYMBOL_TEXT,  #define m4_is_symbol_func(symbol)                                       \
111    M4_SYMBOL_FUNC          (m4_is_symbol_value_func (m4_get_symbol_value (symbol)))
112  } m4_symbol_type;  #define m4_get_symbol_text(symbol)                                      \
113            (m4_get_symbol_value_text (m4_get_symbol_value (symbol)))
114    #define m4_get_symbol_func(symbol)                                      \
115            (m4_get_symbol_value_func (m4_get_symbol_value (symbol)))
116    
117    extern m4_symbol_value *m4_symbol_value_create    (void);
118    extern void             m4_symbol_value_delete    (m4_symbol_value *);
119    extern void             m4_symbol_value_copy      (m4_symbol_value *,
120                                                       m4_symbol_value *);
121    extern boolean          m4_is_symbol_value_text   (m4_symbol_value *);
122    extern boolean          m4_is_symbol_value_func   (m4_symbol_value *);
123    extern char            *m4_get_symbol_value_text  (m4_symbol_value *);
124    extern m4_builtin_func *m4_get_symbol_value_func  (m4_symbol_value *);
125    extern void             m4_set_symbol_value_text  (m4_symbol_value *, char *);
126    extern void             m4_set_symbol_value_func  (m4_symbol_value *,
127                                                       m4_builtin_func *);
128    
129    
130    
# Line 131  extern const m4_builtin *m4_builtin_find Line 135  extern const m4_builtin *m4_builtin_find
135  extern const m4_builtin *m4_builtin_find_by_func (  extern const m4_builtin *m4_builtin_find_by_func (
136                                  const m4_builtin *, m4_builtin_func *);                                  const m4_builtin *, m4_builtin_func *);
137    
 extern m4_symbol_type   m4_get_symbol_value_type (m4_symbol_value *);  
 extern char            *m4_get_symbol_value_text (m4_symbol_value *);  
 extern m4_builtin_func *m4_get_symbol_value_func (m4_symbol_value *);  
   
138  #define M4ARG(i)        (argc > (i) ? m4_get_symbol_value_text (argv[i]) : "")  #define M4ARG(i)        (argc > (i) ? m4_get_symbol_value_text (argv[i]) : "")
139    
140  #define M4BUILTIN(name)                                         \  #define M4BUILTIN(name)                                         \
# Line 188  extern int nesting_limit;              /* -L */ Line 188  extern int nesting_limit;              /* -L */
188  extern int discard_comments;            /* -c */  extern int discard_comments;            /* -c */
189    
190  /* left and right quote, begin and end comment */  /* left and right quote, begin and end comment */
191    typedef struct {
192        unsigned char *string;      /* characters of the string */
193        size_t length;              /* length of the string */
194    } m4_string;
195    
196  extern m4_string lquote;  extern m4_string lquote;
197  extern m4_string rquote;  extern m4_string rquote;
198    
# Line 401  extern int m4_current_line; Line 406  extern int m4_current_line;
406  extern  void    m4_input_init   (void);  extern  void    m4_input_init   (void);
407  extern  void    m4_input_exit   (void);  extern  void    m4_input_exit   (void);
408  extern  int     m4_peek_input   (void);  extern  int     m4_peek_input   (void);
 extern  void    m4_symbol_value_copy    (m4_symbol_value *dest, m4_symbol_value *src);  
409  extern  void    m4_skip_line    (void);  extern  void    m4_skip_line    (void);
410    
411  /* push back input */  /* push back input */

Legend:
Removed from v.1.49  
changed lines
  Added in v.1.50

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