Back to index

cell-binutils  2.17cvs20070401
read.h
Go to the documentation of this file.
00001 /* read.h - of read.c
00002    Copyright 1986, 1990, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
00003    2000, 2001, 2002, 2003, 2004, 2005
00004    Free Software Foundation, Inc.
00005 
00006    This file is part of GAS, the GNU Assembler.
00007 
00008    GAS is free software; you can redistribute it and/or modify
00009    it under the terms of the GNU General Public License as published by
00010    the Free Software Foundation; either version 2, or (at your option)
00011    any later version.
00012 
00013    GAS is distributed in the hope that it will be useful,
00014    but WITHOUT ANY WARRANTY; without even the implied warranty of
00015    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016    GNU General Public License for more details.
00017 
00018    You should have received a copy of the GNU General Public License
00019    along with GAS; see the file COPYING.  If not, write to the Free
00020    Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
00021    02110-1301, USA.  */
00022 
00023 extern char *input_line_pointer;   /* -> char we are parsing now.  */
00024 
00025 /* Define to make whitespace be allowed in many syntactically
00026    unnecessary places.  Normally undefined.  For compatibility with
00027    ancient GNU cc.  */
00028 /* #undef PERMIT_WHITESPACE */
00029 #define PERMIT_WHITESPACE
00030 
00031 #ifdef PERMIT_WHITESPACE
00032 #define SKIP_WHITESPACE()                 \
00033   ((*input_line_pointer == ' ') ? ++input_line_pointer : 0)
00034 #else
00035 #define SKIP_WHITESPACE() know(*input_line_pointer != ' ' )
00036 #endif
00037 
00038 #define       LEX_NAME      (1)    /* may continue a name */
00039 #define LEX_BEGIN_NAME      (2)    /* may begin a name */
00040 #define LEX_END_NAME (4)    /* ends a name */
00041 
00042 #define is_name_beginner(c) \
00043   ( lex_type[(unsigned char) (c)] & LEX_BEGIN_NAME )
00044 #define is_part_of_name(c) \
00045   ( lex_type[(unsigned char) (c)] & LEX_NAME       )
00046 #define is_name_ender(c) \
00047   ( lex_type[(unsigned char) (c)] & LEX_END_NAME   )
00048 
00049 #ifndef is_a_char
00050 #define CHAR_MASK    (0xff)
00051 #define NOT_A_CHAR   (CHAR_MASK+1)
00052 #define is_a_char(c) (((unsigned) (c)) <= CHAR_MASK)
00053 #endif /* is_a_char() */
00054 
00055 extern char lex_type[];
00056 extern char is_end_of_line[];
00057 
00058 extern int is_it_end_of_statement (void);
00059 extern char *find_end_of_line (char *, int);
00060 
00061 extern int target_big_endian;
00062 
00063 /* These are initialized by the CPU specific target files (tc-*.c).  */
00064 extern const char comment_chars[];
00065 extern const char line_comment_chars[];
00066 extern const char line_separator_chars[];
00067 
00068 /* Table of -I directories.  */
00069 extern char **include_dirs;
00070 extern int include_dir_count;
00071 extern int include_dir_maxlen;
00072 
00073 /* The offset in the absolute section.  */
00074 extern addressT abs_section_offset;
00075 
00076 /* The label on a line, used by some of the pseudo-ops.  */
00077 extern symbolS *line_label;
00078 
00079 /* This is used to support MRI common sections.  */
00080 extern symbolS *mri_common_symbol;
00081 
00082 /* True if a stabs line debug statement is currently being emitted.  */
00083 extern int outputting_stabs_line_debug;
00084 
00085 /* Possible arguments to .linkonce.  */
00086 enum linkonce_type {
00087   LINKONCE_UNSET = 0,
00088   LINKONCE_DISCARD,
00089   LINKONCE_ONE_ONLY,
00090   LINKONCE_SAME_SIZE,
00091   LINKONCE_SAME_CONTENTS
00092 };
00093 
00094 #ifndef TC_CASE_SENSITIVE
00095 extern char original_case_string[];
00096 #endif
00097 
00098 extern void pop_insert (const pseudo_typeS *);
00099 extern unsigned int get_stab_string_offset
00100   (const char *string, const char *stabstr_secname);
00101 extern void aout_process_stab (int, const char *, int, int, int);
00102 extern char *demand_copy_string (int *lenP);
00103 extern char *demand_copy_C_string (int *len_pointer);
00104 extern char get_absolute_expression_and_terminator (long *val_pointer);
00105 extern offsetT get_absolute_expression (void);
00106 extern unsigned int next_char_of_string (void);
00107 extern void s_mri_sect (char *);
00108 extern char *mri_comment_field (char *);
00109 extern void mri_comment_end (char *, int);
00110 extern void add_include_dir (char *path);
00111 extern void cons (int nbytes);
00112 extern void demand_empty_rest_of_line (void);
00113 extern void emit_expr (expressionS *exp, unsigned int nbytes);
00114 extern void equals (char *sym_name, int reassign);
00115 extern void float_cons (int float_type);
00116 extern void ignore_rest_of_line (void);
00117 #define discard_rest_of_line ignore_rest_of_line
00118 extern int output_leb128 (char *, valueT, int sign);
00119 extern void pseudo_set (symbolS * symbolP);
00120 extern void read_a_source_file (char *name);
00121 extern void read_begin (void);
00122 extern void read_print_statistics (FILE *);
00123 extern int sizeof_leb128 (valueT, int sign);
00124 extern void stabs_generate_asm_file (void);
00125 extern void stabs_generate_asm_lineno (void);
00126 extern void stabs_generate_asm_func (const char *, const char *);
00127 extern void stabs_generate_asm_endfunc (const char *, const char *);
00128 extern void do_repeat (int,const char *,const char *);
00129 extern void end_repeat (int);
00130 extern void do_parse_cons_expression (expressionS *, int);
00131 
00132 extern void generate_lineno_debug (void);
00133 
00134 extern void s_abort (int) ATTRIBUTE_NORETURN;
00135 extern void s_align_bytes (int arg);
00136 extern void s_align_ptwo (int);
00137 extern void bss_alloc (symbolS *, addressT, int);
00138 extern offsetT parse_align (int);
00139 extern symbolS *s_comm_internal (int, symbolS *(*) (int, symbolS *, addressT));
00140 extern symbolS *s_lcomm_internal (int, symbolS *, addressT);
00141 extern void s_app_file_string (char *, int);
00142 extern void s_app_file (int);
00143 extern void s_app_line (int);
00144 extern void s_comm (int);
00145 extern void s_data (int);
00146 extern void s_desc (int);
00147 extern void s_else (int arg);
00148 extern void s_elseif (int arg);
00149 extern void s_end (int arg);
00150 extern void s_endif (int arg);
00151 extern void s_err (int);
00152 extern void s_errwarn (int);
00153 extern void s_fail (int);
00154 extern void s_fill (int);
00155 extern void s_float_space (int mult);
00156 extern void s_func (int);
00157 extern void s_globl (int arg);
00158 extern void s_if (int arg);
00159 extern void s_ifb (int arg);
00160 extern void s_ifc (int arg);
00161 extern void s_ifdef (int arg);
00162 extern void s_ifeqs (int arg);
00163 extern void s_ignore (int arg);
00164 extern void s_include (int arg);
00165 extern void s_irp (int arg);
00166 extern void s_lcomm (int needs_align);
00167 extern void s_lcomm_bytes (int needs_align);
00168 extern void s_leb128 (int sign);
00169 extern void s_linkonce (int);
00170 extern void s_lsym (int);
00171 extern void s_macro (int);
00172 extern void s_mexit (int);
00173 extern void s_mri (int);
00174 extern void s_mri_common (int);
00175 extern void s_org (int);
00176 extern void s_print (int);
00177 extern void s_purgem (int);
00178 extern void s_rept (int);
00179 extern void s_set (int);
00180 extern void s_space (int mult);
00181 extern void s_stab (int what);
00182 extern void s_struct (int);
00183 extern void s_text (int);
00184 extern void stringer (int append_zero);
00185 extern void s_xstab (int what);
00186 extern void s_rva (int);
00187 extern void s_incbin (int);
00188 extern void s_weakref (int);