X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fparser-defs.h;h=f03f53700961c96aaa79f919c0a4ff5ae24574b3;hb=2fbce69179c6c47b68e24e3bca6c729fec4a918d;hp=ded9c330f401b887ed152b2fb30fdbb6c3a6e27f;hpb=d0352a18a504a4e7b761f6b3264cf11347d8d056;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/parser-defs.h b/gdb/parser-defs.h index ded9c330f4..f03f537009 100644 --- a/gdb/parser-defs.h +++ b/gdb/parser-defs.h @@ -1,5 +1,8 @@ /* 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. @@ -23,14 +26,9 @@ #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; @@ -41,6 +39,12 @@ extern int expout_ptr; 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; @@ -77,11 +81,26 @@ struct symtoken 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 { - 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 @@ -132,6 +151,8 @@ extern void push_type (enum type_pieces); 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); @@ -145,6 +166,10 @@ extern struct type *follow_types (struct type *); 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. @@ -195,10 +220,9 @@ struct op_print 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 */