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