read.h revision 38889
1126756Smlaier/* read.h - of read.c
2135183Smlaier   Copyright (C) 1986, 90, 92, 93, 94, 95, 96, 1997
3126756Smlaier   Free Software Foundation, Inc.
4126756Smlaier
5126756Smlaier   This file is part of GAS, the GNU Assembler.
6126756Smlaier
7126756Smlaier   GAS is free software; you can redistribute it and/or modify
8126756Smlaier   it under the terms of the GNU General Public License as published by
9126756Smlaier   the Free Software Foundation; either version 2, or (at your option)
10126756Smlaier   any later version.
11126756Smlaier
12126756Smlaier   GAS is distributed in the hope that it will be useful,
13126756Smlaier   but WITHOUT ANY WARRANTY; without even the implied warranty of
14126756Smlaier   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15126756Smlaier   GNU General Public License for more details.
16126756Smlaier
17126756Smlaier   You should have received a copy of the GNU General Public License
18126756Smlaier   along with GAS; see the file COPYING.  If not, write to
19126756Smlaier   the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
20126756Smlaier
21126756Smlaierextern char *input_line_pointer;/* -> char we are parsing now. */
22126756Smlaier
23126756Smlaier#define PERMIT_WHITESPACE	/* Define to make whitespace be allowed in */
24126756Smlaier/* many syntactically unnecessary places. */
25135183Smlaier/* Normally undefined. For compatibility */
26135183Smlaier/* with ancient GNU cc. */
27126756Smlaier/* #undef PERMIT_WHITESPACE */
28126756Smlaier
29126756Smlaier#ifdef PERMIT_WHITESPACE
30126756Smlaier#define SKIP_WHITESPACE() {if (* input_line_pointer == ' ') ++ input_line_pointer;}
31126756Smlaier#else
32126756Smlaier#define SKIP_WHITESPACE() know(*input_line_pointer != ' ' )
33126756Smlaier#endif
34126756Smlaier
35126756Smlaier
36126756Smlaier#define	LEX_NAME	(1)	/* may continue a name */
37126756Smlaier#define LEX_BEGIN_NAME	(2)	/* may begin a name */
38126756Smlaier
39126756Smlaier#define is_name_beginner(c) \
40126756Smlaier  ( lex_type[(unsigned char) (c)] & LEX_BEGIN_NAME )
41126756Smlaier#define is_part_of_name(c) \
42126756Smlaier  ( lex_type[(unsigned char) (c)] & LEX_NAME       )
43126756Smlaier
44126756Smlaier#ifndef is_a_char
45126756Smlaier#define CHAR_MASK	(0xff)
46126756Smlaier#define NOT_A_CHAR	(CHAR_MASK+1)
47126756Smlaier#define is_a_char(c)	(((unsigned)(c)) <= CHAR_MASK)
48126756Smlaier#endif /* is_a_char() */
49126756Smlaier
50126756Smlaierextern char lex_type[];
51126756Smlaierextern char is_end_of_line[];
52126756Smlaier
53126756Smlaierextern int is_it_end_of_statement PARAMS ((void));
54126756Smlaier
55126756Smlaierextern int target_big_endian;
56126756Smlaier
57126756Smlaier/* These are initialized by the CPU specific target files (tc-*.c).  */
58126756Smlaierextern const char comment_chars[];
59126756Smlaierextern const char line_comment_chars[];
60126756Smlaierextern const char line_separator_chars[];
61126756Smlaier
62126756Smlaier/* Table of -I directories.  */
63126756Smlaierextern char **include_dirs;
64126756Smlaierextern int include_dir_count;
65126756Smlaierextern int include_dir_maxlen;
66126756Smlaier
67126756Smlaier/* The offset in the absolute section.  */
68126756Smlaierextern addressT abs_section_offset;
69126756Smlaier
70126756Smlaier/* The label on a line, used by some of the pseudo-ops.  */
71126756Smlaierextern symbolS *line_label;
72126756Smlaier
73126756Smlaier/* This is used to support MRI common sections.  */
74126756Smlaierextern symbolS *mri_common_symbol;
75126756Smlaier
76126756Smlaier/* Possible arguments to .linkonce.  */
77126756Smlaierenum linkonce_type
78126756Smlaier{
79126756Smlaier  LINKONCE_UNSET = 0,
80126756Smlaier  LINKONCE_DISCARD,
81126756Smlaier  LINKONCE_ONE_ONLY,
82126756Smlaier  LINKONCE_SAME_SIZE,
83126756Smlaier  LINKONCE_SAME_CONTENTS
84126756Smlaier};
85126756Smlaier
86126756Smlaierextern void pop_insert PARAMS ((const pseudo_typeS *));
87126756Smlaierextern unsigned int get_stab_string_offset
88126756Smlaier  PARAMS ((const char *string, const char *stabstr_secname));
89126756Smlaierextern char *demand_copy_C_string PARAMS ((int *len_pointer));
90126756Smlaierextern char get_absolute_expression_and_terminator
91126756Smlaier  PARAMS ((long *val_pointer));
92126756Smlaierextern offsetT get_absolute_expression PARAMS ((void));
93126756Smlaierextern unsigned int next_char_of_string PARAMS ((void));
94126756Smlaierextern void s_mri_sect PARAMS ((char *));
95126756Smlaierextern char *mri_comment_field PARAMS ((char *));
96126756Smlaierextern void mri_comment_end PARAMS ((char *, int));
97126756Smlaierextern void add_include_dir PARAMS ((char *path));
98126756Smlaierextern void cons PARAMS ((int nbytes));
99126756Smlaierextern void demand_empty_rest_of_line PARAMS ((void));
100126756Smlaierextern void emit_expr PARAMS ((expressionS *exp, unsigned int nbytes));
101126756Smlaierextern void emit_leb128_expr PARAMS ((expressionS *, int));
102126756Smlaierextern void equals PARAMS ((char *sym_name, int reassign));
103126756Smlaierextern void float_cons PARAMS ((int float_type));
104126756Smlaierextern void ignore_rest_of_line PARAMS ((void));
105126756Smlaierextern int output_leb128 PARAMS ((char *, valueT, int sign));
106126756Smlaierextern void pseudo_set PARAMS ((symbolS * symbolP));
107126756Smlaierextern void read_a_source_file PARAMS ((char *name));
108126756Smlaierextern void read_begin PARAMS ((void));
109126756Smlaierextern void read_print_statistics PARAMS ((FILE *));
110126756Smlaierextern int sizeof_leb128 PARAMS ((valueT, int sign));
111126756Smlaierextern void stabs_generate_asm_lineno PARAMS ((void));
112126756Smlaier
113126756Smlaierextern void s_abort PARAMS ((int));
114126756Smlaierextern void s_align_bytes PARAMS ((int arg));
115126756Smlaierextern void s_align_ptwo PARAMS ((int));
116126756Smlaierextern void s_app_file PARAMS ((int));
117126756Smlaierextern void s_app_line PARAMS ((int));
118126756Smlaierextern void s_comm PARAMS ((int));
119126756Smlaierextern void s_data PARAMS ((int));
120126756Smlaierextern void s_desc PARAMS ((int));
121126756Smlaierextern void s_else PARAMS ((int arg));
122126756Smlaierextern void s_end PARAMS ((int arg));
123126756Smlaierextern void s_endif PARAMS ((int arg));
124126756Smlaierextern void s_err PARAMS ((int));
125126756Smlaierextern void s_fail PARAMS ((int));
126126756Smlaierextern void s_fill PARAMS ((int));
127126756Smlaierextern void s_float_space PARAMS ((int mult));
128126756Smlaierextern void s_globl PARAMS ((int arg));
129126756Smlaierextern void s_if PARAMS ((int arg));
130126756Smlaierextern void s_ifc PARAMS ((int arg));
131126756Smlaierextern void s_ifdef PARAMS ((int arg));
132126756Smlaierextern void s_ifeqs PARAMS ((int arg));
133126756Smlaierextern void s_ignore PARAMS ((int arg));
134126756Smlaierextern void s_include PARAMS ((int arg));
135126756Smlaierextern void s_irp PARAMS ((int arg));
136126756Smlaierextern void s_lcomm PARAMS ((int needs_align));
137126756Smlaierextern void s_lcomm_bytes PARAMS ((int needs_align));
138126756Smlaierextern void s_leb128 PARAMS ((int sign));
139126756Smlaierextern void s_linkonce PARAMS ((int));
140126756Smlaierextern void s_lsym PARAMS ((int));
141126756Smlaierextern void s_macro PARAMS ((int));
142126756Smlaierextern void s_mexit PARAMS ((int));
143126756Smlaierextern void s_mri PARAMS ((int));
144126756Smlaierextern void s_mri_common PARAMS ((int));
145135183Smlaierextern void s_org PARAMS ((int));
146135183Smlaierextern void s_print PARAMS ((int));
147126756Smlaierextern void s_purgem PARAMS ((int));
148126756Smlaierextern void s_rept PARAMS ((int));
149126756Smlaierextern void s_set PARAMS ((int));
150126756Smlaierextern void s_space PARAMS ((int mult));
151126756Smlaierextern void s_stab PARAMS ((int what));
152126756Smlaierextern void s_struct PARAMS ((int));
153126756Smlaierextern void s_text PARAMS ((int));
154126756Smlaierextern void stringer PARAMS ((int append_zero));
155135183Smlaierextern void s_xstab PARAMS ((int what));
156135183Smlaierextern void s_rva PARAMS ((int));
157135183Smlaier
158135183Smlaier/* end of read.h */
159126756Smlaier