/* Parser definitions for GDB.
- Copyright (C) 1986, 1989, 1990, 1991 Free Software Foundation, Inc.
+
+ Copyright 1986, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
+ 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+
Modified from expread.y by the Department of Computer Science at the
State University of New York at Buffalo.
#if !defined (PARSER_DEFS_H)
#define PARSER_DEFS_H 1
-struct std_regs
- {
- char *name;
- int regnum;
- };
-
-extern struct std_regs *std_regs;
-extern unsigned num_std_regs;
+#include "doublest.h"
extern struct expression *expout;
extern int expout_size;
An array should be preceded in the list by the size of the array. */
enum type_pieces
{
- tp_end = -1, tp_pointer, tp_reference, tp_array, tp_function
+ tp_end = -1,
+ tp_pointer,
+ tp_reference,
+ tp_array,
+ tp_function,
+ tp_const,
+ tp_volatile,
+ tp_space_identifier
};
/* The stack can contain either an enum type_pieces or an int. */
union type_stack_elt
extern void push_type_int (int);
+extern void push_type_address_space (char *);
+
extern enum type_pieces pop_type (void);
extern int pop_type_int (void);
extern char *lexptr;
+/* After a token has been recognized, this variable points to it.
+ Currently used only for error reporting. */
+extern char *prev_lexptr;
+
/* Tokens that refer to names do so with explicit pointer and length,
so they can share the storage that lexptr is parsing.
};
/* The generic method for targets to specify how their registers are
- named. The mapping can be derived from three sources:
- REGISTER_NAME; std_regs; or a target specific alias hook. */
+ named. The mapping can be derived from two sources: REGISTER_NAME;
+ and builtin regs. */
extern int target_map_name_to_register (char *, int);