|
|
1.1 ! root 1: /* read.h - of read.c ! 2: Copyright (C) 1986 Free Software Foundation, Inc. ! 3: ! 4: This file is part of GAS, the GNU Assembler. ! 5: ! 6: GAS is free software; you can redistribute it and/or modify ! 7: it under the terms of the GNU General Public License as published by ! 8: the Free Software Foundation; either version 1, or (at your option) ! 9: any later version. ! 10: ! 11: GAS is distributed in the hope that it will be useful, ! 12: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! 14: GNU General Public License for more details. ! 15: ! 16: You should have received a copy of the GNU General Public License ! 17: along with GAS; see the file COPYING. If not, write to ! 18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ! 19: ! 20: #import "expr.h" ! 21: ! 22: #define PERMIT_WHITESPACE /* Define to make whitespace be allowed in */ ! 23: /* many syntactically unnecessary places. */ ! 24: /* Normally undefined. For compatibility */ ! 25: /* with ancient GNU cc. */ ! 26: #undef PERMIT_WHITESPACE ! 27: ! 28: #ifdef PERMIT_WHITESPACE ! 29: #define SKIP_WHITESPACE() {if (* input_line_pointer == ' ') ++ input_line_pointer;} ! 30: #else ! 31: #define SKIP_WHITESPACE() ASSERT( * input_line_pointer != ' ' ) ! 32: #endif ! 33: ! 34: ! 35: #define LEX_NAME (1) /* may continue a name */ ! 36: #define LEX_BEGIN_NAME (2) /* may begin a name */ ! 37: ! 38: #define is_name_beginner(c) ( lex_type[(c) & 0xff] & LEX_BEGIN_NAME ) ! 39: #define is_part_of_name(c) ( lex_type[(c) & 0xff] & LEX_NAME ) ! 40: ! 41: /* ! 42: * A pseudo opcode table entry. ! 43: */ ! 44: typedef struct { ! 45: char *poc_name; /* assembler mnemonic, lower case, no '.' */ ! 46: void (*poc_handler)(int poc_val); /* Do the work */ ! 47: int poc_val; /* Value to pass to handler */ ! 48: } pseudo_typeS; ! 49: ! 50: extern char *input_line_pointer; /* -> char we are parsing now. */ ! 51: extern char *buffer_limit; /* -> 1 + last char in buffer. */ ! 52: extern const char lex_type[]; ! 53: extern unsigned long text_nsect; ! 54: ! 55: extern void read_begin( ! 56: void); ! 57: void read_a_source_file( ! 58: char *buffer); ! 59: extern long get_absolute_expression( ! 60: void); ! 61: extern void demand_empty_rest_of_line( ! 62: void); ! 63: extern void ignore_rest_of_line( ! 64: void); ! 65: extern void add_to_macro_definition( ! 66: char *char_pointer); ! 67: extern segT get_known_segmented_expression( ! 68: expressionS *expP); ! 69: extern void totally_ignore_line( ! 70: void); ! 71: ! 72: /* globally know pseudo-op functions (used by some assemblers in MACHINE.c) */ ! 73: extern void stringer( ! 74: int append_zero); ! 75: extern void s_space( ! 76: int value); ! 77: extern void s_abs( ! 78: int value); ! 79: extern void float_cons( ! 80: int float_type); ! 81: extern void cons( ! 82: int nbytes); ! 83: extern void s_globl( ! 84: int value); ! 85: extern void s_line( ! 86: int value); ! 87: extern void s_macro( ! 88: int value); ! 89: extern void s_endmacro( ! 90: int value); ! 91: extern void big_cons( ! 92: int nbytes);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.