5 #define CMcmt 1 /* in comment */
\r
6 #define CMstr 2 /* in string */
\r
7 #define CMchr 3 /* in character constant */
\r
8 #define CMang 4 /* in < > */
\r
11 #define skipall(a) while(*(a)) ++a;
\r
12 #define skipfws(a) while(*(a) && isspace(*(a))) ++a;
\r
13 #define skipbws(a) while(*(a) && isspace(*(a))) --a;
\r
14 #define skip2char(a,b) while(*(a) && *(a) != b) ++a;
\r
15 #define skipnws(a) while(*(a) && !isspace(*(a))) ++a;
\r
20 char * process2(char * line,int bot,int top);
\r
21 int cpp_parse(char *s);
\r
22 void pre_error(char *msg, ...);
\r
23 int ismacroid(char *id);
\r
24 int showMacro(char *id);
\r
26 typedef struct fitem_t{
\r
27 int fd; /* file descriptor */
\r
28 char * fname; /* file name */
\r
29 unsigned int lineno; /* file lineno */
\r
30 unsigned char * buf; /* file buffer */
\r
31 unsigned char * bufp; /* file buffer pointer */
\r
32 int n; /* number of chars left in buffer */
\r
33 struct fitem_t * next;
\r
36 extern fitem_t *Infile;
\r
38 #define CurrentFileName() Infile->fname
\r
39 #define CurrentLineNo() Infile->lineno
\r
45 char * nextproline(void);
\r