(linenum→info "unix/slp.c:2238")

binutils/2.18/gas/read.h

    1: /* read.h - of read.c
    2:    Copyright 1986, 1990, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
    3:    2000, 2001, 2002, 2003, 2004, 2005, 2007
    4:    Free Software Foundation, Inc.
    5: 
    6:    This file is part of GAS, the GNU Assembler.
    7: 
    8:    GAS is free software; you can redistribute it and/or modify
    9:    it under the terms of the GNU General Public License as published by
   10:    the Free Software Foundation; either version 3, or (at your option)
   11:    any later version.
   12: 
   13:    GAS is distributed in the hope that it will be useful,
   14:    but WITHOUT ANY WARRANTY; without even the implied warranty of
   15:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   16:    GNU General Public License for more details.
   17: 
   18:    You should have received a copy of the GNU General Public License
   19:    along with GAS; see the file COPYING.  If not, write to the Free
   20:    Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
   21:    02110-1301, USA.  */
   22: 
   23: extern char *input_line_pointer;        /* -> char we are parsing now.  */
   24: 
   25: /* Define to make whitespace be allowed in many syntactically
   26:    unnecessary places.  Normally undefined.  For compatibility with
   27:    ancient GNU cc.  */
   28: /* #undef PERMIT_WHITESPACE */
   29: #define PERMIT_WHITESPACE
   30: 
   31: #ifdef PERMIT_WHITESPACE
   32: #define SKIP_WHITESPACE()                       \
   33:   ((*input_line_pointer == ' ') ? ++input_line_pointer : 0)
   34: #else
   35: #define SKIP_WHITESPACE() know(*input_line_pointer != ' ' )
   36: #endif
   37: 
   38: #define LEX_NAME        (1)    /* may continue a name */
   39: #define LEX_BEGIN_NAME  (2)      /* may begin a name */
   40: #define LEX_END_NAME    (4)        /* ends a name */
   41: 
   42: #define is_name_beginner(c) \
   43:   ( lex_type[(unsigned char) (c)] & LEX_BEGIN_NAME )
   44: #define is_part_of_name(c) \
   45:   ( lex_type[(unsigned char) (c)] & LEX_NAME       )
   46: #define is_name_ender(c) \
   47:   ( lex_type[(unsigned char) (c)] & LEX_END_NAME   )
   48: 
   49: #ifndef is_a_char
   50: #define CHAR_MASK       (0xff)
   51: #define NOT_A_CHAR      (CHAR_MASK+1)
   52: #define is_a_char(c)    (((unsigned) (c)) <= CHAR_MASK)
   53: #endif /* is_a_char() */
   54: 
   55: extern char lex_type[];
   56: extern char is_end_of_line[];
   57: 
   58: extern int is_it_end_of_statement (void);
   59: extern char *find_end_of_line (char *, int);
   60: 
   61: extern int target_big_endian;
   62: 
   63: /* These are initialized by the CPU specific target files (tc-*.c).  */
   64: extern const char comment_chars[];
   65: extern const char line_comment_chars[];
   66: extern const char line_separator_chars[];
   67: 
   68: /* Table of -I directories.  */
   69: extern char **include_dirs;
   70: extern int include_dir_count;
   71: extern int include_dir_maxlen;
   72: 
   73: /* The offset in the absolute section.  */
   74: extern addressT abs_section_offset;
   75: 
   76: /* The label on a line, used by some of the pseudo-ops.  */
   77: extern symbolS *line_label;
   78: 
   79: /* This is used to support MRI common sections.  */
   80: extern symbolS *mri_common_symbol;
   81: 
   82: /* True if a stabs line debug statement is currently being emitted.  */
   83: extern int outputting_stabs_line_debug;
   84: 
   85: /* Possible arguments to .linkonce.  */
   86: enum linkonce_type {
   87:   LINKONCE_UNSET = 0,
   88:   LINKONCE_DISCARD,
   89:   LINKONCE_ONE_ONLY,
   90:   LINKONCE_SAME_SIZE,
   91:   LINKONCE_SAME_CONTENTS
   92: };
   93: 
   94: #ifndef TC_CASE_SENSITIVE
   95: extern char original_case_string[];
   96: #endif
   97: 
   98: extern void pop_insert (const pseudo_typeS *);
   99: extern unsigned int get_stab_string_offset
  100:   (const char *string, const char *stabstr_secname);
  101: extern void aout_process_stab (int, const char *, int, int, int);
  102: extern char *demand_copy_string (int *lenP);
  103: extern char *demand_copy_C_string (int *len_pointer);
  104: extern char get_absolute_expression_and_terminator (long *val_pointer);
  105: extern offsetT get_absolute_expression (void);
  106: extern unsigned int next_char_of_string (void);
  107: extern void s_mri_sect (char *);
  108: extern char *mri_comment_field (char *);
  109: extern void mri_comment_end (char *, int);
  110: extern void add_include_dir (char *path);
  111: extern void cons (int nbytes);
  112: extern void demand_empty_rest_of_line (void);
  113: extern void emit_expr (expressionS *exp, unsigned int nbytes);
  114: extern void equals (char *sym_name, int reassign);
  115: extern void float_cons (int float_type);
  116: extern void ignore_rest_of_line (void);
  117: #define discard_rest_of_line ignore_rest_of_line
  118: extern int output_leb128 (char *, valueT, int sign);
  119: extern void pseudo_set (symbolS * symbolP);
  120: extern void read_a_source_file (char *name);
  121: extern void read_begin (void);
  122: extern void read_print_statistics (FILE *);
  123: extern int sizeof_leb128 (valueT, int sign);
  124: extern void stabs_generate_asm_file (void);
  125: extern void stabs_generate_asm_lineno (void);
  126: extern void stabs_generate_asm_func (const char *, const char *);
  127: extern void stabs_generate_asm_endfunc (const char *, const char *);
  128: extern void do_repeat (int,const char *,const char *);
  129: extern void end_repeat (int);
  130: extern void do_parse_cons_expression (expressionS *, int);
  131: 
  132: extern void generate_lineno_debug (void);
  133: 
  134: extern void s_abort (int) ATTRIBUTE_NORETURN;
  135: extern void s_align_bytes (int arg);
  136: extern void s_align_ptwo (int);
  137: extern void bss_alloc (symbolS *, addressT, int);
  138: extern offsetT parse_align (int);
  139: extern symbolS *s_comm_internal (int, symbolS *(*) (int, symbolS *, addressT));
  140: extern symbolS *s_lcomm_internal (int, symbolS *, addressT);
  141: extern void s_app_file_string (char *, int);
  142: extern void s_app_file (int);
  143: extern void s_app_line (int);
  144: extern void s_comm (int);
  145: extern void s_data (int);
  146: extern void s_desc (int);
  147: extern void s_else (int arg);
  148: extern void s_elseif (int arg);
  149: extern void s_end (int arg);
  150: extern void s_endif (int arg);
  151: extern void s_err (int);
  152: extern void s_errwarn (int);
  153: extern void s_fail (int);
  154: extern void s_fill (int);
  155: extern void s_float_space (int mult);
  156: extern void s_func (int);
  157: extern void s_globl (int arg);
  158: extern void s_if (int arg);
  159: extern void s_ifb (int arg);
  160: extern void s_ifc (int arg);
  161: extern void s_ifdef (int arg);
  162: extern void s_ifeqs (int arg);
  163: extern void s_ignore (int arg);
  164: extern void s_include (int arg);
  165: extern void s_irp (int arg);
  166: extern void s_lcomm (int needs_align);
  167: extern void s_lcomm_bytes (int needs_align);
  168: extern void s_leb128 (int sign);
  169: extern void s_linkonce (int);
  170: extern void s_lsym (int);
  171: extern void s_macro (int);
  172: extern void s_mexit (int);
  173: extern void s_mri (int);
  174: extern void s_mri_common (int);
  175: extern void s_org (int);
  176: extern void s_print (int);
  177: extern void s_purgem (int);
  178: extern void s_rept (int);
  179: extern void s_set (int);
  180: extern void s_space (int mult);
  181: extern void s_stab (int what);
  182: extern void s_struct (int);
  183: extern void s_text (int);
  184: extern void stringer (int append_zero);
  185: extern void s_xstab (int what);
  186: extern void s_rva (int);
  187: extern void s_incbin (int);
  188: extern void s_vendor_attribute (int);
  189: extern void s_weakref (int);
Syntax (Markdown)