Variable: autoconf-definition-regexp

autoconf-definition-regexp is a variable defined in autoconf.el.gz.

Value

"\\_<\\(?:AC_DEFINE\\(?:(\\[*\\(?1:\\(?:\\w\\|\\s_\\)+\\)\\(?2:(\\)?\\|_UNQUOTED(\\[*\\(?1:[^]),]+\\)\\)\\|\\(?:AC_SUBST\\|AH_TEMPLATE\\|AH_VERBATIM\\|AM_CONDITIONAL\\|AM_MISSING_PROG\\|\\(?2:\\(?:A\\(?:C_DEFUN\\(?:_ONCE\\)?\\|U_\\(?:ALIAS\\|DEFUN\\)\\)\\)\\)\\)(\\[*\\(?1:\\(?:\\w\\|\\s_\\)+\\)\\)"

Documentation

Matches Autoconf macro calls that define something.

The thing being defined is captured in the first subexpression group.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/autoconf.el.gz
(defconst autoconf-definition-regexp
  ;; Historically this `defconst' defined only group #1.
  ;; For internal Font Lock use, the presence of an optional group #2
  ;; identifies a function rather than variable definition.
  (rx-let ((argbeg (: ?\( (* ?\[)))
           (argend (in "]),"))
           (plaindef (: argbeg (group-n 1 autoconf--symbol))))
    (rx symbol-start
        (| (: "AC_DEFINE"
              ;; AC_DEFINE and AC_DEFINE_UNQUOTED can define object- and
              ;; function-like CPP macros.  An open-paren is easy to
              ;; detect in the case of AC_DEFINE.  Doing the same for
              ;; AC_DEFINE_UNQUOTED in the general case requires
              ;; knowledge of shell syntax, so don't bother for now.
              (| (: plaindef (? (group-n 2 ?\()))
                 (: "_UNQUOTED" argbeg (group-n 1 (+ (not argend))))))
           (: (| "AC_SUBST"
                 "AH_TEMPLATE"
                 "AH_VERBATIM"
                 "AM_CONDITIONAL"
                 "AM_MISSING_PROG"
                 (group-n 2 (| "AC_DEFUN"
                               "AC_DEFUN_ONCE"
                               "AU_ALIAS"
                               "AU_DEFUN")))
              plaindef))))
  "Matches Autoconf macro calls that define something.
The thing being defined is captured in the first subexpression group.")