2003-04-09 Andrew Cagney <cagney@redhat.com>
[deliverable/binutils-gdb.git] / gdb / parser-defs.h
index ded9c330f401b887ed152b2fb30fdbb6c3a6e27f..f03f53700961c96aaa79f919c0a4ff5ae24574b3 100644 (file)
@@ -1,5 +1,8 @@
 /* Parser definitions for GDB.
 /* 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.
 
    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
 
 #if !defined (PARSER_DEFS_H)
 #define PARSER_DEFS_H 1
 
-struct std_regs
-  {
-    char *name;
-    int regnum;
-  };
+#include "doublest.h"
 
 
-extern struct std_regs *std_regs;
-extern unsigned num_std_regs;
+struct block;
 
 extern struct expression *expout;
 extern int expout_size;
 
 extern struct expression *expout;
 extern int expout_size;
@@ -41,6 +39,12 @@ extern int expout_ptr;
 
 extern struct block *expression_context_block;
 
 
 extern struct block *expression_context_block;
 
+/* If expression_context_block is non-zero, then this is the PC within
+   the block that we want to evaluate expressions at.  When debugging
+   C or C++ code, we use this to find the exact line we're at, and
+   then look up the macro definitions active at that point.  */
+extern CORE_ADDR expression_context_pc;
+
 /* The innermost context required by the stack and register variables
    we've encountered so far. */
 extern struct block *innermost_block;
 /* The innermost context required by the stack and register variables
    we've encountered so far. */
 extern struct block *innermost_block;
@@ -77,11 +81,26 @@ struct symtoken
     int is_a_field_of_this;
   };
 
     int is_a_field_of_this;
   };
 
+struct objc_class_str
+  {
+    struct stoken stoken;
+    struct type *type;
+    int class;
+  };
+
+
 /* For parsing of complicated types.
    An array should be preceded in the list by the size of the array.  */
 enum type_pieces
   {
 /* For parsing of complicated types.
    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
   };
 /* The stack can contain either an enum type_pieces or an int.  */
 union type_stack_elt
@@ -132,6 +151,8 @@ extern void push_type (enum type_pieces);
 
 extern void push_type_int (int);
 
 
 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 enum type_pieces pop_type (void);
 
 extern int pop_type_int (void);
@@ -145,6 +166,10 @@ extern struct type *follow_types (struct type *);
 
 extern char *lexptr;
 
 
 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.
 
 /* Tokens that refer to names do so with explicit pointer and length,
    so they can share the storage that lexptr is parsing.
 
@@ -195,10 +220,9 @@ struct op_print
     int right_assoc;
   };
 
     int right_assoc;
   };
 
-/* 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. */
+/* Function used to avoid direct calls to fprintf
+   in the code generated by the bison parser.  */
 
 
-extern int target_map_name_to_register (char *, int);
+extern void parser_fprintf (FILE *, const char *, ...) ATTR_FORMAT (printf, 2 ,3);
 
 #endif /* PARSER_DEFS_H */
 
 #endif /* PARSER_DEFS_H */
This page took 0.024659 seconds and 4 git commands to generate.