read.h revision 60484
1144046Sjcamou/* read.h - of read.c 2144046Sjcamou Copyright (C) 1986, 90, 92, 93, 94, 95, 96, 1997 3144046Sjcamou Free Software Foundation, Inc. 4144046Sjcamou 5144046Sjcamou This file is part of GAS, the GNU Assembler. 6144046Sjcamou 7144046Sjcamou GAS is free software; you can redistribute it and/or modify 8144046Sjcamou it under the terms of the GNU General Public License as published by 9144046Sjcamou the Free Software Foundation; either version 2, or (at your option) 10144046Sjcamou any later version. 11144046Sjcamou 12144046Sjcamou GAS is distributed in the hope that it will be useful, 13144046Sjcamou but WITHOUT ANY WARRANTY; without even the implied warranty of 14144046Sjcamou MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15144046Sjcamou GNU General Public License for more details. 16144046Sjcamou 17144046Sjcamou You should have received a copy of the GNU General Public License 18144046Sjcamou along with GAS; see the file COPYING. If not, write to 19144046Sjcamou the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 20144046Sjcamou 21144046Sjcamouextern char *input_line_pointer;/* -> char we are parsing now. */ 22144046Sjcamou 23144046Sjcamou#define PERMIT_WHITESPACE /* Define to make whitespace be allowed in */ 24144046Sjcamou/* many syntactically unnecessary places. */ 25144046Sjcamou/* Normally undefined. For compatibility */ 26144046Sjcamou/* with ancient GNU cc. */ 27164752Sjoel/* #undef PERMIT_WHITESPACE */ 28144046Sjcamou 29144046Sjcamou#ifdef PERMIT_WHITESPACE 30144046Sjcamou#define SKIP_WHITESPACE() {if (* input_line_pointer == ' ') ++ input_line_pointer;} 31144046Sjcamou#else 32144046Sjcamou#define SKIP_WHITESPACE() know(*input_line_pointer != ' ' ) 33144046Sjcamou#endif 34152984Sjoel 35152984Sjoel 36152984Sjoel#define LEX_NAME (1) /* may continue a name */ 37144046Sjcamou#define LEX_BEGIN_NAME (2) /* may begin a name */ 38144046Sjcamou#define LEX_END_NAME (4) /* ends a name */ 39152984Sjoel 40152984Sjoel#define is_name_beginner(c) \ 41152984Sjoel ( lex_type[(unsigned char) (c)] & LEX_BEGIN_NAME ) 42152984Sjoel#define is_part_of_name(c) \ 43152984Sjoel ( lex_type[(unsigned char) (c)] & LEX_NAME ) 44152984Sjoel#define is_name_ender(c) \ 45152984Sjoel ( lex_type[(unsigned char) (c)] & LEX_END_NAME ) 46152984Sjoel 47144046Sjcamou#ifndef is_a_char 48144046Sjcamou#define CHAR_MASK (0xff) 49144046Sjcamou#define NOT_A_CHAR (CHAR_MASK+1) 50144046Sjcamou#define is_a_char(c) (((unsigned)(c)) <= CHAR_MASK) 51144046Sjcamou#endif /* is_a_char() */ 52144046Sjcamou 53144046Sjcamouextern char lex_type[]; 54144046Sjcamouextern char is_end_of_line[]; 55164752Sjoel 56164752Sjoelextern int is_it_end_of_statement PARAMS ((void)); 57164752Sjoel 58164752Sjoelextern int target_big_endian; 59164752Sjoel 60164752Sjoel/* These are initialized by the CPU specific target files (tc-*.c). */ 61164752Sjoelextern const char comment_chars[]; 62164752Sjoelextern const char line_comment_chars[]; 63164752Sjoelextern const char line_separator_chars[]; 64164752Sjoel 65164752Sjoel/* Table of -I directories. */ 66164752Sjoelextern char **include_dirs; 67164752Sjoelextern int include_dir_count; 68164752Sjoelextern int include_dir_maxlen; 69169495Sbrueffer 70144046Sjcamou/* The offset in the absolute section. */ 71144046Sjcamouextern addressT abs_section_offset; 72144046Sjcamou 73144046Sjcamou/* The label on a line, used by some of the pseudo-ops. */ 74144046Sjcamouextern symbolS *line_label; 75144046Sjcamou 76144046Sjcamou/* This is used to support MRI common sections. */ 77144046Sjcamouextern symbolS *mri_common_symbol; 78144046Sjcamou 79144046Sjcamou/* Possible arguments to .linkonce. */ 80144046Sjcamouenum linkonce_type 81144046Sjcamou{ 82144046Sjcamou LINKONCE_UNSET = 0, 83144046Sjcamou LINKONCE_DISCARD, 84144046Sjcamou LINKONCE_ONE_ONLY, 85144046Sjcamou LINKONCE_SAME_SIZE, 86158014Sbrueffer LINKONCE_SAME_CONTENTS 87158014Sbrueffer}; 88144046Sjcamou 89144046Sjcamouextern void pop_insert PARAMS ((const pseudo_typeS *)); 90144046Sjcamouextern unsigned int get_stab_string_offset 91144046Sjcamou PARAMS ((const char *string, const char *stabstr_secname)); 92144046Sjcamouextern char *demand_copy_C_string PARAMS ((int *len_pointer)); 93144046Sjcamouextern char get_absolute_expression_and_terminator 94144046Sjcamou PARAMS ((long *val_pointer)); 95144046Sjcamouextern offsetT get_absolute_expression PARAMS ((void)); 96152890Sjoelextern unsigned int next_char_of_string PARAMS ((void)); 97152890Sjoelextern void s_mri_sect PARAMS ((char *)); 98267938Sbaptextern char *mri_comment_field PARAMS ((char *)); 99144046Sjcamouextern void mri_comment_end PARAMS ((char *, int)); 100147432Sruextern void add_include_dir PARAMS ((char *path)); 101144046Sjcamouextern void cons PARAMS ((int nbytes)); 102147432Sruextern void demand_empty_rest_of_line PARAMS ((void)); 103144046Sjcamouextern void emit_expr PARAMS ((expressionS *exp, unsigned int nbytes)); 104144046Sjcamouextern void emit_leb128_expr PARAMS ((expressionS *, int)); 105144046Sjcamouextern void equals PARAMS ((char *sym_name, int reassign)); 106extern void float_cons PARAMS ((int float_type)); 107extern void ignore_rest_of_line PARAMS ((void)); 108extern void discard_rest_of_line PARAMS ((void)); 109extern int output_leb128 PARAMS ((char *, valueT, int sign)); 110extern void pseudo_set PARAMS ((symbolS * symbolP)); 111extern void read_a_source_file PARAMS ((char *name)); 112extern void read_begin PARAMS ((void)); 113extern void read_print_statistics PARAMS ((FILE *)); 114extern int sizeof_leb128 PARAMS ((valueT, int sign)); 115extern void stabs_generate_asm_file PARAMS ((void)); 116extern void stabs_generate_asm_lineno PARAMS ((void)); 117extern void stabs_generate_asm_func PARAMS ((const char *, const char *)); 118extern void stabs_generate_asm_endfunc PARAMS ((const char *, const char *)); 119extern void do_repeat PARAMS((int,const char *,const char *)); 120extern void end_repeat PARAMS((int)); 121 122extern void generate_lineno_debug PARAMS ((void)); 123 124extern void s_abort PARAMS ((int)); 125extern void s_align_bytes PARAMS ((int arg)); 126extern void s_align_ptwo PARAMS ((int)); 127extern void s_app_file PARAMS ((int)); 128extern void s_app_line PARAMS ((int)); 129extern void s_comm PARAMS ((int)); 130extern void s_data PARAMS ((int)); 131extern void s_desc PARAMS ((int)); 132extern void s_else PARAMS ((int arg)); 133extern void s_elseif PARAMS ((int arg)); 134extern void s_end PARAMS ((int arg)); 135extern void s_endif PARAMS ((int arg)); 136extern void s_err PARAMS ((int)); 137extern void s_fail PARAMS ((int)); 138extern void s_fill PARAMS ((int)); 139extern void s_float_space PARAMS ((int mult)); 140extern void s_func PARAMS ((int)); 141extern void do_s_func PARAMS ((int, const char *)); 142extern void s_globl PARAMS ((int arg)); 143extern void s_if PARAMS ((int arg)); 144extern void s_ifc PARAMS ((int arg)); 145extern void s_ifdef PARAMS ((int arg)); 146extern void s_ifeqs PARAMS ((int arg)); 147extern void s_ignore PARAMS ((int arg)); 148extern void s_include PARAMS ((int arg)); 149extern void s_irp PARAMS ((int arg)); 150extern void s_lcomm PARAMS ((int needs_align)); 151extern void s_lcomm_bytes PARAMS ((int needs_align)); 152extern void s_leb128 PARAMS ((int sign)); 153extern void s_linkonce PARAMS ((int)); 154extern void s_lsym PARAMS ((int)); 155extern void s_macro PARAMS ((int)); 156extern void s_mexit PARAMS ((int)); 157extern void s_mri PARAMS ((int)); 158extern void s_mri_common PARAMS ((int)); 159extern void s_org PARAMS ((int)); 160extern void s_print PARAMS ((int)); 161extern void s_purgem PARAMS ((int)); 162extern void s_rept PARAMS ((int)); 163extern void s_set PARAMS ((int)); 164extern void s_space PARAMS ((int mult)); 165extern void s_stab PARAMS ((int what)); 166extern void s_struct PARAMS ((int)); 167extern void s_text PARAMS ((int)); 168extern void stringer PARAMS ((int append_zero)); 169extern void s_xstab PARAMS ((int what)); 170extern void s_rva PARAMS ((int)); 171 172/* end of read.h */ 173