3 Copyright (C) 1986, 1990, 1992 Free Software Foundation, Inc.
5 This file is part of GAS, the GNU Assembler.
7 GAS is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2, or (at your option)
12 GAS is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GAS; see the file COPYING. If not, write to
19 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
21 * $FreeBSD: src/gnu/usr.bin/as/read.h,v 1.9 1999/08/27 23:34:21 peter Exp $
22 * $DragonFly: src/gnu/usr.bin/as/Attic/read.h,v 1.2 2003/06/17 04:25:44 dillon Exp $
26 extern char *input_line_pointer; /* -> char we are parsing now. */
28 #define PERMIT_WHITESPACE /* Define to make whitespace be allowed in */
29 /* many syntactically unnecessary places. */
30 /* Normally undefined. For compatibility */
31 /* with ancient GNU cc. */
32 /* #undef PERMIT_WHITESPACE */
34 #ifdef PERMIT_WHITESPACE
35 #define SKIP_WHITESPACE() {if (* input_line_pointer == ' ') ++ input_line_pointer;}
37 #define SKIP_WHITESPACE() know(*input_line_pointer != ' ' )
41 #define LEX_NAME (1) /* may continue a name */
42 #define LEX_BEGIN_NAME (2) /* may begin a name */
44 #define is_name_beginner(c) ( lex_type[c] & LEX_BEGIN_NAME )
45 #define is_part_of_name(c) ( lex_type[c] & LEX_NAME )
48 #define CHAR_MASK (0xff)
49 #define NOT_A_CHAR (CHAR_MASK+1)
50 #define is_a_char(c) (((unsigned)(c)) <= CHAR_MASK)
51 #endif /* is_a_char() */
54 /* We change some of the entries in lex_type on some archs */
55 extern char lex_type[];
57 extern const char lex_type[];
59 extern char is_end_of_line[];
61 /* These are initialized by the CPU specific target files (tc-*.c). */
62 extern const char comment_chars[];
63 extern const char line_comment_chars[];
64 extern const char line_separator_chars[];
68 char *demand_copy_C_string(int *len_pointer);
69 char get_absolute_expression_and_terminator(long *val_pointer);
70 long get_absolute_expression(void);
71 void add_include_dir(char *path);
72 void big_cons(int nbytes);
73 void cons(unsigned int nbytes);
74 void demand_empty_rest_of_line(void);
75 void equals(char *sym_name);
76 void float_cons(int float_type);
77 void ignore_rest_of_line(void);
78 void pseudo_set(symbolS *symbolP);
79 void read_a_source_file(char *name);
80 void read_begin(void);
82 void s_align_bytes(int arg);
83 void s_align_ptwo(void);
90 void s_endif(int arg);
94 void s_ifdef(int arg);
95 void s_ifeqs(int arg);
96 void s_ignore(int arg);
97 void s_include(int arg);
98 void s_lcomm(int needs_align);
108 #else /* not __STDC__ */
110 char *demand_copy_C_string();
111 char get_absolute_expression_and_terminator();
112 long get_absolute_expression();
113 void add_include_dir();
116 void demand_empty_rest_of_line();
119 void ignore_rest_of_line();
121 void read_a_source_file();
124 void s_align_bytes();
150 #endif /* not __STDC__ */