404

[ Avaa Bypassed ]




Upload:

Command:

botdev@3.21.43.104: ~ $
<?xml version="1.0" encoding="UTF-8"?>
<!--

 This file is part of GtkSourceView

 Author: Yevgen Muntyan <muntyan@tamu.edu>
 Copyright (C) 2006-2007 Yevgen Muntyan <muntyan@tamu.edu>

 GtkSourceView is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
 License as published by the Free Software Foundation; either
 version 2.1 of the License, or (at your option) any later version.

 GtkSourceView is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public License
 along with this library; if not, see <http://www.gnu.org/licenses/>.

-->
<language id="m4" name="m4" _section="Script" version="2.0">
  <metadata>
    <property name="mimetypes">application/x-m4</property>
    <property name="globs">*.m4;configure.ac;configure.in</property>
    <property name="line-comment-start">#</property>
  </metadata>

  <styles>
    <style id="m4-comment" name="m4 Comment" map-to="sh:comment"/>
    <style id="m4-macro" name="m4 Macro" map-to="def:keyword"/>
    <style id="ac-macro" name="Autoconf Macro" map-to="def:keyword"/>
    <style id="ac-macro-obsolete" name="Obsolete Autoconf Macro" map-to="def:error"/>
  </styles>

  <!--
  Refurbished and commented 2010 by P. F. Chimento <philip.chimento@gmail.com>

  How this language definition works.

  This 'm4' language definition actually highlights Autoconf M4 files. Autoconf
  consists of several parts: Autoconf, M4sugar, M4sh, Autoheader, Autoupdate,
  and Autotest, all of which define their own M4 macros. In addition, this file
  also highlights other M4 macros commonly used with Autoconf (those defined by
  Automake, Libtool, Gettext, and Pkgconfig) and ones used for building GTK
  packages (Intltool, Glib, and GConf).

  This language definition ironically does _not_ support pure M4 files: M4sugar
  redefines all the built-in M4 macros so that they start with m4_, and
  redefines the quote characters from `' to [].

  Autoconf's configure.ac files are processed by M4 into configure shell
  scripts. Therefore, text that is to appear in the output is actually shell
  script, and should be highlighted as such. However, some macros have arguments
  that are not meant to appear in the output, and it depends on the macro.
  For example, the macro
      AC_CHECK_FILE(file, [action-if-found], [action-if-not-found])
  has three arguments, the first one of which should not contain shell script.
  The remaining two can contain shell code, as well as other macros. Therefore,
  we divide the macros into categories depending on the number and type of their
  arguments: a string of 'm' (for M4 only) and 's' (for shell script mixed with
  M4) characters.

  TODO: In a future version, we might add 'c' to the mix, since some macros'
  arguments actually contain C code. Right now this is just highlighted as M4.

  Note that keeping track of the number of arguments to a macro also allows us
  to highlight any extra arguments as errors. Also, note that calling a macro
  with _fewer_ arguments is allowed, and in fact happens all the time. For
  example, in AC_CHECK_FILE above, the second and third arguments are optional
  and in fact have sensible defaults.

  Below, we define regexes, with names like 'macros-mss' that match every macro
  with that signature.

  IMPORTANT: if you add any macros, make sure that you make all your parentheses
  non-capturing by adding ?: to them! Otherwise, the highlighting will break
  (and in fact was broken in earlier versions of this file.)
  -->
  <definitions>
    <define-regex id="macros-m" extended="true">
      AC_(?:
        CHECK_(?:DECL|FUNC|HEADER)S_ONCE|
        CHECKING|
        CONFIG_(?:(?:(?:AUX|LIBOBJ|MACRO)_|SRC)DIR|SUBDIRS)|
        COPYRIGHT|
        ERLANG_NEED_ERLC?|
        F(?:77|C)_LIBRARY_LDFLAGS|
        FATAL
        INCLUDES_DEFAULT
        LANG(?:_(?:ASSERT|CONFTEST|FUNC_LINK_TRY|POP|PUSH|SOURCE))?|
        LIB(?:OBJS|SOURCES?)|
        MSG_(?:CHECKING|NOTICE|RESULT|WARN)|
        OPENMP|
        PREFIX_(?:DEFAULT|PROGRAM)|
        PREREQ|
        PROG_(?:CC|CXX|F77|OBJC(?:XX)?)|
        REPLACE_FUNCS|
        REQUIRE(?:_AUX_FILE)?|
        REVISION|
        SUBST_FILE|
        WARNING)|
      AH_(?:BOTTOM|TOP)|
      AS_(?:
        DIRNAME|
        EXIT|
        MKDIR_P|
        SET_STATUS|
        TR_(?:CPP|SH)|
        VAR_(?:POPDEF|TEST_SET))|
      m4_(?:
        chomp(?:_all)?|
        cleardivert|
        debug(?:file|mode)|
        decr|
        defn|
        divert(?:_(?:pop|push))?|
        errprintn|
        (?:re_)?escape|
        exit|
        expand|
        flatten|
        s?include|
        incr|
        len|
        (?:make|mks)temp|
        n|
        newline|
        normalize|
        pattern_(?:allow|forbid)|
        popdef|
        set_(?:delete|list|listc|size)|
        sign|
        strip|
        to(?:lower|upper)|
        warning|
        wrap(?:_lifo)?)|
      AT_(?:BANNER|CAPTURE_FILE|COPYRIGHT|INIT|KEYWORDS|SETUP|TESTED)|
      AM_(?:
        GNU_GETTEXT_(?:VERSION|NEED)|
        ICONV|
        INIT_AUTOMAKE|
        MAINTAINER_MODE|
        PROG_UPC|
        SUBST_NOTMAKE|
        XGETTEXT_OPTION)|
      LT_(?:INIT|LANG|PREREQ)|
      PKG_PROG_PKG_CONFIG|
      IT_PO_SUBDIR|
      GOBJECT_INTROSPECTION_(?:CHECK|REQUIRE)
    </define-regex>
    <define-regex id="macros-s" extended="true">
      AC_CONFIG_COMMANDS_(?:PRE|POST)|
      AS_(?:ECHO(?:_N)?|UNSET)|
      m4_(?:esyscmd(?:_s)?|syscmd)|
      AT_(?:X?FAIL|SKIP)_IF
    </define-regex>
    <define-regex id="macros-mm" extended="true">
      AC_(?:
        ARG_VAR|
        BEFORE|
        CHECK_ALIGNOF|
        CONFIG_TESTDIR|
        DIAGNOSE|
        ERLANG_(?:PATH_ERLC?|SUBST_INSTALL_LIB_SUBDIR)|
        F(?:77|C)_FUNC|
        LANG_(?:CALL|PROGRAM)|
        MSG_(?:ERROR|FAILURE)|
        PROG_FC)|
      AH_(?:TEMPLATE|VERBATIM)|
      AU_ALIAS|
      AS_(?:BOX|ESCAPE|TMPDIR|VAR_(?:APPEND|COPY|PUSHDEF))|
      m4_(?:
        append_uniq_w|
        apply|
        assert|
        change(?:com|quote)|
        (?:list)?cmp|
        (?:copy|rename)(?:_force)?|
        default(?:_nblank)?(?:_quoted)?|
        define(?:_default)?|
        defun|
        divert_(?:once|text)|
        fatal|
        index|
        map(?:all)?|
        pushdef|
        set_(?:contents|difference|dump|intersection|map|union)|
        split|
        stack_foreach(?:_lifo)?|
        text_box|
        version_compare|
        warn)|
      AT_DATA|
      GTK_DOC_CHECK|
      IT_PROG_INTLTOOL
    </define-regex>
    <define-regex id="macros-ms" extended="true">
      AC_(?:CACHE_VAL|DEFUN(?:_ONCE)?|SUBST)|
      AS_(?:INIT_GENERATED|VAR_(?:ARITH|SET))|
      AM_CONDITIONAL
    </define-regex>
    <define-regex id="macros-ss" extended="true">
      AC_(?:F(?:77|C)_DUMMY_MAIN|FC_(?:FREE|FIXED)FORM)
    </define-regex>
    <define-regex id="macros-mmm" extended="true">
      AC_(?:CHECK_SIZEOF|DEFINE(?:_UNQUOTED)?)|
      AS_SET_CATFILE|
      m4_(?:
        append|
        bpatsubst|
        bregexp|
        eval|
        ifn?blank|
        ifn?def|
        ifset|
        ifvaln?|
        map(?:all)?_sep|
        set_(?:empty|foreach)|
        substr|
        translit|
        version-prereq)|
      AM_GNU_GETTEXT
    </define-regex>
    <define-regex id="macros-mms" extended="true">
      AC_CACHE_CHECK|
      m4_foreach(?:_w)?
    </define-regex>
    <define-regex id="macros-msm">AU_DEFUN</define-regex>
    <define-regex id="macros-mss" extended="true">
      AC_(?:
        CHECK_(?:FILE|FUNC)(?:S)?|
        (?:COMPILE|LINK|PREPROC)_IFELSE|
        CONFIG_(?:COMMANDS|FILES|HEADERS|LINKS)|
        ERLANG_CHECK_LIB|
        FC_(?:LINE_LENGTH|SRCEXT))|
      AS_VAR_SET_IF|
      AM_(?:COND_IF|PATH_PYTHON|PROG_VALAC)|
      PKG_CHECK_EXISTS
    </define-regex>
    <define-regex id="macros-mmmm" extended="true">
      AC_(?:
        CHECK_(?:PROGS|(?:TARGET_)?TOOLS?)|
        PATH_(?:PROGS?|(?:TARGET_)?TOOL))|
      AS_HELP_STRING|
      m4_(?:
        map_args_w|
        set_(?:add|contains|map_sep|remove)|
        stack_foreach_sep(?:_lifo)?|
        text|wrap)
    </define-regex>
    <define-regex id="macros-mmms">AC_COMPUTE_INT</define-regex>
    <define-regex id="macros-mmss" extended="true">
      AC_(?:
        ARG_(?:ENABLE|WITH)|
        EGREP_(?:CPP|HEADER))|
      AS_VAR_IF|
      AT_ARG_OPTION(?:_ARG)?|
      PKG_CHECK_MODULES
    </define-regex>
    <define-regex id="macros-mssm" extended="true">
      AC_CHECK_(?:DECL|HEADER|MEMBER|TYPE)(?:S)?
    </define-regex>
    <define-regex id="macros-msss">AC_RUN_IFELSE</define-regex>
    <define-regex id="macros-ssss" extended="true">
      AC_C_BIGENDIAN|
      AS_LITERAL_(?:WORD_)?IF
    </define-regex>
    <define-regex id="macros-mmmmm" extended="true">
      m4_(?:append_uniq|for)|
      AC_INIT
    </define-regex>
    <define-regex id="macros-mmmss">AT_CHECK_EUNIT</define-regex>
    <define-regex id="macros-mmssm" extended="true">
      AC_(?:CHECK_LIB|SEARCH_LIBS|PATH_PROGS_FEATURE_CHECK)
    </define-regex>
    <define-regex id="macros-mmsss">AS_VERSION_COMPARE</define-regex>
    <define-regex id="macros-mmmmmm">AC_CHECK_PROG</define-regex>
    <define-regex id="macros-smmmss">AT_CHECK(?:_UNQUOTED)?</define-regex>

    <!-- 'mvarargs' and 'svarargs' mean that any number of 'm' or 's' arguments
    are accepted, respectively. These macros will not highlight extraneous
    arguments as errors. -->
    <define-regex id="macros-mvarargs" extended="true">
      m4_(?:
        argn|
        bmatch|
        bpatsubsts|
        car|
        case|
        cdr|
        builtin|
        combine|
        cond|
        count|
        curry|
        do|
        dquote(?:_elt)?|
        dumpdefs?|
        echo|
        errprint|
        format|
        if|
        ignore|
        indir|
        join(?:all)?|
        makelist|
        map_args(?:_(?:pair|sep))?|
        max|
        min|
        (?:un)?quote|
        reverse|
        set_add_all|
        shift(?:2|3|n)?|
        trace(?:off|on)|
        undefine|
        undivert)
    </define-regex>
    <define-regex id="macros-svarargs">AS_IF</define-regex>

    <!-- At this point, there is one macro left with even more complicated
    argument types: AS_CASE. We treat it specially later on. -->

    <!-- 'm4-quoted' matches text between quote brackets and highlights it as
    pure M4 (no shell code allowed). -->
    <context id="m4-quoted"><!-- style-ref="test:_yellow"-->
      <start>\[</start>
      <end>\]</end>
      <include>
        <context ref="m4-pure"/>
      </include>
    </context>

    <!-- 'm4-quoted-shell' matches text between quote brackets and highlights it
    as a mix of M4 and shell code. -->
    <context id="m4-quoted-shell">
      <start>\[</start>
      <end>\]</end>
      <include>
        <context ref="m4"/>
      </include>
    </context>

    <!-- This context matches text between parentheses that comes after a word,
    and treats it as a variable-length list of 'm' arguments. This is necessary
    for unknown or user-defined macros - without this context, their arguments
    would all be highlighted as shell code. -->
    <context id="m4-function-call"><!-- style-ref="test:_violet"-->
      <start>(?&lt;=[\w\d_])\((?!\))</start>
      <end>\)</end>
      <include>
        <context ref="ARG-M"/>
        <context>
          <start>,</start>
          <end>(?=[,\)])</end>
          <include>
            <context ref="ARG-M"/>
          </include>
        </context>
      </include>
    </context>

    <!-- M4 'dnl' comments are removed from the output, as opposed to shell '#'
    comments, which appear in the output. -->
    <context id="m4-comment" style-ref="m4-comment" end-at-line-end="true" class="comment" class-disabled="no-spell-check">
      <start>dnl</start>
      <include>
        <context ref="def:in-line-comment"/>
      </include>
    </context>

    <!-- In the following section, the contexts form a pretty straightforward
    state machine that consumes each macro argument and moves on to the next
    state. -->

    <!-- This state means all the expected arguments have been consumed, and so
    any remaining arguments are errors. -->
    <context id="NO-ARGS" style-ref="def:error">
      <start>,</start>
      <end>(?=\))</end>
    </context>

    <!-- This is an argument containing only pure M4. -->
    <context id="ARG-M">
      <include>
        <context ref="m4-pure"/>
      </include>
    </context>

    <!-- This is an argument containing a mix of M4 and shell code. -->
    <context id="ARG-S">
      <include>
        <context>
          <start>\[</start>
          <end>\]</end>
          <include>
            <context ref="m4"/>
          </include>
        </context>
        <context ref="m4"/>
      </include>
    </context>

    <!-- The TO-ARGS- states match a comma, and then enter the corresponding
    ARGS- state -->
    <context id="TO-ARGS-M">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-M"/></include>
    </context>

    <context id="TO-ARGS-S">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-S"/></include>
    </context>

    <context id="TO-ARGS-MM">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-MM"/></include>
    </context>

    <context id="TO-ARGS-MS">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-MS"/></include>
    </context>

    <context id="TO-ARGS-SM">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-SM"/></include>
    </context>

    <context id="TO-ARGS-SS">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-SS"/></include>
    </context>

    <context id="TO-ARGS-MMM">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-MMM"/></include>
    </context>

    <context id="TO-ARGS-MMS">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-MMS"/></include>
    </context>

    <context id="TO-ARGS-MSS">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-MSS"/></include>
    </context>

    <context id="TO-ARGS-SSM">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-SSM"/></include>
    </context>

    <context id="TO-ARGS-SSS">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-SSS"/></include>
    </context>

    <context id="TO-ARGS-MMMM">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-MMMM"/></include>
    </context>

    <context id="TO-ARGS-MMSS">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-MMSS"/></include>
    </context>

    <context id="TO-ARGS-MSSM">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-MSSM"/></include>
    </context>

    <context id="TO-ARGS-MSSS">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-MSSS"/></include>
    </context>

    <context id="TO-ARGS-MMMMM">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-MMMMM"/></include>
    </context>

    <context id="TO-ARGS-MMMSS">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-MMMSS"/></include>
    </context>

    <context id="TO-ARGS-MVARARGS">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-MVARARGS"/></include>
    </context>

    <context id="TO-ARGS-SVARARGS">
      <start>,</start>
      <end>(?=[,\)])</end>
      <include><context ref="ARGS-SVARARGS"/></include>
    </context>

    <!-- The ARGS- states match an argument of the type of the head of the
    argument list, and then enter the TO-ARGS- state corresponding to the
    tail of the argument list. (Or CAR and CDR, if you prefer.) -->

    <context id="ARGS-S"><include>
      <context ref="ARG-S"/>
      <context ref="NO-ARGS"/>
    </include></context>

    <context id="ARGS-M"><include>
      <context ref="ARG-M"/>
      <context ref="NO-ARGS"/>
    </include></context>

    <context id="ARGS-MM"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-M"/>
    </include></context>

    <context id="ARGS-MS"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-S"/>
    </include></context>

    <context id="ARGS-SM"><include>
      <context ref="ARG-S"/>
      <context ref="TO-ARGS-M"/>
    </include></context>

    <context id="ARGS-SS"><include>
      <context ref="ARG-S"/>
      <context ref="TO-ARGS-S"/>
    </include></context>

    <context id="ARGS-MMM"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-MM"/>
    </include></context>

    <context id="ARGS-MMS"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-MS"/>
    </include></context>

    <context id="ARGS-MSM"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-SM"/>
    </include></context>

    <context id="ARGS-MSS"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-SS"/>
    </include></context>

    <context id="ARGS-SSM"><include>
      <context ref="ARG-S"/>
      <context ref="TO-ARGS-SM"/>
    </include></context>

    <context id="ARGS-SSS"><include>
      <context ref="ARG-S"/>
      <context ref="TO-ARGS-SS"/>
    </include></context>

    <context id="ARGS-MMMM"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-MMM"/>
    </include></context>

    <context id="ARGS-MMMS"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-MMS"/>
    </include></context>

    <context id="ARGS-MMSS"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-MSS"/>
    </include></context>

    <context id="ARGS-MSSM"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-SSM"/>
    </include></context>

    <context id="ARGS-MSSS"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-SSS"/>
    </include></context>

    <context id="ARGS-SSSS"><include>
      <context ref="ARG-S"/>
      <context ref="TO-ARGS-SSS"/>
    </include></context>

    <context id="ARGS-MMMMM"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-MMMM"/>
    </include></context>

    <context id="ARGS-MMMSS"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-MMSS"/>
    </include></context>

    <context id="ARGS-MMSSM"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-MSSM"/>
    </include></context>

    <context id="ARGS-MMSSS"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-MSSS"/>
    </include></context>

    <context id="ARGS-MMMMMM"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-MMMMM"/>
    </include></context>

    <context id="ARGS-SMMMSS"><include>
      <context ref="ARG-S"/>
      <context ref="TO-ARGS-MMMSS"/>
    </include></context>

    <!-- The ARGS-?VARARGS states go to their own TO-ARGS- states, of course -->
    <context id="ARGS-MVARARGS"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-MVARARGS"/>
    </include></context>

    <context id="ARGS-SVARARGS"><include>
      <context ref="ARG-S"/>
      <context ref="TO-ARGS-SVARARGS"/>
    </include></context>

    <!-- AS_CASE is the odd man out. Its signature should actually be M(MS)+S?,
    i.e. an M followed by one or more pairs of MS, ending with an optional S,
    but there's no way to highlight that properly without knowing whether a
    given argument is the last one. Therefore, we highlight it as M plus
    SVARARGS. -->
    <context id="ARGS-AS-CASE"><include>
      <context ref="ARG-M"/>
      <context ref="TO-ARGS-SVARARGS"/>
    </include></context>

    <!-- The func- contexts are the ones actually included in the 'm4-pure'
    context below. They match the macro names (which we defined in the regexes
    above), and the opening and closing parentheses, which are all highlighted.
    -->

    <context id="func-m">
      <start>\b(\%{macros-m})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-M"/>
      </include>
    </context>

    <context id="func-s">
      <start>\b(\%{macros-s})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-S"/>
      </include>
    </context>

    <context id="func-mm">
      <start>\b(\%{macros-mm})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-MM"/>
      </include>
    </context>

    <context id="func-ms">
      <start>\b(\%{macros-ms})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-MS"/>
      </include>
    </context>

    <context id="func-ss">
      <start>\b(\%{macros-ss})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-SS"/>
      </include>
    </context>

    <context id="func-mmm">
      <start>\b(\%{macros-mmm})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="m4-macro"/>
        <context sub-pattern="2" where="start" style-ref="m4-macro"/>
        <context sub-pattern="0" where="end" style-ref="m4-macro"/>
        <context ref="ARGS-MMM"/>
      </include>
    </context>

    <context id="func-mms">
      <start>\b(\%{macros-mms})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="m4-macro"/>
        <context sub-pattern="2" where="start" style-ref="m4-macro"/>
        <context sub-pattern="0" where="end" style-ref="m4-macro"/>
        <context ref="ARGS-MMS"/>
      </include>
    </context>

    <context id="func-msm">
      <start>\b(\%{macros-msm})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="m4-macro"/>
        <context sub-pattern="2" where="start" style-ref="m4-macro"/>
        <context sub-pattern="0" where="end" style-ref="m4-macro"/>
        <context ref="ARGS-MSM"/>
      </include>
    </context>

    <context id="func-mss">
      <start>\b(\%{macros-mss})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-MSS"/>
      </include>
    </context>

    <context id="func-mmmm">
      <start>\b(\%{macros-mmmm})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="m4-macro"/>
        <context sub-pattern="2" where="start" style-ref="m4-macro"/>
        <context sub-pattern="0" where="end" style-ref="m4-macro"/>
        <context ref="ARGS-MMMM"/>
      </include>
    </context>

    <context id="func-mmms">
      <start>\b(\%{macros-mmms})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="m4-macro"/>
        <context sub-pattern="2" where="start" style-ref="m4-macro"/>
        <context sub-pattern="0" where="end" style-ref="m4-macro"/>
        <context ref="ARGS-MMMS"/>
      </include>
    </context>

    <context id="func-mmss">
      <start>\b(\%{macros-mmss})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-MMSS"/>
      </include>
    </context>

    <context id="func-mssm">
      <start>\b(\%{macros-mssm})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-MSSM"/>
      </include>
    </context>

    <context id="func-msss">
      <start>\b(\%{macros-msss})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-MSSS"/>
      </include>
    </context>

    <context id="func-ssss">
      <start>\b(\%{macros-ssss})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-SSSS"/>
      </include>
    </context>

    <context id="func-mmmmm">
      <start>\b(\%{macros-mmmmm})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-MMMMM"/>
      </include>
    </context>

    <context id="func-mmmss">
      <start>\b(\%{macros-mmmss})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-MMMSS"/>
      </include>
    </context>

    <context id="func-mmssm">
      <start>\b(\%{macros-mmssm})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-MMSSM"/>
      </include>
    </context>

    <context id="func-mmsss">
      <start>\b(\%{macros-mmsss})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-MMSSS"/>
      </include>
    </context>

    <context id="func-mmmmmm">
      <start>\b(\%{macros-mmmmmm})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-MMMMMM"/>
      </include>
    </context>

    <context id="func-smmmss">
      <start>\b(\%{macros-smmmss})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-SMMMSS"/>
      </include>
    </context>

    <context id="func-mvarargs">
      <start>\b(\%{macros-mvarargs})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-MVARARGS"/>
      </include>
    </context>

    <context id="func-svarargs">
      <start>\b(\%{macros-svarargs})\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-SVARARGS"/>
      </include>
    </context>

    <context id="func-as-case">
      <start>\b(AS_CASE)\s*(\()</start>
      <end>\)</end>
      <include>
        <context sub-pattern="1" where="start" style-ref="ac-macro"/>
        <context sub-pattern="2" where="start" style-ref="ac-macro"/>
        <context sub-pattern="0" where="end" style-ref="ac-macro"/>
        <context ref="ARGS-AS-CASE"/>
      </include>
    </context>

    <!-- This context highlights pure M4 code. -->
    <context id="m4-pure">
      <include>
        <context ref="m4-comment"/>
        <context ref="func-m"/>
        <context ref="func-s"/>
        <context ref="func-mm"/>
        <context ref="func-ms"/>
        <context ref="func-ss"/>
        <context ref="func-mmm"/>
        <context ref="func-mms"/>
        <context ref="func-msm"/>
        <context ref="func-mss"/>
        <context ref="func-mmmm"/>
        <context ref="func-mmms"/>
        <context ref="func-mmss"/>
        <context ref="func-mssm"/>
        <context ref="func-msss"/>
        <context ref="func-ssss"/>
        <context ref="func-mmmmm"/>
        <context ref="func-mmmss"/>
        <context ref="func-mmssm"/>
        <context ref="func-mmsss"/>
        <context ref="func-mmmmmm"/>
        <context ref="func-smmmss"/>
        <context ref="func-mvarargs"/>
        <context ref="func-svarargs"/>
        <context ref="func-as-case"/>
        <context ref="m4-macros-noargs"/>
        <context ref="ac-macros-noargs"/>
        <context ref="ac-macros-noargs-2"/>
        <context ref="ac-macros-optargs"/>
        <context ref="ac-macros-obsolete"/>
        <context ref="am-macros-noargs"/>
        <context ref="am-macros-optargs"/>
        <context ref="am-macros-obsolete"/>
        <context ref="am-macros-private"/>
        <context ref="misc-macros-noargs"/>
        <context ref="misc-macros-optargs"/>
        <context ref="m4-function-call"/>
        <context ref="m4-quoted"/>
        <context extend-parent="false" style-ref="def:error">
          <match>\]</match>
        </context>
      </include>
    </context>

    <context id="shell-line-comment" style-ref="sh:comment" end-at-line-end="true" class="comment" class-disabled="no-spell-check">
      <start>(?&lt;!\S)#|(?&lt;=\[)#</start>
      <include>
        <context ref="sh:line-comment" original="true"/>
      </include>
    </context>

    <replace id="sh:sh" ref="m4"/>
    <replace id="sh:line-comment" ref="shell-line-comment"/>

    <!-- This is the main 'm4' context. It highlights a mixture of M4 and shell
    code. -->
    <context id="m4" class="no-spell-check">
      <include>
        <context ref="m4-quoted-shell"/>
        <context ref="m4-pure"/>
        <context ref="sh:sh" original="true"/>
        <context id="bad-paren" extend-parent="false" style-ref="def:error">
          <match>\)</match>
        </context>
      </include>
    </context>

    <!-- Now come the macros that don't take any arguments. They are not called
    with empty parentheses, just with the macro name: e.g. AC_OUTPUT. We can
    simply use keyword contexts for them. -->

    <context id="m4-macros-noargs" style-ref="m4-macro">
      <prefix>\bm4_</prefix>
      <keyword>divnum</keyword>
      <keyword>init</keyword>
      <keyword>location</keyword>
      <keyword>sysval</keyword>
    </context>

    <!-- We also have keyword contexts for macros that do take arguments, but
    can also be called without any; for example, AC_PROG_CC takes a list of
    compiler names to search for, but is mostly just called without it. Since
    the 'func-m' context would only match AC_PROG_CC(), we repeat this kind of
    macros in '-optargs' contexts. -->

    <context id="m4-macros-optargs" style-ref="m4-macro">
      <prefix>\bm4_</prefix>
      <keyword>change(com|quote)</keyword>
      <keyword>debug(file|mode)</keyword>
      <keyword>divert_pop</keyword>
      <keyword>newline</keyword>
      <keyword>trace(on|off)</keyword>
    </context>

    <context id="ac-macros-noargs" style-ref="ac-macro">
      <prefix>\bAC_</prefix>
      <keyword>ARG_PROGRAM</keyword>
      <keyword>AUTOCONF_VERSION</keyword>
      <keyword>C_BACKSLASH_A</keyword>
      <keyword>CACHE_(LOAD|SAVE)</keyword>
      <keyword>CANONICAL_(BUILD|HOST|TARGET)</keyword>
      <keyword>C_CHAR_UNSIGNED</keyword>
      <keyword>C_CONST</keyword>
      <keyword>C_FLEXIBLE_ARRAY_MEMBER</keyword>
      <keyword>C_INLINE</keyword>
      <keyword>C_PROTOTYPES</keyword>
      <keyword>C_RESTRICT</keyword>
      <keyword>C_STRINGIZE</keyword>
      <keyword>C_TYPEOF</keyword>
      <keyword>C_VARARRAYS</keyword>
      <keyword>C_VOLATILE</keyword>
      <keyword>DISABLE_OPTION_CHECKING</keyword>
      <keyword>ERLANG_SUBST_(((INSTALL_)?LIB|ROOT)_DIR|ERTS_VER)</keyword>
      <keyword>F77_MAIN</keyword>
      <keyword>F77_WRAPPERS</keyword>
      <keyword>FC_MAIN</keyword>
      <keyword>FC_WRAPPERS</keyword>
      <keyword>FUNC_ALLOCA</keyword>
      <keyword>FUNC_CHOWN</keyword>
      <keyword>FUNC_CLOSEDIR_VOID</keyword>
      <keyword>FUNC_ERROR_AT_LINE</keyword>
      <keyword>FUNC_FNMATCH(_GNU)?</keyword>
      <keyword>FUNC_FORK</keyword>
      <keyword>FUNC_FSEEKO</keyword>
      <keyword>FUNC_GETGROUPS</keyword>
      <keyword>FUNC_GETLOADAVG</keyword>
      <keyword>FUNC_GETMNTENT</keyword>
      <keyword>FUNC_GETPGRP</keyword>
      <keyword>FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK</keyword>
      <keyword>FUNC_LSTAT</keyword>
      <keyword>FUNC_MALLOC</keyword>
      <keyword>FUNC_MBRTOWC</keyword>
      <keyword>FUNC_MEMCMP</keyword>
      <keyword>FUNC_MKTIME</keyword>
      <keyword>FUNC_MMAP</keyword>
      <keyword>FUNC_OBSTACK</keyword>
      <keyword>FUNC_REALLOC</keyword>
      <keyword>FUNC_SELECT_ARGTYPES</keyword>
      <keyword>FUNC_SETPGRP</keyword>
      <keyword>FUNC_STAT</keyword>
      <keyword>FUNC_STRCOLL</keyword>
      <keyword>FUNC_STRERROR_R</keyword>
      <keyword>FUNC_STRFTIME</keyword>
      <keyword>FUNC_STRNLEN</keyword>
      <keyword>FUNC_STRTOD</keyword>
      <keyword>FUNC_STRTOLD</keyword>
      <keyword>FUNC_UTIME_NULL</keyword>
      <keyword>FUNC_VPRINTF</keyword>
      <keyword>HEADER_ASSERT</keyword>
      <keyword>HEADER_DIRENT</keyword>
      <keyword>HEADER_MAJOR</keyword>
      <keyword>HEADER_RESOLV</keyword>
      <keyword>HEADER_STAT</keyword>
      <keyword>HEADER_STDBOOL</keyword>
      <keyword>HEADER_STDC</keyword>
      <keyword>HEADER_SYS_WAIT</keyword>
      <keyword>HEADER_TIME</keyword>
      <keyword>HEADER_TIOCGWINSZ</keyword>
      <keyword>LANG_DEFINES_PROVIDED</keyword>
      <keyword>LANG_WERROR</keyword>
      <keyword>OUTPUT</keyword>
      <keyword>PACKAGE_BUGREPORT</keyword>
      <keyword>PACKAGE_NAME</keyword>
      <keyword>PACKAGE_STRING</keyword>
      <keyword>PACKAGE_TARNAME</keyword>
      <keyword>PACKAGE_URL</keyword>
      <keyword>PACKAGE_VERSION</keyword>
      <keyword>PATH_X</keyword>
      <keyword>PATH_XTRA</keyword>
      <keyword>PRESERVE_HELP_ORDER</keyword>
      <keyword>PROG_AWK</keyword>
      <keyword>PROG_CC(_C(89|99|_O))</keyword>
      <keyword>PROG_CC_STDC</keyword>
      <keyword>PROG_CPP(_WERROR)?</keyword>
      <keyword>PROG_CXX(CPP|_C_O)?</keyword>
      <keyword>PROG_EGREP</keyword>
      <keyword>PROG_F77_C_O</keyword>
      <keyword>PROG_FC_C_O</keyword>
      <keyword>PROG_FGREP</keyword>
      <keyword>PROG_GCC_TRADITIONAL</keyword>
      <keyword>PROG_GREP</keyword>
      <keyword>PROG_INSTALL</keyword>
      <keyword>PROG_LEX</keyword>
      <keyword>PROG_LN_S</keyword>
      <keyword>PROG_MAKE_SET</keyword>
      <keyword>PROG_MKDIR_P</keyword>
      <keyword>PROG_OBJ(CXX)?CPP</keyword>
      <keyword>PROG_RANLIB</keyword>
      <keyword>PROG_SED</keyword>
      <keyword>PROG_YACC</keyword>
      <keyword>REPLACE_FNMATCH</keyword>
      <keyword>REQUIRE_CPP</keyword>
      <keyword>STRUCT_DIRENT_D_(INO|TYPE)</keyword>
      <keyword>STRUCT_ST_BLOCKS</keyword>
      <keyword>STRUCT_TIMEZONE</keyword>
      <keyword>STRUCT_TM</keyword>
      <keyword>SYS_INTERPRETER</keyword>
      <keyword>SYS_LARGEFILE</keyword>
      <keyword>SYS_LONG_FILE_NAMES</keyword>
      <keyword>SYS_POSIX_TERMIOS</keyword>
      <keyword>TYPE_GETGROUPS</keyword>
      <keyword>TYPE_INT(16_T|32_T|64_T|8_T)</keyword>
      <keyword>TYPE_INTMAX_T</keyword>
      <keyword>TYPE_INTPTR_T</keyword>
      <keyword>TYPE_LONG_DOUBLE(_WIDER)?</keyword>
      <keyword>TYPE_LONG_LONG_INT</keyword>
      <keyword>TYPE_MBSTATE_T</keyword>
      <keyword>TYPE_MODE_T</keyword>
      <keyword>TYPE_OFF_T</keyword>
      <keyword>TYPE_PID_T</keyword>
      <keyword>TYPE_SIGNAL</keyword>
      <keyword>TYPE_SIZE_T</keyword>
      <keyword>TYPE_SSIZE_T</keyword>
      <keyword>TYPE_UID_T</keyword>
      <keyword>TYPE_UINT(16_T|32_T|64_T|8_T)</keyword>
      <keyword>TYPE_UINTMAX_T</keyword>
      <keyword>TYPE_UINTPTR_T</keyword>
      <keyword>TYPE_UNSIGNED_LONG_LONG_INT</keyword>
      <keyword>USE_SYSTEM_EXTENSIONS</keyword>
    </context>

    <context id="ac-macros-noargs-2" style-ref="ac-macro">
      <prefix>\b</prefix>
      <keyword>AH_HEADER</keyword>
      <keyword>AS_BOURNE_COMPATIBLE</keyword>
      <keyword>AS_INIT</keyword>
      <keyword>AS_LINENO_PREPARE</keyword>
      <keyword>AS_ME_PREPARE</keyword>
      <keyword>AS_MESSAGE_FD</keyword>
      <keyword>AS_MESSAGE_LOG_FD</keyword>
      <keyword>AS_ORIGINAL_STDIN_FD</keyword>
      <keyword>AS_SHELL_SANITIZE</keyword>
      <keyword>AT_CLEANUP</keyword>
      <keyword>AT_COLOR_TESTS</keyword>
    </context>

    <context id="ac-macros-optargs" style-ref="ac-macro">
      <prefix>\b</prefix>
      <keyword>AC_C_BIGENDIAN</keyword>
      <keyword>AC_ERLANG_(PATH|NEED)_ERLC?</keyword>
      <keyword>AC_F(77|C)_DUMMY_MAIN</keyword>
      <keyword>AC_FC_((FIXED|FREE)FORM|LINE_LENGTH)</keyword>
      <keyword>AC_INCLUDES_DEFAULT</keyword>
      <keyword>AC_LANG_POP</keyword>
      <keyword>AC_PROG_(CC|CXX|OBJC(XX)?|F(77|C))</keyword>
      <keyword>AS_EXIT</keyword>
      <keyword>AT_INIT</keyword>
    </context>

    <!-- Deprecated macros are highlighted as errors. We don't bother
    highlighting their arguments properly, because they're deprecated anyway!-->

    <context id="ac-macros-obsolete" style-ref="ac-macro-obsolete">
      <prefix>\bAC_</prefix>
      <keyword>AIX</keyword>
      <keyword>ALLOCA</keyword>
      <keyword>ARG_ARRAY</keyword>
      <keyword>CANONICAL_SYSTEM</keyword>
      <keyword>C_CROSS</keyword>
      <keyword>CHAR_UNSIGNED</keyword>
      <keyword>CHECKING</keyword>
      <keyword>C_LONG_DOUBLE</keyword>
      <keyword>COMPILE_CHECK</keyword>
      <keyword>CONFIG_HEADER</keyword>
      <keyword>CONST</keyword>
      <keyword>CROSS_CHECK</keyword>
      <keyword>CYGWIN</keyword>
      <keyword>DECL_SYS_SIGLIST</keyword>
      <keyword>DECL_YYTEXT</keyword>
      <keyword>DIR_HEADER</keyword>
      <keyword>DISABLE_FAST_INSTALL</keyword>
      <keyword>DISABLE_SHARED</keyword>
      <keyword>DISABLE_STATIC</keyword>
      <keyword>DYNIX_SEQ</keyword>
      <keyword>ENABLE(_(SHARED|STATIC))?</keyword>
      <keyword>EMXOS2</keyword>
      <keyword>ERROR</keyword>
      <keyword>EXEEXT</keyword>
      <keyword>FIND_X</keyword>
      <keyword>FIND_XTRA</keyword>
      <keyword>FOREACH</keyword>
      <keyword>FUNC_CHECK</keyword>
      <keyword>FUNC_SETVBUF_REVERSED</keyword>
      <keyword>FUNC_WAIT3</keyword>
      <keyword>GCC_TRADITIONAL</keyword>
      <keyword>GETGROUPS_T</keyword>
      <keyword>GETLOADAVG</keyword>
      <keyword>GNU_SOURCE</keyword>
      <keyword>HAVE_FUNCS</keyword>
      <keyword>HAVE_HEADERS</keyword>
      <keyword>HAVE_LIBRARY</keyword>
      <keyword>HAVE_POUNDBANG</keyword>
      <keyword>HEADER_CHECK</keyword>
      <keyword>HEADER_EGREP</keyword>
      <keyword>HELP_STRING</keyword>
      <keyword>INLINE</keyword>
      <keyword>INT_16_BITS</keyword>
      <keyword>IRIX_SUN</keyword>
      <keyword>LANG_C</keyword>
      <keyword>LANG_CPLUSPLUS</keyword>
      <keyword>LANG_FORTRAN77</keyword>
      <keyword>LANG_RESTORE</keyword>
      <keyword>LANG_SAVE</keyword>
      <keyword>LIBTOOL_DLOPEN</keyword>
      <keyword>LIBTOOL_WIN32_DLL</keyword>
      <keyword>LINK_FILES</keyword>
      <keyword>LN_S</keyword>
      <keyword>LONG_64_BITS</keyword>
      <keyword>LONG_DOUBLE</keyword>
      <keyword>LONG_FILE_NAMES</keyword>
      <keyword>MAJOR_HEADER</keyword>
      <keyword>MEMORY_H</keyword>
      <keyword>MINGW32</keyword>
      <keyword>MINIX</keyword>
      <keyword>MINUS_C_MINUS_O</keyword>
      <keyword>MMAP</keyword>
      <keyword>MODE_T</keyword>
      <keyword>OBJEXT</keyword>
      <keyword>OBSOLETE</keyword>
      <keyword>OFF_T</keyword>
      <keyword>OUTPUT_COMMANDS</keyword>
      <keyword>PID_T</keyword>
      <keyword>PREFIX</keyword>
      <keyword>PROG_(INTL|LIB)TOOL</keyword>
      <keyword>PROGRAM_CHECK</keyword>
      <keyword>PROGRAM_EGREP</keyword>
      <keyword>PROGRAM_PATH</keyword>
      <keyword>PROGRAMS_CHECK</keyword>
      <keyword>PROGRAMS_PATH</keyword>
      <keyword>REMOTE_TAPE</keyword>
      <keyword>RESTARTABLE_SYSCALLS</keyword>
      <keyword>RETSIGTYPE</keyword>
      <keyword>RSH</keyword>
      <keyword>SCO_INTL</keyword>
      <keyword>SET_MAKE</keyword>
      <keyword>SETVBUF_REVERSED</keyword>
      <keyword>SIZEOF_TYPE</keyword>
      <keyword>SIZE_T</keyword>
      <keyword>STAT_MACROS_BROKEN</keyword>
      <keyword>ST_BLKSIZE</keyword>
      <keyword>ST_BLOCKS</keyword>
      <keyword>STDC_HEADERS</keyword>
      <keyword>STRCOLL</keyword>
      <keyword>ST_RDEV</keyword>
      <keyword>SYS_RESTARTABLE_SYSCALLS</keyword>
      <keyword>SYS_SIGLIST_DECLARED</keyword>
      <keyword>TEST_CPP</keyword>
      <keyword>TEST_PROGRAM</keyword>
      <keyword>TIME_WITH_SYS_TIME</keyword>
      <keyword>TIMEZONE</keyword>
      <keyword>TRY_COMPILE</keyword>
      <keyword>TRY_CPP</keyword>
      <keyword>TRY_LINK_FUNC</keyword>
      <keyword>TRY_LINK</keyword>
      <keyword>TRY_RUN</keyword>
      <keyword>UID_T</keyword>
      <keyword>UNISTD_H</keyword>
      <keyword>USG</keyword>
      <keyword>UTIME_NULL</keyword>
      <keyword>VALIDATE_CACHED_SYSTEM_TUPLE</keyword>
      <keyword>VERBOSE</keyword>
      <keyword>VFORK</keyword>
      <keyword>VPRINTF</keyword>
      <keyword>WAIT3</keyword>
      <keyword>WARN</keyword>
      <keyword>WITH</keyword>
      <keyword>WORDS_BIGENDIAN</keyword>
      <keyword>XENIX_DIR</keyword>
      <keyword>YYTEXT_POINTER</keyword>
    </context>

    <context id="am-macros-noargs" style-ref="ac-macro">
      <prefix>\bAM_</prefix>
      <keyword>ENABLE_MULTILIB</keyword>
      <keyword>GCONF_SOURCE_2</keyword>
      <keyword>GLIB_GNU_GETTEXT</keyword>
      <keyword>GNU_GETTEXT_INTL_SUBDIR</keyword>
      <keyword>PATH_LISPDIR</keyword>
      <keyword>PO_SUBDIRS</keyword>
      <keyword>PROG_AS</keyword>
      <keyword>PROG_CC_C_O</keyword>
      <keyword>PROG_GCJ</keyword>
      <keyword>PROG_LEX</keyword>
      <keyword>SILENT_RULES</keyword>
      <keyword>WITH_DMALLOC</keyword>
      <keyword>WITH_REGEX</keyword>
    </context>

    <context id="am-macros-optargs" style-ref="ac-macro">
      <prefix>\bAM_</prefix>
      <keyword>INIT_AUTOMAKE</keyword>
      <keyword>MAINTAINER_MODE</keyword>
      <keyword>PATH_PYTHON</keyword>
      <keyword>PROG_(UPC|VALAC)</keyword>
    </context>

    <context id="am-macros-private" style-ref="ac-macro-obsolete">
      <prefix>\bAM_</prefix>
      <keyword>DEP_TRACK</keyword>
      <keyword>MAKE_INCLUDE</keyword>
      <keyword>OUTPUT_DEPENDENCY_COMMANDS</keyword>
      <keyword>PROG_INSTALL_STRIP</keyword>
      <keyword>SANITY_CHECK</keyword>
      <keyword>SET_DEPDIR</keyword>
    </context>

    <context id="am-macros-obsolete" style-ref="ac-macro-obsolete">
      <prefix>\bAM_</prefix>
      <keyword>C_PROTOTYPES</keyword>
      <keyword>CONFIG_HEADER</keyword>
      <keyword>HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL</keyword>
      <keyword>PATH_CHECK</keyword>
      <keyword>PROG_(LIBTOOL|MKDIR_P)</keyword>
      <keyword>SYS_POSIX_TERMIOS</keyword>
      <keyword>(DIS|EN)ABLE_(STATIC|SHARED)</keyword>
    </context>

    <context id="misc-macros-noargs" style-ref="ac-macro">
      <prefix>\b</prefix>
      <keyword>__(file|o?line)__</keyword>
      <keyword>LT_CMD_MAX_LEN</keyword>
      <keyword>LT_FUNC_DLSYM_USCORE</keyword>
      <keyword>LT_LIB_(M|DLLOAD)</keyword>
      <keyword>LT_OUTPUT</keyword>
      <keyword>LT_PATH_(LD|NM)</keyword>
      <keyword>LT_SYS_DLOPEN_(SELF|DEPLIBS)</keyword>
      <keyword>LT_SYS_MODULE_(EXT|PATH)</keyword>
      <keyword>LT_SYS_(DLSEARCH_PATH|SYMBOL_USCORE)</keyword>
    </context>

    <context id="misc-macros-optargs" style-ref="ac-macro">
      <prefix>\b</prefix>
      <keyword>LT_INIT</keyword>
      <keyword>PKG_PROG_PKG_CONFIG</keyword>
    </context>
  </definitions>
</language>

Filemanager

Name Type Size Permission Actions
R.lang File 77.54 KB 0644
abnf.lang File 3.54 KB 0644
actionscript.lang File 8.64 KB 0644
ada.lang File 7.05 KB 0644
ansforth94.lang File 22.6 KB 0644
asp.lang File 40.88 KB 0644
automake.lang File 11.15 KB 0644
awk.lang File 4.15 KB 0644
bennugd.lang File 8.81 KB 0644
bibtex.lang File 3.75 KB 0644
bluespec.lang File 5.79 KB 0644
boo.lang File 8.42 KB 0644
c.lang File 11.71 KB 0644
cg.lang File 10.05 KB 0644
changelog.lang File 3.41 KB 0644
chdr.lang File 1.77 KB 0644
cmake.lang File 35.44 KB 0644
cobol.lang File 20.8 KB 0644
cpp.lang File 4.78 KB 0644
cpphdr.lang File 1.41 KB 0644
csharp.lang File 9.34 KB 0644
css.lang File 36.36 KB 0644
csv.lang File 2.36 KB 0644
cuda.lang File 10.25 KB 0644
d.lang File 9.83 KB 0644
def.lang File 10.67 KB 0644
desktop.lang File 10.7 KB 0644
diff.lang File 2.99 KB 0644
docbook.lang File 15.98 KB 0644
dosbatch.lang File 5.08 KB 0644
dot.lang File 4.42 KB 0644
dpatch.lang File 1.49 KB 0644
dtd.lang File 4.52 KB 0644
dtl.lang File 9.9 KB 0644
eiffel.lang File 7.11 KB 0644
erlang.lang File 8.26 KB 0644
fcl.lang File 3.75 KB 0644
forth.lang File 9.34 KB 0644
fortran.lang File 22.95 KB 0644
fsharp.lang File 10.79 KB 0644
gap.lang File 2.73 KB 0644
gdb-log.lang File 6.81 KB 0644
genie.lang File 7.62 KB 0644
glsl.lang File 17.25 KB 0644
go.lang File 8.94 KB 0644
groovy.lang File 11.49 KB 0644
gtk-doc.lang File 3.66 KB 0644
gtkrc.lang File 4.12 KB 0644
haddock.lang File 5.91 KB 0644
haskell-literate.lang File 1.73 KB 0644
haskell.lang File 7.7 KB 0644
haxe.lang File 7.71 KB 0644
html.lang File 11.12 KB 0644
idl-exelis.lang File 20.62 KB 0644
idl.lang File 5.06 KB 0644
imagej.lang File 29.42 KB 0644
ini.lang File 3.5 KB 0644
j.lang File 7.45 KB 0644
jade.lang File 6.55 KB 0644
java.lang File 6.57 KB 0644
javascript.lang File 12.03 KB 0644
json.lang File 4.19 KB 0644
julia.lang File 13.46 KB 0644
kotlin.lang File 13.18 KB 0644
language.dtd File 2.35 KB 0644
language.rng File 10.84 KB 0644
language2.rng File 13 KB 0644
latex.lang File 24.08 KB 0644
lex.lang File 6.14 KB 0644
libtool.lang File 1.83 KB 0644
llvm.lang File 10.05 KB 0644
logcat.lang File 3.35 KB 0644
lua.lang File 10.2 KB 0644
m4.lang File 45.03 KB 0644
makefile.lang File 6.03 KB 0644
mallard.lang File 3.69 KB 0644
markdown.lang File 14.79 KB 0644
matlab.lang File 4.87 KB 0644
maxima.lang File 65.65 KB 0644
mediawiki.lang File 10.64 KB 0644
meson.lang File 4.4 KB 0644
modelica.lang File 9.26 KB 0644
mxml.lang File 2.16 KB 0644
nemerle.lang File 8.21 KB 0644
netrexx.lang File 10.36 KB 0644
nsis.lang File 2.65 KB 0644
objc.lang File 4 KB 0644
objj.lang File 4.25 KB 0644
ocaml.lang File 9.72 KB 0644
ocl.lang File 5.24 KB 0644
octave.lang File 59.04 KB 0644
ooc.lang File 8.51 KB 0644
opal.lang File 10.98 KB 0644
opencl.lang File 20.36 KB 0644
pascal.lang File 8.28 KB 0644
perl.lang File 36.08 KB 0644
php.lang File 12.04 KB 0644
pig.lang File 9.35 KB 0644
pkgconfig.lang File 1.93 KB 0644
po.lang File 3.33 KB 0644
prolog.lang File 8.2 KB 0644
protobuf.lang File 4.4 KB 0644
puppet.lang File 23.67 KB 0644
python.lang File 16.99 KB 0644
python3.lang File 7.67 KB 0644
rpmspec.lang File 7.5 KB 0644
rst.lang File 4.46 KB 0644
ruby.lang File 25.7 KB 0644
rust.lang File 10.07 KB 0644
scala.lang File 12.63 KB 0644
scheme.lang File 10.17 KB 0644
scilab.lang File 6.87 KB 0644
sh.lang File 16.49 KB 0644
sml.lang File 6.43 KB 0644
sparql.lang File 16.34 KB 0644
sql.lang File 22.79 KB 0644
sweave.lang File 2.18 KB 0644
swift.lang File 16.21 KB 0644
systemverilog.lang File 8.6 KB 0644
t2t.lang File 5.05 KB 0644
tcl.lang File 4.46 KB 0644
tera.lang File 5.12 KB 0644
texinfo.lang File 15.23 KB 0644
thrift.lang File 8.45 KB 0644
toml.lang File 8.46 KB 0644
vala.lang File 12.83 KB 0644
vbnet.lang File 7.78 KB 0644
verilog.lang File 15.54 KB 0644
vhdl.lang File 7.68 KB 0644
xml.lang File 9.17 KB 0644
xslt.lang File 3.83 KB 0644
yacc.lang File 5.65 KB 0644
yaml.lang File 7.02 KB 0644