* added compilers lcc and bcc (linux86)
[mascara-docs.git] / compilers / linux86-0.16.17 / cpp / cc.h
blob9c298e71c6ee05ab57d4001c00a87f91468e8ac3
2 #ifndef P
3 #if __STDC__
4 #define P(x) x
5 #else
6 #define P(x) ()
7 #endif
8 #endif
10 extern void cfatal P((char*));
11 extern void cerror P((char*));
12 extern void cwarn P((char*));
13 extern FILE * open_include P((char*, char*, int));
15 extern FILE * curfile;
16 extern char curword[];
17 extern char * c_fname;
18 extern int c_lineno;
19 extern int alltok;
20 extern int dialect;
22 #define DI_KNR 1
23 #define DI_ANSI 2
25 extern int gettok P((void));
27 struct token_trans { char * name; int token; };
28 struct token_trans * is_ctok P((const char *str, unsigned int len));
29 struct token_trans * is_ckey P((const char *str, unsigned int len));
31 #define WORDSIZE 128
32 #define TK_WSPACE 256
33 #define TK_WORD 257
34 #define TK_NUM 258
35 #define TK_FLT 259
36 #define TK_QUOT 260
37 #define TK_STR 261
38 #define TK_FILE 262
39 #define TK_LINE 263
40 #define TK_COPY 264
42 #define TKS_CTOK 0x200
43 #define TKS_CKEY 0x300
45 #define TK_NE_OP (TKS_CTOK+ 0)
46 #define TK_MOD_ASSIGN (TKS_CTOK+ 1)
47 #define TK_AND_OP (TKS_CTOK+ 2)
48 #define TK_AND_ASSIGN (TKS_CTOK+ 3)
49 #define TK_MUL_ASSIGN (TKS_CTOK+ 4)
50 #define TK_INC_OP (TKS_CTOK+ 5)
51 #define TK_ADD_ASSIGN (TKS_CTOK+ 6)
52 #define TK_DEC_OP (TKS_CTOK+ 7)
53 #define TK_SUB_ASSIGN (TKS_CTOK+ 8)
54 #define TK_PTR_OP (TKS_CTOK+ 9)
55 #define TK_ELLIPSIS (TKS_CTOK+10)
56 #define TK_DIV_ASSIGN (TKS_CTOK+11)
57 #define TK_LEFT_OP (TKS_CTOK+12)
58 #define TK_LEFT_ASSIGN (TKS_CTOK+13)
59 #define TK_LE_OP (TKS_CTOK+14)
60 #define TK_EQ_OP (TKS_CTOK+15)
61 #define TK_GE_OP (TKS_CTOK+16)
62 #define TK_RIGHT_OP (TKS_CTOK+17)
63 #define TK_RIGHT_ASSIGN (TKS_CTOK+18)
64 #define TK_XOR_ASSIGN (TKS_CTOK+19)
65 #define TK_OR_ASSIGN (TKS_CTOK+20)
66 #define TK_OR_OP (TKS_CTOK+21)
68 #define TK_AUTO (TKS_CKEY+ 0)
69 #define TK_BREAK (TKS_CKEY+ 1)
70 #define TK_CASE (TKS_CKEY+ 2)
71 #define TK_CHAR (TKS_CKEY+ 3)
72 #define TK_CONST (TKS_CKEY+ 4)
73 #define TK_CONTINUE (TKS_CKEY+ 5)
74 #define TK_DEFAULT (TKS_CKEY+ 6)
75 #define TK_DO (TKS_CKEY+ 7)
76 #define TK_DOUBLE (TKS_CKEY+ 8)
77 #define TK_ELSE (TKS_CKEY+ 9)
78 #define TK_ENUM (TKS_CKEY+10)
79 #define TK_EXTERN (TKS_CKEY+11)
80 #define TK_FLOAT (TKS_CKEY+12)
81 #define TK_FOR (TKS_CKEY+13)
82 #define TK_GOTO (TKS_CKEY+14)
83 #define TK_IF (TKS_CKEY+15)
84 #define TK_INT (TKS_CKEY+16)
85 #define TK_LONG (TKS_CKEY+17)
86 #define TK_REGISTER (TKS_CKEY+18)
87 #define TK_RETURN (TKS_CKEY+19)
88 #define TK_SHORT (TKS_CKEY+20)
89 #define TK_SIGNED (TKS_CKEY+21)
90 #define TK_SIZEOF (TKS_CKEY+22)
91 #define TK_STATIC (TKS_CKEY+23)
92 #define TK_STRUCT (TKS_CKEY+24)
93 #define TK_SWITCH (TKS_CKEY+25)
94 #define TK_TYPEDEF (TKS_CKEY+26)
95 #define TK_UNION (TKS_CKEY+27)
96 #define TK_UNSIGNED (TKS_CKEY+28)
97 #define TK_VOID (TKS_CKEY+29)
98 #define TK_VOLATILE (TKS_CKEY+30)
99 #define TK_WHILE (TKS_CKEY+31)
101 #define MAX_INCLUDE 64 /* Nested includes */
102 #define MAX_DEFINE 64 /* Nested defines */
104 extern char * set_entry P((int,char*,void*));
105 extern void * read_entry P((int,char*));
107 struct define_item
109 struct define_arg * next;
110 char * name;
111 int arg_count; /* -1 = none; >=0 = brackets with N args */
112 int in_use; /* Skip this one for looking up #defines */
113 int varargs; /* No warning if unexpected arguments. */
114 char value[1]; /* [arg,]*value */