|
|
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.