1 /* web2c.h: general includes for the Web2c program itself. Public domain. */
3 #include <w2c/config.h>
9 #define max(a,b) ((a>b)?a:b)
13 extern int last_brace
;
14 extern int block_level
;
18 extern char safe_string
[80];
19 extern char var_list
[200];
20 extern char field_list
[200];
21 extern char last_id
[80];
23 extern char next_temp
[];
25 extern long last_i_num
;
27 extern long lower_bound
, upper_bound
;
31 /* A symbol table entry. */
33 char *id
; /* points to the identifier */
34 int typ
; /* token type */
35 int next
; /* next symbol entry */
36 long val
; /* constant : value
37 subrange type : lower bound */
38 long upper
; /* subrange type : upper bound
39 variable, function, type or field : type length */
40 int val_sym
, upper_sym
; /* Sym table entries of symbols for lower
43 boolean var_formal
; /* Is this a formal parameter by reference? */
44 boolean var_not_needed
;
45 /* True if VAR token should be ignored for this type */
48 extern char strings
[];
49 extern int hash_list
[];
51 extern struct sym_entry sym_table
[];
52 extern int next_sym_free
, next_string_free
;
53 extern int mark_sym_free
, mark_string_free
;
55 extern void find_next_temp (void);
56 extern void normal (void);
57 extern void new_line (void);
58 extern void my_output (const_string
);
59 extern void semicolon (void);
60 extern void remove_locals (void);
61 extern void mark (void);
62 extern void initialize (void);
63 extern int add_to_table (string
);
64 extern int search_table (const_string
);
65 extern int yyerror (const_string
);
67 extern void get_string_literal (char*);
68 extern void get_single_char (char*);
69 extern void get_result_type (char*);
70 extern void get_return_type (char*);
72 extern int yylex(void), yyparse(void);