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;
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
int right_assoc;
};
-/* The generic method for targets to specify how their registers are
- named. The mapping can be derived from two sources: REGISTER_NAME;
- and builtin regs. */
+/* 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 */