Updated Serbian translation for the bfd sub-directory
[binutils-gdb.git] / gas / read.h
blobd07cec359da7b44c6e678f7dc0b86f8d49839d2f
1 /* read.h - of read.c
2 Copyright (C) 1986-2024 Free Software Foundation, Inc.
4 This file is part of GAS, the GNU Assembler.
6 GAS is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3, or (at your option)
9 any later version.
11 GAS is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GAS; see the file COPYING. If not, write to the Free
18 Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
19 02110-1301, USA. */
21 extern char *input_line_pointer; /* -> char we are parsing now. */
22 extern bool input_from_string;
24 /* Define to make whitespace be allowed in many syntactically
25 unnecessary places. Normally undefined. For compatibility with
26 ancient GNU cc. */
27 /* #undef PERMIT_WHITESPACE */
28 #define PERMIT_WHITESPACE
30 #ifdef PERMIT_WHITESPACE
31 #define SKIP_WHITESPACE() \
32 ((*input_line_pointer == ' ') ? ++input_line_pointer : 0)
33 #define SKIP_ALL_WHITESPACE() \
34 while (*input_line_pointer == ' ') ++input_line_pointer
35 #else
36 #define SKIP_WHITESPACE() know (*input_line_pointer != ' ' )
37 #define SKIP_ALL_WHITESPACE() SKIP_WHITESPACE()
38 #endif
40 #define LEX_NAME (1) /* may continue a name */
41 #define LEX_BEGIN_NAME (2) /* may begin a name */
42 #define LEX_END_NAME (4) /* ends a name */
44 #define is_name_beginner(c) \
45 ( lex_type[(unsigned char) (c)] & LEX_BEGIN_NAME )
46 #define is_part_of_name(c) \
47 ( lex_type[(unsigned char) (c)] & LEX_NAME )
48 #define is_name_ender(c) \
49 ( lex_type[(unsigned char) (c)] & LEX_END_NAME )
51 /* The distinction of "line" and "statement" sadly is blurred by unhelpful
52 naming of e.g. the underlying array. Most users really mean "end of
53 statement". Going forward only these wrappers are supposed to be used. */
54 #define is_end_of_stmt(c) \
55 (is_end_of_line[(unsigned char) (c)])
56 #define is_end_of_line(c) \
57 (is_end_of_line[(unsigned char) (c)] == 1)
59 #ifndef is_a_char
60 #define CHAR_MASK (0xff)
61 #define NOT_A_CHAR (CHAR_MASK+1)
62 #define is_a_char(c) (((unsigned) (c)) <= CHAR_MASK)
63 #endif /* is_a_char() */
65 extern char lex_type[];
66 extern char is_end_of_line[];
68 extern int is_it_end_of_statement (void);
69 extern char *find_end_of_line (char *, int);
71 extern int target_big_endian;
73 /* These are initialized by the CPU specific target files (tc-*.c). */
74 extern const char comment_chars[];
75 extern const char line_comment_chars[];
76 extern const char line_separator_chars[];
78 /* Table of -I directories. */
79 extern const char **include_dirs;
80 extern size_t include_dir_count;
81 extern size_t include_dir_maxlen;
83 /* The offset in the absolute section. */
84 extern addressT abs_section_offset;
86 /* The label on a line, used by some of the pseudo-ops. */
87 extern symbolS *line_label;
89 /* This is used to support MRI common sections. */
90 extern symbolS *mri_common_symbol;
92 /* True if a stabs line debug statement is currently being emitted. */
93 extern int outputting_stabs_line_debug;
95 /* Possible arguments to .linkonce. */
96 enum linkonce_type {
97 LINKONCE_UNSET = 0,
98 LINKONCE_DISCARD,
99 LINKONCE_ONE_ONLY,
100 LINKONCE_SAME_SIZE,
101 LINKONCE_SAME_CONTENTS
104 #ifndef TC_CASE_SENSITIVE
105 extern char original_case_string[];
106 #endif
108 #ifndef TC_PARSE_CONS_RETURN_TYPE
109 #define TC_PARSE_CONS_RETURN_TYPE bfd_reloc_code_real_type
110 #define TC_PARSE_CONS_RETURN_NONE BFD_RELOC_NONE
111 #endif
113 extern void pop_insert (const pseudo_typeS *);
114 extern unsigned int get_stab_string_offset (const char *, segT);
115 extern void aout_process_stab (int, const char *, int, int, int);
116 extern char *demand_copy_string (int *lenP);
117 extern char *demand_copy_C_string (int *len_pointer);
118 extern char get_absolute_expression_and_terminator (long *val_pointer);
119 extern offsetT get_absolute_expression (void);
120 extern unsigned int next_char_of_string (void);
121 extern void s_mri_sect (char *);
122 extern char *mri_comment_field (char *);
123 extern void mri_comment_end (char *, int);
124 extern void init_include_dir (void);
125 extern void add_include_dir (char *);
126 extern FILE *search_and_open (const char *, char *);
127 extern void cons (int nbytes);
128 extern void demand_empty_rest_of_line (void);
129 extern void emit_expr (expressionS *exp, unsigned int nbytes);
130 extern void emit_expr_with_reloc (expressionS *exp, unsigned int nbytes,
131 TC_PARSE_CONS_RETURN_TYPE);
132 extern void emit_expr_fix (expressionS *, unsigned int, fragS *, char *,
133 TC_PARSE_CONS_RETURN_TYPE);
134 extern void emit_leb128_expr (expressionS *, int);
135 extern void equals (char *, int);
136 extern void float_cons (int);
137 extern void ignore_rest_of_line (void);
138 #define discard_rest_of_line ignore_rest_of_line
139 extern unsigned output_leb128 (char *, valueT, int);
140 extern void pseudo_set (symbolS * symbolP);
141 extern void read_a_source_file (const char *name);
142 extern void read_begin (void);
143 extern void read_end (void);
144 extern void read_print_statistics (FILE *);
145 extern char *read_symbol_name (void);
146 extern unsigned sizeof_leb128 (valueT, int);
147 extern void stabs_generate_asm_file (void);
148 extern void stabs_generate_asm_lineno (void);
149 extern void stabs_generate_asm_func (const char *, const char *);
150 extern void stabs_generate_asm_endfunc (const char *, const char *);
151 extern void stabs_begin (void);
152 extern void stabs_end (void);
153 extern void do_repeat (size_t, const char *, const char *, const char *);
154 extern void end_repeat (int);
155 extern void do_parse_cons_expression (expressionS *, int);
156 extern void generate_lineno_debug (void);
157 extern void do_align (unsigned int align, char *fill, unsigned int length,
158 unsigned int max);
159 extern void bss_alloc (symbolS *, addressT, unsigned);
160 extern offsetT parse_align (int);
161 extern symbolS *s_comm_internal (int, symbolS *(*) (int, symbolS *, addressT));
162 extern symbolS *s_lcomm_internal (int, symbolS *, addressT);
163 extern void temp_ilp (char *);
164 extern void restore_ilp (void);
165 extern void s_file_string (char *);
167 extern void s_abort (int) ATTRIBUTE_NORETURN;
168 extern void s_align_bytes (int);
169 extern void s_align_ptwo (int);
170 extern void s_base64 (int);
171 extern void s_bundle_align_mode (int);
172 extern void s_bundle_lock (int);
173 extern void s_bundle_unlock (int);
174 extern void s_comm (int);
175 extern void s_data (int);
176 extern void s_desc (int);
177 extern void s_else (int);
178 extern void s_elseif (int);
179 extern void s_end (int);
180 extern void s_endif (int);
181 extern void s_err (int);
182 extern void s_errwarn (int);
183 extern void s_fail (int);
184 extern void s_file (int);
185 extern void s_fill (int);
186 extern void s_float_space (int);
187 extern void s_func (int);
188 extern void s_globl (int);
189 extern void s_if (int);
190 extern void s_ifb (int);
191 extern void s_ifc (int);
192 extern void s_ifdef (int);
193 extern void s_ifeqs (int);
194 extern void s_ignore (int);
195 extern void s_incbin (int);
196 extern void s_include (int);
197 extern void s_irp (int);
198 extern void s_lcomm (int);
199 extern void s_lcomm_bytes (int);
200 extern void s_leb128 (int);
201 extern void s_linefile (int);
202 extern void s_linkonce (int);
203 extern void s_lsym (int);
204 extern void s_macro (int);
205 extern void s_mexit (int);
206 extern void s_mri (int);
207 extern void s_mri_common (int);
208 extern void s_nop (int);
209 extern void s_nops (int);
210 extern void s_org (int);
211 extern void s_print (int);
212 extern void s_purgem (int);
213 extern void s_rept (int);
214 extern void s_rva (int);
215 extern void s_set (int);
216 extern void s_space (int);
217 extern void s_stab (int);
218 extern void s_struct (int);
219 extern void s_text (int);
220 extern void s_weakref (int);
221 extern void s_xstab (int);
222 extern void stringer (int);