FML can be called from the outside multiple times by the functions:
[egate.git] / fml / fml.h
1 /*
2  * FML interpreter. Europagate, 1995
3  *
4  * $Log: fml.h,v $
5  * Revision 1.2  1995/02/09 16:06:06  adam
6  * FML can be called from the outside multiple times by the functions:
7  * fml_exec_call and fml_exec_call_str.
8  * An interactive parameter (-i) to fmltest starts a shell-like
9  * interface to FML by using the fml_exec_call_str function.
10  *
11  * Revision 1.1.1.1  1995/02/06  13:48:10  adam
12  * First version of the FML interpreter. It's slow and memory isn't
13  * freed properly. In particular, the FML nodes aren't released yet.
14  *
15  */
16
17 typedef struct Fml_record {
18     struct fml_node *list;
19     struct fml_sym_tab *sym_tab;
20
21     struct fml_atom *atom_free_list;
22     struct fml_node *node_free_list;
23
24     int escape_char;
25     int eof_mark;
26     char *white_chars;
27     char comment_char;
28     int (*read_func)(void);
29     void (*err_handle)(int no);
30
31     int debug;
32 } *Fml;
33
34 Fml fml_open (void);
35 int fml_preprocess (Fml fml);
36
37 void fml_exec (Fml fml);
38 void fml_exec_call (Fml fml);
39 void fml_exec_call_str (Fml fml, const char *str);
40
41 #define FML_ERR_NOMEM 1
42