4 Copyright (C) 1986 Free Software Foundation, Inc.
6 This file is part of GAS, the GNU Assembler.
8 GAS is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 1, or (at your option)
13 GAS is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with GAS; see the file COPYING. If not, write to
20 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
25 /* Define to make whitespace be allowed in many syntactically
26 unnecessary places. Normally undefined. For compatibility with
28 /* #undef PERMIT_WHITESPACE */
29 #define PERMIT_WHITESPACE
31 #ifdef PERMIT_WHITESPACE
32 #define SKIP_WHITESPACE() \
33 (void)((*input_line_pointer == ' ') ? ++input_line_pointer : 0)
35 #define SKIP_WHITESPACE() know(*input_line_pointer != ' ' )
39 #define LEX_NAME (1) /* may continue a name */
40 #define LEX_BEGIN_NAME (2) /* may begin a name */
42 #define is_name_beginner(c) ( lex_type[(c) & 0xff] & LEX_BEGIN_NAME )
43 #define is_part_of_name(c) ( lex_type[(c) & 0xff] & LEX_NAME )
46 * A pseudo opcode table entry.
49 char *poc_name
; /* assembler mnemonic, lower case, no '.' */
50 void (*poc_handler
)(uintptr_t poc_val
); /* Do the work */
51 uintptr_t poc_val
; /* Value to pass to handler */
54 extern char *input_line_pointer
; /* -> char we are parsing now. */
55 extern char *buffer_limit
; /* -> 1 + last char in buffer. */
58 extern int target_big_endian
;
65 extern char is_end_of_line(
67 extern uint32_t text_nsect
;
70 * These variable are set with .inlineasmstart and used when reporting errors
71 * for the properties of GCC function-scope inline asms.
73 extern int inlineasm_checks
;
74 extern char *inlineasm_file_name
;
75 extern int inlineasm_line_number
;
76 extern int inlineasm_column_number
;
78 extern void read_begin(
81 extern void ppcasm_read_begin(
84 void read_a_source_file(
86 extern signed_target_addr_t
get_absolute_expression(
88 extern char *demand_copy_C_string(
90 extern void demand_empty_rest_of_line(
92 extern void ignore_rest_of_line(
94 extern void add_to_macro_definition(
96 extern segT
get_known_segmented_expression(
98 extern void totally_ignore_line(
101 /* globally known pseudo-op functions (used by some assemblers in MACHINE.c) */
102 extern void stringer(
103 uintptr_t append_zero
);
108 extern void float_cons(
109 uintptr_t float_type
);
116 extern void s_ignore(
122 extern void s_endmacro(
124 extern void big_cons(
126 extern void pseudo_set(
128 #if ALLOW_64BIT_LEB_ON_32B_TARGET
129 extern int output_leb128(
133 extern int sizeof_leb128(
137 extern int output_leb128(
141 extern int sizeof_leb128(
145 #endif /* _READ_H_ */