|
|
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_file_input () 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_file_input PROTO ((FILE * _file, CONST char * _name,
48: int _comment));
49: input_t * make_string_input PROTO ((CONST unsigned char * _str,
50: int _copy));
51:
52: EXTERN_C_END
53:
54: #endif /* ! defined (MKINPUT_H) */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.