1 /* Objective-C language support definitions for GDB, the GNU debugger. 2 3 Copyright (C) 1992, 2005, 2007, 2008, 2009, 2010 4 Free Software Foundation, Inc. 5 6 Contributed by Apple Computer, Inc. 7 8 This program is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 3 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 20 21 #if !defined(OBJC_LANG_H) 22 #define OBJC_LANG_H 23 24 struct stoken; 25 26 struct value; 27 struct block; 28 29 extern int objc_parse (void); /* Defined in c-exp.y */ 30 31 extern void objc_error (char *); /* Defined in c-exp.y */ 32 33 extern CORE_ADDR lookup_objc_class (struct gdbarch *gdbarch, 34 char *classname); 35 extern CORE_ADDR lookup_child_selector (struct gdbarch *gdbarch, 36 char *methodname); 37 38 extern char *objc_demangle (const char *mangled, int options); 39 40 extern int find_objc_msgcall (CORE_ADDR pc, CORE_ADDR *new_pc); 41 42 extern char *parse_selector (char *method, char **selector); 43 44 extern char *parse_method (char *method, char *type, 45 char **class, char **category, 46 char **selector); 47 48 extern char *find_imps (struct symtab *symtab, struct block *block, 49 char *method, struct symbol **syms, 50 unsigned int *nsym, unsigned int *ndebug); 51 52 extern struct value *value_nsstring (struct gdbarch *gdbarch, 53 char *ptr, int len); 54 55 /* for parsing Objective C */ 56 extern void start_msglist (void); 57 extern void add_msglist (struct stoken *str, int addcolon); 58 extern int end_msglist (void); 59 60 struct symbol *lookup_struct_typedef (char *name, struct block *block, 61 int noerr); 62 63 #endif 64