read.h revision 38889
133965Sjdp/* read.h - of read.c
238889Sjdp   Copyright (C) 1986, 90, 92, 93, 94, 95, 96, 1997
338889Sjdp   Free Software Foundation, Inc.
433965Sjdp
533965Sjdp   This file is part of GAS, the GNU Assembler.
633965Sjdp
733965Sjdp   GAS is free software; you can redistribute it and/or modify
833965Sjdp   it under the terms of the GNU General Public License as published by
933965Sjdp   the Free Software Foundation; either version 2, or (at your option)
1033965Sjdp   any later version.
1133965Sjdp
1233965Sjdp   GAS is distributed in the hope that it will be useful,
1333965Sjdp   but WITHOUT ANY WARRANTY; without even the implied warranty of
1433965Sjdp   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1533965Sjdp   GNU General Public License for more details.
1633965Sjdp
1733965Sjdp   You should have received a copy of the GNU General Public License
1833965Sjdp   along with GAS; see the file COPYING.  If not, write to
1933965Sjdp   the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
2033965Sjdp
2133965Sjdpextern char *input_line_pointer;/* -> char we are parsing now. */
2233965Sjdp
2333965Sjdp#define PERMIT_WHITESPACE	/* Define to make whitespace be allowed in */
2433965Sjdp/* many syntactically unnecessary places. */
2533965Sjdp/* Normally undefined. For compatibility */
2633965Sjdp/* with ancient GNU cc. */
2733965Sjdp/* #undef PERMIT_WHITESPACE */
2833965Sjdp
2933965Sjdp#ifdef PERMIT_WHITESPACE
3033965Sjdp#define SKIP_WHITESPACE() {if (* input_line_pointer == ' ') ++ input_line_pointer;}
3133965Sjdp#else
3233965Sjdp#define SKIP_WHITESPACE() know(*input_line_pointer != ' ' )
3333965Sjdp#endif
3433965Sjdp
3533965Sjdp
3633965Sjdp#define	LEX_NAME	(1)	/* may continue a name */
3733965Sjdp#define LEX_BEGIN_NAME	(2)	/* may begin a name */
3833965Sjdp
3933965Sjdp#define is_name_beginner(c) \
4033965Sjdp  ( lex_type[(unsigned char) (c)] & LEX_BEGIN_NAME )
4133965Sjdp#define is_part_of_name(c) \
4233965Sjdp  ( lex_type[(unsigned char) (c)] & LEX_NAME       )
4333965Sjdp
4433965Sjdp#ifndef is_a_char
4533965Sjdp#define CHAR_MASK	(0xff)
4633965Sjdp#define NOT_A_CHAR	(CHAR_MASK+1)
4733965Sjdp#define is_a_char(c)	(((unsigned)(c)) <= CHAR_MASK)
4833965Sjdp#endif /* is_a_char() */
4933965Sjdp
5033965Sjdpextern char lex_type[];
5133965Sjdpextern char is_end_of_line[];
5233965Sjdp
5333965Sjdpextern int is_it_end_of_statement PARAMS ((void));
5433965Sjdp
5533965Sjdpextern int target_big_endian;
5633965Sjdp
5733965Sjdp/* These are initialized by the CPU specific target files (tc-*.c).  */
5833965Sjdpextern const char comment_chars[];
5933965Sjdpextern const char line_comment_chars[];
6033965Sjdpextern const char line_separator_chars[];
6133965Sjdp
6238889Sjdp/* Table of -I directories.  */
6338889Sjdpextern char **include_dirs;
6438889Sjdpextern int include_dir_count;
6538889Sjdpextern int include_dir_maxlen;
6633965Sjdp
6733965Sjdp/* The offset in the absolute section.  */
6833965Sjdpextern addressT abs_section_offset;
6933965Sjdp
7033965Sjdp/* The label on a line, used by some of the pseudo-ops.  */
7133965Sjdpextern symbolS *line_label;
7233965Sjdp
7333965Sjdp/* This is used to support MRI common sections.  */
7433965Sjdpextern symbolS *mri_common_symbol;
7533965Sjdp
7633965Sjdp/* Possible arguments to .linkonce.  */
7733965Sjdpenum linkonce_type
7833965Sjdp{
7933965Sjdp  LINKONCE_UNSET = 0,
8033965Sjdp  LINKONCE_DISCARD,
8133965Sjdp  LINKONCE_ONE_ONLY,
8233965Sjdp  LINKONCE_SAME_SIZE,
8333965Sjdp  LINKONCE_SAME_CONTENTS
8433965Sjdp};
8533965Sjdp
8633965Sjdpextern void pop_insert PARAMS ((const pseudo_typeS *));
8733965Sjdpextern unsigned int get_stab_string_offset
8833965Sjdp  PARAMS ((const char *string, const char *stabstr_secname));
8933965Sjdpextern char *demand_copy_C_string PARAMS ((int *len_pointer));
9033965Sjdpextern char get_absolute_expression_and_terminator
9133965Sjdp  PARAMS ((long *val_pointer));
9233965Sjdpextern offsetT get_absolute_expression PARAMS ((void));
9333965Sjdpextern unsigned int next_char_of_string PARAMS ((void));
9433965Sjdpextern void s_mri_sect PARAMS ((char *));
9533965Sjdpextern char *mri_comment_field PARAMS ((char *));
9633965Sjdpextern void mri_comment_end PARAMS ((char *, int));
9733965Sjdpextern void add_include_dir PARAMS ((char *path));
9833965Sjdpextern void cons PARAMS ((int nbytes));
9933965Sjdpextern void demand_empty_rest_of_line PARAMS ((void));
10033965Sjdpextern void emit_expr PARAMS ((expressionS *exp, unsigned int nbytes));
10138889Sjdpextern void emit_leb128_expr PARAMS ((expressionS *, int));
10233965Sjdpextern void equals PARAMS ((char *sym_name, int reassign));
10333965Sjdpextern void float_cons PARAMS ((int float_type));
10433965Sjdpextern void ignore_rest_of_line PARAMS ((void));
10538889Sjdpextern int output_leb128 PARAMS ((char *, valueT, int sign));
10633965Sjdpextern void pseudo_set PARAMS ((symbolS * symbolP));
10733965Sjdpextern void read_a_source_file PARAMS ((char *name));
10833965Sjdpextern void read_begin PARAMS ((void));
10938889Sjdpextern void read_print_statistics PARAMS ((FILE *));
11038889Sjdpextern int sizeof_leb128 PARAMS ((valueT, int sign));
11138889Sjdpextern void stabs_generate_asm_lineno PARAMS ((void));
11238889Sjdp
11333965Sjdpextern void s_abort PARAMS ((int));
11433965Sjdpextern void s_align_bytes PARAMS ((int arg));
11533965Sjdpextern void s_align_ptwo PARAMS ((int));
11633965Sjdpextern void s_app_file PARAMS ((int));
11733965Sjdpextern void s_app_line PARAMS ((int));
11833965Sjdpextern void s_comm PARAMS ((int));
11933965Sjdpextern void s_data PARAMS ((int));
12033965Sjdpextern void s_desc PARAMS ((int));
12133965Sjdpextern void s_else PARAMS ((int arg));
12233965Sjdpextern void s_end PARAMS ((int arg));
12333965Sjdpextern void s_endif PARAMS ((int arg));
12433965Sjdpextern void s_err PARAMS ((int));
12533965Sjdpextern void s_fail PARAMS ((int));
12633965Sjdpextern void s_fill PARAMS ((int));
12733965Sjdpextern void s_float_space PARAMS ((int mult));
12833965Sjdpextern void s_globl PARAMS ((int arg));
12933965Sjdpextern void s_if PARAMS ((int arg));
13033965Sjdpextern void s_ifc PARAMS ((int arg));
13133965Sjdpextern void s_ifdef PARAMS ((int arg));
13233965Sjdpextern void s_ifeqs PARAMS ((int arg));
13333965Sjdpextern void s_ignore PARAMS ((int arg));
13433965Sjdpextern void s_include PARAMS ((int arg));
13533965Sjdpextern void s_irp PARAMS ((int arg));
13633965Sjdpextern void s_lcomm PARAMS ((int needs_align));
13738889Sjdpextern void s_lcomm_bytes PARAMS ((int needs_align));
13838889Sjdpextern void s_leb128 PARAMS ((int sign));
13933965Sjdpextern void s_linkonce PARAMS ((int));
14033965Sjdpextern void s_lsym PARAMS ((int));
14133965Sjdpextern void s_macro PARAMS ((int));
14233965Sjdpextern void s_mexit PARAMS ((int));
14333965Sjdpextern void s_mri PARAMS ((int));
14433965Sjdpextern void s_mri_common PARAMS ((int));
14533965Sjdpextern void s_org PARAMS ((int));
14633965Sjdpextern void s_print PARAMS ((int));
14733965Sjdpextern void s_purgem PARAMS ((int));
14833965Sjdpextern void s_rept PARAMS ((int));
14933965Sjdpextern void s_set PARAMS ((int));
15033965Sjdpextern void s_space PARAMS ((int mult));
15133965Sjdpextern void s_stab PARAMS ((int what));
15233965Sjdpextern void s_struct PARAMS ((int));
15333965Sjdpextern void s_text PARAMS ((int));
15433965Sjdpextern void stringer PARAMS ((int append_zero));
15533965Sjdpextern void s_xstab PARAMS ((int what));
15633965Sjdpextern void s_rva PARAMS ((int));
15733965Sjdp
15833965Sjdp/* end of read.h */
159