/[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.28 by gary, Sat Sep 8 02:36:47 2001 UTC revision 1.29 by gary, Thu Sep 20 03:48:05 2001 UTC
# Line 32  BEGIN_C_DECLS Line 32  BEGIN_C_DECLS
32    
33  typedef struct m4_symbol m4_symbol;  typedef struct m4_symbol m4_symbol;
34  typedef struct m4_module_data m4_module_data;  typedef struct m4_module_data m4_module_data;
 typedef struct m4_token_data m4_token_data;  
35    
36  typedef void m4_builtin_func (struct obstack *, int, struct m4_token_data **);  typedef void m4_builtin_func (struct obstack *, int, struct m4_symbol **);
37  typedef void *m4_module_func (const char *);  typedef void *m4_module_func (const char *);
38  typedef int m4_symtab_apply_func (const char *name, m4_symbol *symbol, void *data);  typedef int m4_symtab_apply_func (const char *name, m4_symbol *symbol, void *data);
39    
# Line 56  typedef struct { Line 55  typedef struct {
55  } m4_builtin;  } m4_builtin;
56    
57    
58  extern void         m4_module_init   (void);  extern void         m4_module_init      (void);
59  extern lt_dlhandle  m4_module_load   (const char*, struct obstack*);  extern lt_dlhandle  m4_module_load      (const char*, struct obstack*);
60  extern void         m4_module_unload (const char*, struct obstack*);  extern void         m4_module_unload    (const char*, struct obstack*);
61  extern lt_dlhandle  m4_module_open   (const char*, struct obstack*);  extern void         m4_module_unload_all (void);
62  extern void         m4_module_close  (lt_dlhandle, struct obstack*);  extern lt_dlhandle  m4_module_open      (const char*, struct obstack*);
63  extern void         m4_module_close_all (struct obstack*);  extern void         m4_module_close     (lt_dlhandle, struct obstack*);
64    extern void         m4_module_close_all (struct obstack*);
65    
66  extern const char  *m4_module_name     (lt_dlhandle);  extern const char  *m4_module_name     (lt_dlhandle);
67  extern m4_builtin  *m4_module_builtins (lt_dlhandle);  extern m4_builtin  *m4_module_builtins (lt_dlhandle);
# Line 94  extern m4_hash *m4_symtab; Line 94  extern m4_hash *m4_symtab;
94  extern void     m4_symtab_init          (void);  extern void     m4_symtab_init          (void);
95  extern int      m4_symtab_apply         (m4_symtab_apply_func *, void *);  extern int      m4_symtab_apply         (m4_symtab_apply_func *, void *);
96  extern void     m4_symtab_remove_module_references (lt_dlhandle);  extern void     m4_symtab_remove_module_references (lt_dlhandle);
97    extern void     m4_symtab_exit          (void);
98    
99  extern m4_symbol *m4_symbol_lookup      (const char *);  extern m4_symbol *m4_symbol_lookup      (const char *);
100  extern m4_symbol *m4_symbol_pushdef     (const char *);  extern m4_symbol *m4_symbol_pushdef     (const char *);
# Line 127  typedef enum { Line 128  typedef enum {
128  typedef void m4_module_init_func   (lt_dlhandle, struct obstack*);  typedef void m4_module_init_func   (lt_dlhandle, struct obstack*);
129  typedef void m4_module_finish_func (lt_dlhandle, struct obstack*);  typedef void m4_module_finish_func (lt_dlhandle, struct obstack*);
130    
131  extern m4_token_data_t  m4_token_data_type        (m4_token_data*);  extern m4_token_data_t  m4_symbol_type    (m4_symbol*);
132  extern char            *m4_token_data_text        (m4_token_data*);  extern char            *m4_symbol_text    (m4_symbol*);
133  extern m4_builtin_func *m4_token_data_func        (m4_token_data*);  extern m4_builtin_func *m4_symbol_func    (m4_symbol*);
134    
135    
136  #define M4ARG(i)        (argc > (i) ? m4_token_data_text (argv[i]) : "")  #define M4ARG(i)        (argc > (i) ? m4_symbol_text (argv[i]) : "")
137    
138  #define M4BUILTIN(name)                                         \  #define M4BUILTIN(name)                                         \
139    static void CONC(builtin_, name)                              \    static void CONC(builtin_, name)                              \
140          (struct obstack *, int , m4_token_data **);          (struct obstack *, int , m4_symbol **);
141    
142  #define M4BUILTIN_HANDLER(name)                                 \  #define M4BUILTIN_HANDLER(name)                                 \
143    static void CONC(builtin_, name) (obs, argc, argv)            \    static void CONC(builtin_, name) (obs, argc, argv)            \
144          struct obstack *obs; int argc; m4_token_data **argv;          struct obstack *obs; int argc; m4_symbol **argv;
145    
146  #define M4INIT_HANDLER(name)                                    \  #define M4INIT_HANDLER(name)                                    \
147    void CONC(name, CONC(_LTX_, m4_init_module))                  \    void CONC(name, CONC(_LTX_, m4_init_module))                  \
# Line 192  m4_string ecomm; Line 193  m4_string ecomm;
193  #define DEF_BCOMM "#"  #define DEF_BCOMM "#"
194  #define DEF_ECOMM "\n"  #define DEF_ECOMM "\n"
195    
196  boolean m4_bad_argc (m4_token_data *, int, int, int);  boolean m4_bad_argc (m4_symbol *, int, int, int);
197  const char *m4_skip_space (const char *);  const char *m4_skip_space (const char *);
198  boolean m4_numeric_arg (m4_token_data *, const char *, int *);  boolean m4_numeric_arg (m4_symbol *, const char *, int *);
199  void m4_shipout_int (struct obstack *, int);  void m4_shipout_int (struct obstack *, int);
200  void m4_shipout_string (struct obstack*, const char*, int, boolean);  void m4_shipout_string (struct obstack*, const char*, int, boolean);
201  void m4_dump_args (struct obstack *obs, int argc, m4_token_data **argv, const char *sep, boolean quoted);  void m4_dump_args (struct obstack *obs, int argc, m4_symbol **argv, const char *sep, boolean quoted);
202    
203    
204  FILE *m4_debug;  FILE *m4_debug;
# Line 291  FILE *m4_debug; Line 292  FILE *m4_debug;
292    while (0)    while (0)
293    
294  void m4_debug_init (void);  void m4_debug_init (void);
295    void m4_debug_exit (void);
296  int m4_debug_decode (const char *);  int m4_debug_decode (const char *);
297  void m4_debug_flush_files (void);  void m4_debug_flush_files (void);
298  boolean m4_debug_set_output (const char *);  boolean m4_debug_set_output (const char *);
299  void m4_debug_message_prefix (void);  void m4_debug_message_prefix (void);
300    
301  void m4_trace_prepre (const char *, int);  void m4_trace_prepre (const char *, int);
302  void m4_trace_pre (const char *, int, int, m4_token_data **);  void m4_trace_pre (const char *, int, int, m4_symbol **);
303  void m4_trace_post (const char *, int, int, m4_token_data **,  void m4_trace_post (const char *, int, int, m4_symbol **,
304                             const char *);                             const char *);
305    
306  /* Exit code from last "syscmd" command.  */  /* Exit code from last "syscmd" command.  */
# Line 307  int m4_expansion_level; Line 309  int m4_expansion_level;
309    
310  const char *m4_expand_ranges (const char *s, struct obstack *obs);  const char *m4_expand_ranges (const char *s, struct obstack *obs);
311  void m4_expand_input (void);  void m4_expand_input (void);
312  void m4_call_macro (m4_symbol *, int, m4_token_data **, struct obstack *);  void m4_call_macro (m4_symbol *, int, m4_symbol **, struct obstack *);
313  void m4_process_macro (struct obstack *obs, m4_symbol *symbol, int argc, m4_token_data **argv);  void m4_process_macro (struct obstack *obs, m4_symbol *symbol, int argc, m4_symbol **argv);
314    
315    
316    
# Line 375  int m4_current_line; Line 377  int m4_current_line;
377    
378  extern  int     m4_syntax_code  (char ch);  extern  int     m4_syntax_code  (char ch);
379  extern  void    m4_input_init   (void);  extern  void    m4_input_init   (void);
380    extern  void    m4_input_exit   (void);
381  extern  void    m4_syntax_init  (void);  extern  void    m4_syntax_init  (void);
382  extern  int     m4_peek_input   (void);  extern  int     m4_peek_input   (void);
383  extern  m4_token_t m4_next_token (m4_token_data *);  extern  m4_token_t m4_next_token (m4_symbol *);
384  extern  void    m4_skip_line    (void);  extern  void    m4_skip_line    (void);
385    
386  /* push back input */  /* push back input */
# Line 399  int m4_current_diversion; Line 402  int m4_current_diversion;
402  int m4_output_current_line;  int m4_output_current_line;
403    
404  extern  void    m4_output_init  (void);  extern  void    m4_output_init  (void);
405    extern  void    m4_output_exit  (void);
406  extern  void    m4_shipout_text (struct obstack *, const char *, int);  extern  void    m4_shipout_text (struct obstack *, const char *, int);
407  extern  void    m4_make_diversion (int);  extern  void    m4_make_diversion (int);
408  extern  void    m4_insert_diversion (int);  extern  void    m4_insert_diversion (int);
# Line 445  struct m4_dump_symbol_data Line 449  struct m4_dump_symbol_data
449  };  };
450    
451  extern int m4_dump_symbol (const char *name, m4_symbol *symbol, void *data);  extern int m4_dump_symbol (const char *name, m4_symbol *symbol, void *data);
452  extern void m4_dump_symbols (struct m4_dump_symbol_data *data, int argc, m4_token_data **argv, boolean complain);  extern void m4_dump_symbols (struct m4_dump_symbol_data *data, int argc, m4_symbol **argv, boolean complain);
453    
454    
455    
# Line 457  typedef boolean (*m4_eval_func) (struct Line 461  typedef boolean (*m4_eval_func) (struct
461    
462  extern boolean m4_evaluate (struct obstack *obs,  extern boolean m4_evaluate (struct obstack *obs,
463                                        const char *, const int radix, int min);                                        const char *, const int radix, int min);
464  extern void m4_do_eval (struct obstack *obs, int argc, m4_token_data **argv, m4_eval_func func);  extern void m4_do_eval (struct obstack *obs, int argc, m4_symbol **argv, m4_eval_func func);
465    
466  #define obstack_chunk_alloc     xmalloc  #define obstack_chunk_alloc     xmalloc
467  #define obstack_chunk_free      xfree  #define obstack_chunk_free      xfree

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