|
|
1.1 root 1: #ifndef MKINPUT_H
2: #define MKINPUT_H
3:
4: /*
5: *-IMPORTS:
6: * <sys/compat.h>
7: * EXTERN_C_BEGIN
8: * EXTERN_C_END
9: * CONST
10: * VOID
11: * PROTO ()
12: * <stdio.h>
13: * FILE
14: */
15:
16: #include <sys/compat.h>
17: #include <stdio.h>
18:
19:
20: /*
21: * Structure of an input source.
22: */
23:
24: #ifndef INPUT_T
25: #define INPUT_T
26: typedef struct input input_t;
27: #endif
28:
29: /*
30: * Pass this rather than a character to make_filter () if you don't want
31: * support for commentary in input text. Comments in file input simply throw
32: * away all text from the comment character (which may appear anywhere) to the
33: * end of the line. It's just a hack, but handy nonetheless, since sometimes
34: * adding comment facilities to an ad-hoc input grammar properly would just
35: * be over the top... now, I *really* want an LL(1) parser generator, but
36: * without one I'd rather hand-code than use YACC, which bites when you have
37: * a lot of little grammars.
38: */
39:
40: enum {
41: NO_COMMENT = -1
42: };
43:
44:
45: EXTERN_C_BEGIN
46:
47: input_t * make_filter PROTO ((FILE * _infile, CONST char * _inname,
48: int _inclose, int _comment,
49: FILE * _outfile, int _outclose));
50: input_t * make_string_input PROTO ((CONST unsigned char * _str,
51: int _copy));
52:
53: EXTERN_C_END
54:
55: #endif /* ! defined (MKINPUT_H) */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.