Variable: cc-imenu-objc-generic-expression

cc-imenu-objc-generic-expression is a variable defined in cc-menus.el.gz.

Value

"^\\([[:alpha:]_][[:alnum:]_:<>~]*\\)[    ]*([    ]*\\([^         (*][^)]*\\)?)[  ]*[^    ;(]\\|^\\<[^()\n]*[^[:alnum:]_:<>~]\\([[:alpha:]_][[:alnum:]_:<>~]*\\)\\([       \n]\\|\\\\\n\\)*(\\([   \n]\\|\\\\\n\\)*\\([^   \n(*][^()]*\\(([^()]*)[^()]*\\)*\\)?)\\([       \n]\\|\\\\\n\\)*[^      \n;(]\\|\\(^[-+][:[:alnum:]()*_<>\n	 ]*[;{]\\|^@interface[	 ]+[[:alnum:]_]+[	 ]*:\\|^@interface[	 ]+[[:alnum:]_]+[	 ]*([[:alnum:]_]+)\\|^@interface[	 ]+[[:alnum:]_]+[	 ]*.*$\\|^@implementation[	 ]+[[:alnum:]_]+[	 ]*([[:alnum:]_]+)\\|^@implementation[	 ]+[[:alnum:]_]+\\|^@protocol[	 ]+[[:alnum:]_]+\\)"

Documentation

Imenu generic expression for ObjC mode. See imenu-generic-expression.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/cc-menus.el.gz
(defvar cc-imenu-objc-generic-expression
  (concat
   ;;
   ;; For C
   ;;
   ;; > Special case to match a line like `main() {}'
   ;; > e.g. no return type, not even on the previous line.
   ;; Pick a token by (match-string 1)
   (car (cdr (nth 1 cc-imenu-c++-generic-expression))) ; -> index += 2
   (prog2 (setq cc-imenu-objc-generic-expression-noreturn-index 1) "")
   "\\|"
   ;; > General function name regexp
   ;; Pick a token by  (match-string 3)
   (car (cdr (nth 2 cc-imenu-c++-generic-expression))) ; -> index += 6
   (prog2 (setq cc-imenu-objc-generic-expression-general-func-index 3) "")
   ;; > Special case for definitions using phony prototype macros like:
   ;; > `int main _PROTO( (int argc,char *argv[]) )'.
   ;; Pick a token by  (match-string 8)
   (if cc-imenu-c-prototype-macro-regexp
       (concat
	"\\|"
	(car (cdr (nth 3 cc-imenu-c++-generic-expression))) ; -> index += 1
	(prog2 (setq cc-imenu-objc-generic-expression-objc-base-index 10) "")
	)
     (prog2 (setq cc-imenu-objc-generic-expression-objc-base-index 9) "")
     "")				; -> index += 0
   (prog2 (setq cc-imenu-objc-generic-expression-proto-index 9) "")
   ;;
   ;; For Objective-C
   ;; Pick a token by (match-string 8 or 9)
   ;;
   "\\|\\("
   "^[-+][:" c-alnum "()*_<>\n\t ]*[;{]"        ; Methods
   "\\|"
   "^@interface[\t ]+[" c-alnum "_]+[\t ]*:"
   "\\|"
   "^@interface[\t ]+[" c-alnum "_]+[\t ]*([" c-alnum "_]+)"
   "\\|"
   ;; For NSObject, NSProxy and Object... They don't have super class.
   "^@interface[\t ]+[" c-alnum "_]+[\t ]*.*$"
   "\\|"
   "^@implementation[\t ]+[" c-alnum "_]+[\t ]*([" c-alnum "_]+)"
   "\\|"
   "^@implementation[\t ]+[" c-alnum "_]+"
   "\\|"
   "^@protocol[\t ]+[" c-alnum "_]+" "\\)")
  "Imenu generic expression for ObjC mode.  See `imenu-generic-expression'.")