1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23: extern char *input_line_pointer;
24:
25:
26:
27:
28:
29: #define PERMIT_WHITESPACE
30:
31: #ifdef PERMIT_WHITESPACE
32: #define SKIP_WHITESPACE() \
33: ((*input_line_pointer == ' ') ? ++input_line_pointer : 0)
34: #else
35: #define SKIP_WHITESPACE() know(*input_line_pointer != ' ' )
36: #endif
37:
38: #define LEX_NAME (1)
39: #define LEX_BEGIN_NAME (2)
40: #define LEX_END_NAME (4)
41:
42: #define is_name_beginner(c) \
43: ( lex_type[(unsigned char) (c)] & LEX_BEGIN_NAME )
44: #define is_part_of_name(c) \
45: ( lex_type[(unsigned char) (c)] & LEX_NAME )
46: #define is_name_ender(c) \
47: ( lex_type[(unsigned char) (c)] & LEX_END_NAME )
48:
49: #ifndef is_a_char
50: #define CHAR_MASK (0xff)
51: #define NOT_A_CHAR (CHAR_MASK+1)
52: #define is_a_char(c) (((unsigned) (c)) <= CHAR_MASK)
53: #endif
54:
55: extern char lex_type[];
56: extern char is_end_of_line[];
57:
58: extern int is_it_end_of_statement (void);
59: extern char *find_end_of_line (char *, int);
60:
61: extern int target_big_endian;
62:
63:
64: extern const char comment_chars[];
65: extern const char line_comment_chars[];
66: extern const char line_separator_chars[];
67:
68:
69: extern char **include_dirs;
70: extern int include_dir_count;
71: extern int include_dir_maxlen;
72:
73:
74: extern addressT abs_section_offset;
75:
76:
77: extern symbolS *line_label;
78:
79:
80: extern symbolS *mri_common_symbol;
81:
82:
83: extern int outputting_stabs_line_debug;
84:
85:
86: enum linkonce_type {
87: LINKONCE_UNSET = 0,
88: LINKONCE_DISCARD,
89: LINKONCE_ONE_ONLY,
90: LINKONCE_SAME_SIZE,
91: LINKONCE_SAME_CONTENTS
92: };
93:
94: #ifndef TC_CASE_SENSITIVE
95: extern char original_case_string[];
96: #endif
97:
98: extern void pop_insert (const pseudo_typeS *);
99: extern unsigned int get_stab_string_offset
100: (const char *string, const char *stabstr_secname);
101: extern void aout_process_stab (int, const char *, int, int, int);
102: extern char *demand_copy_string (int *lenP);
103: extern char *demand_copy_C_string (int *len_pointer);
104: extern char get_absolute_expression_and_terminator (long *val_pointer);
105: extern offsetT get_absolute_expression (void);
106: extern unsigned int next_char_of_string (void);
107: extern void s_mri_sect (char *);
108: extern char *mri_comment_field (char *);
109: extern void mri_comment_end (char *, int);
110: extern void add_include_dir (char *path);
111: extern void cons (int nbytes);
112: extern void demand_empty_rest_of_line (void);
113: extern void emit_expr (expressionS *exp, unsigned int nbytes);
114: extern void equals (char *sym_name, int reassign);
115: extern void float_cons (int float_type);
116: extern void ignore_rest_of_line (void);
117: #define discard_rest_of_line ignore_rest_of_line
118: extern int output_leb128 (char *, valueT, int sign);
119: extern void pseudo_set (symbolS * symbolP);
120: extern void read_a_source_file (char *name);
121: extern void read_begin (void);
122: extern void read_print_statistics (FILE *);
123: extern int sizeof_leb128 (valueT, int sign);
124: extern void stabs_generate_asm_file (void);
125: extern void stabs_generate_asm_lineno (void);
126: extern void stabs_generate_asm_func (const char *, const char *);
127: extern void stabs_generate_asm_endfunc (const char *, const char *);
128: extern void do_repeat (int,const char *,const char *);
129: extern void end_repeat (int);
130: extern void do_parse_cons_expression (expressionS *, int);
131:
132: extern void generate_lineno_debug (void);
133:
134: extern void s_abort (int) ATTRIBUTE_NORETURN;
135: extern void s_align_bytes (int arg);
136: extern void s_align_ptwo (int);
137: extern void bss_alloc (symbolS *, addressT, int);
138: extern offsetT parse_align (int);
139: extern symbolS *s_comm_internal (int, symbolS *(*) (int, symbolS *, addressT));
140: extern symbolS *s_lcomm_internal (int, symbolS *, addressT);
141: extern void s_app_file_string (char *, int);
142: extern void s_app_file (int);
143: extern void s_app_line (int);
144: extern void s_comm (int);
145: extern void s_data (int);
146: extern void s_desc (int);
147: extern void s_else (int arg);
148: extern void s_elseif (int arg);
149: extern void s_end (int arg);
150: extern void s_endif (int arg);
151: extern void s_err (int);
152: extern void s_errwarn (int);
153: extern void s_fail (int);
154: extern void s_fill (int);
155: extern void s_float_space (int mult);
156: extern void s_func (int);
157: extern void s_globl (int arg);
158: extern void s_if (int arg);
159: extern void s_ifb (int arg);
160: extern void s_ifc (int arg);
161: extern void s_ifdef (int arg);
162: extern void s_ifeqs (int arg);
163: extern void s_ignore (int arg);
164: extern void s_include (int arg);
165: extern void s_irp (int arg);
166: extern void s_lcomm (int needs_align);
167: extern void s_lcomm_bytes (int needs_align);
168: extern void s_leb128 (int sign);
169: extern void s_linkonce (int);
170: extern void s_lsym (int);
171: extern void s_macro (int);
172: extern void s_mexit (int);
173: extern void s_mri (int);
174: extern void s_mri_common (int);
175: extern void s_org (int);
176: extern void s_print (int);
177: extern void s_purgem (int);
178: extern void s_rept (int);
179: extern void s_set (int);
180: extern void s_space (int mult);
181: extern void s_stab (int what);
182: extern void s_struct (int);
183: extern void s_text (int);
184: extern void stringer (int append_zero);
185: extern void s_xstab (int what);
186: extern void s_rva (int);
187: extern void s_incbin (int);
188: extern void s_vendor_attribute (int);
189: extern void s_weakref (int);