';;; subr.el --- basic lisp subroutines for Emacs  -*- coding: utf-8; lexical-binding:t -*-' Comment.Single
'\n\n'        Text

';; Copyright (C) 1985-1986, 1992, 1994-1995, 1999-2015 Free Software' Comment.Single
'\n'          Text

';; Foundation, Inc.' Comment.Single
'\n\n'        Text

';; Maintainer: emacs-devel@gnu.org' Comment.Single
'\n'          Text

';; Keywords: internal' Comment.Single
'\n'          Text

';; Package: emacs' Comment.Single
'\n\n'        Text

';; This file is part of GNU Emacs.' Comment.Single
'\n\n'        Text

';; GNU Emacs is free software: you can redistribute it and/or modify' Comment.Single
'\n'          Text

';; it under the terms of the GNU General Public License as published by' Comment.Single
'\n'          Text

';; the Free Software Foundation, either version 3 of the License, or' Comment.Single
'\n'          Text

';; (at your option) any later version.' Comment.Single
'\n\n'        Text

';; GNU Emacs is distributed in the hope that it will be useful,' Comment.Single
'\n'          Text

';; but WITHOUT ANY WARRANTY; without even the implied warranty of' Comment.Single
'\n'          Text

';; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the' Comment.Single
'\n'          Text

';; GNU General Public License for more details.' Comment.Single
'\n\n'        Text

';; You should have received a copy of the GNU General Public License' Comment.Single
'\n'          Text

';; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.' Comment.Single
'\n\n'        Text

';;; Commentary:' Comment.Single
'\n\n'        Text

';;; Code:'   Comment.Single
'\n\n'        Text

";; Beware: while this file has tag `utf-8', before it's compiled, it gets" Comment.Single
'\n'          Text

';; loaded as "raw-text", so non-ASCII chars won\'t work right during bootstrap.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'declare-function' Name.Builtin
' '           Text
'('           Punctuation
'_fn'         Name.Variable
' '           Text
'_file'       Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'_arglist'    Name.Variable
' '           Text
'_fileonly'   Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Tell the byte-compiler that function FN is defined, in FILE.\nOptional ARGLIST is the argument list used by the function.\nThe FILE argument is not used by the byte-compiler, but by the\n' Literal.String

"`check-declare'" Literal.String.Symbol
' package, which checks that FILE contains a\ndefinition for FN.  ARGLIST is used by both the byte-compiler\nand ' Literal.String
"`check-declare'" Literal.String.Symbol
' to check for consistency.\n\nFILE can be either a Lisp file (in which case the ' Literal.String
'\\"'         Literal.String
'.el'         Literal.String
'\\"'         Literal.String
'\nextension is optional), or a C file.  C files are expanded\nrelative to the Emacs ' Literal.String
'\\"'         Literal.String
'src/'        Literal.String
'\\"'         Literal.String
' directory.  Lisp files are\nsearched for using ' Literal.String
"`locate-library'" Literal.String.Symbol
', and if that fails they are\nexpanded relative to the location of the file containing the\ndeclaration.  A FILE with an ' Literal.String
'\\"'         Literal.String
'ext:'        Literal.String
'\\"'         Literal.String
' prefix is an external file.\n' Literal.String

"`check-declare'" Literal.String.Symbol
' will check such files if they are found, and skip\nthem without error if they are not.\n\nFILEONLY non-nil means that ' Literal.String
"`check-declare'" Literal.String.Symbol
' will only check that\nFILE exists, not that it defines FN.  This is intended for\nfunction-definitions that ' Literal.String
"`check-declare'" Literal.String.Symbol
' does not recognize, e.g.\n' Literal.String

"`defstruct'" Literal.String.Symbol
'.\n\nTo specify a value for FILEONLY without passing an argument list,\nset ARGLIST to t.  This is necessary because nil means an\nempty argument list, rather than an unspecified one.\n\nNote that for the purposes of ' Literal.String
"`check-declare'" Literal.String.Symbol
', this statement\nmust be the first non-whitespace on a line.\n\nFor more information, see Info node ' Literal.String
'`'           Literal.String
"(elisp)Declaring Functions'." Literal.String
'"'           Literal.String
'\n  '        Text
';; Does nothing - byte-compile-declare-function does the work.' Comment.Single
'\n  '        Text
'nil'         Name.Constant
')'           Punctuation
'\n\n\x0c\n'  Text

';;;; Basic Lisp macros.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'not"        Literal.String.Symbol
' '           Text
"'null"       Literal.String.Symbol
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'noreturn'    Name.Builtin
' '           Text
'('           Punctuation
'form'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Evaluate FORM, expecting it not to return.\nIf FORM does return, signal an error.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'`'           Operator
'('           Punctuation
'prog1'       Keyword
' '           Text
','           Operator
'form'        Name.Variable
'\n     '     Text
'('           Punctuation
'error'       Name.Exception
' '           Text
'"'           Literal.String
'Form marked with ' Literal.String
"`noreturn'"  Literal.String.Symbol
' did return' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'1value'      Name.Variable
' '           Text
'('           Punctuation
'form'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Evaluate FORM, expecting a constant return value.\nThis is the global do-nothing version.  There is also ' Literal.String
"`testcover-1value'" Literal.String.Symbol
'\nthat complains if FORM ever does return differing values.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'form'        Name.Variable
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'def-edebug-spec' Name.Builtin
' '           Text
'('           Punctuation
'symbol'      Name.Variable
' '           Text
'spec'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Set the '    Literal.String
"`edebug-form-spec'" Literal.String.Symbol
' property of SYMBOL according to SPEC.\nBoth SYMBOL and SPEC are unevaluated.  The SPEC can be:\n0 (instrument no arguments); t (instrument all arguments);\na symbol (naming a function with an Edebug specification); or a list.\nThe elements of the list describe the argument types; see\nInfo node ' Literal.String
'`'           Literal.String
"(elisp)Specification List' for details." Literal.String
'"'           Literal.String
'\n  '        Text
'`'           Operator
'('           Punctuation
'put'         Name.Function
' '           Text
'('           Punctuation
'quote'       Keyword
' '           Text
','           Operator
'symbol'      Name.Variable
')'           Punctuation
' '           Text
"'edebug-form-spec" Literal.String.Symbol
' '           Text
'('           Punctuation
'quote'       Keyword
' '           Text
','           Operator
'spec'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'cdr'         Name.Function
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return a lambda expression.\nA call of the form (lambda ARGS DOCSTRING INTERACTIVE BODY) is\nself-quoting; the result of evaluating the lambda expression is the\nexpression itself.  The lambda expression may then be treated as a\nfunction, i.e., stored as the function value of a symbol, passed to\n' Literal.String

"`funcall'"   Literal.String.Symbol
' or '        Literal.String
"`mapcar'"    Literal.String.Symbol
', etc.\n\nARGS should take the same form as an argument list for a ' Literal.String
"`defun'"     Literal.String.Symbol
'.\nDOCSTRING is an optional documentation string.\n If present, it should describe how to call the function.\n But documentation strings are usually not useful in nameless functions.\nINTERACTIVE should be a call to the function ' Literal.String
"`interactive'" Literal.String.Symbol
', which see.\nIt may also be omitted.\nBODY should be a list of Lisp expressions.\n\n' Literal.String

'\\('         Literal.String
'fn ARGS [DOCSTRING] [INTERACTIVE] BODY)' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'doc-string'  Name.Variable
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'defun'       Name.Builtin
')'           Punctuation
'\n           ' Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
'('           Punctuation
'&define'     Name.Variable
' '           Text
'lambda-list' Name.Variable
'\n                           ' Text
'['           Punctuation
'&optional'   Keyword.Pseudo
' '           Text
'stringp'     Name.Function
']'           Punctuation
'\n                           ' Text
'['           Punctuation
'&optional'   Keyword.Pseudo
' '           Text
'('           Punctuation
'"'           Literal.String
'interactive' Literal.String
'"'           Literal.String
' '           Text
'interactive' Keyword
')'           Punctuation
']'           Punctuation
'\n                           ' Text
'def-body'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
';; Note that this definition should not use backquotes; subr.el should not' Comment.Single
'\n  '        Text
';; depend on backquote.el.' Comment.Single
'\n  '        Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'function"   Literal.String.Symbol
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
"'lambda"     Literal.String.Symbol
' '           Text
'cdr'         Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'setq-local'  Name.Builtin
' '           Text
'('           Punctuation
'var'         Name.Variable
' '           Text
'val'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Set variable VAR to value VAL in current buffer.' Literal.String
'"'           Literal.String
'\n  '        Text
";; Can't use backquote here, it's too early in the bootstrap." Comment.Single
'\n  '        Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'set"        Literal.String.Symbol
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'make-local-variable" Literal.String.Symbol
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'quote"      Literal.String.Symbol
' '           Text
'var'         Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'val'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'defvar-local' Name.Builtin
' '           Text
'('           Punctuation
'var'         Name.Variable
' '           Text
'val'         Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'docstring'   Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Define VAR as a buffer-local variable with default value VAL.\nLike ' Literal.String
"`defvar'"    Literal.String.Symbol
' but additionally marks the variable as being automatically\nbuffer-local wherever it is set.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
'defvar'      Keyword
')'           Punctuation
' '           Text
'('           Punctuation
'doc-string'  Name.Variable
' '           Text
'3'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n  '        Text
";; Can't use backquote here, it's too early in the bootstrap." Comment.Single
'\n  '        Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'progn"      Literal.String.Symbol
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'defvar"     Literal.String.Symbol
' '           Text
'var'         Name.Variable
' '           Text
'val'         Name.Variable
' '           Text
'docstring'   Name.Variable
')'           Punctuation
'\n        '  Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'make-variable-buffer-local" Literal.String.Symbol
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'quote"      Literal.String.Symbol
' '           Text
'var'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'apply-partially' Name.Variable
' '           Text
'('           Punctuation
'fun'         Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'args'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return a function that is a partial application of FUN to ARGS.\nARGS is a list of the first N arguments to pass to FUN.\nThe result is a new function which does the same as FUN, except that\nthe first N arguments are fixed at the values with which this function\nwas called.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'args2'       Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'apply'       Name.Function
' '           Text
'fun'         Name.Variable
' '           Text
'('           Punctuation
'append'      Name.Function
' '           Text
'args'        Name.Variable
' '           Text
'args2'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'push'        Name.Builtin
' '           Text
'('           Punctuation
'newelt'      Name.Variable
' '           Text
'place'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Add NEWELT to the list stored in the generalized variable PLACE.\nThis is morally equivalent to (setf PLACE (cons NEWELT PLACE)),\nexcept that PLACE is only evaluated once (after NEWELT).' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
'('           Punctuation
'form'        Name.Variable
' '           Text
'gv-place'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'symbolp'     Name.Function
' '           Text
'place'       Name.Variable
')'           Punctuation
'\n      '    Text
';; Important special case, to avoid triggering GV too early in' Comment.Single
'\n      '    Text
';; the bootstrap.' Comment.Single
'\n      '    Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'setq"       Literal.String.Symbol
' '           Text
'place'       Name.Variable
'\n            ' Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'cons"       Literal.String.Symbol
' '           Text
'newelt'      Name.Variable
' '           Text
'place'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'require'     Name.Builtin
' '           Text
"'macroexp"   Literal.String.Symbol
')'           Punctuation
'\n    '      Text
'('           Punctuation
'macroexp-let2' Name.Variable
' '           Text
'macroexp-copyable-p' Name.Variable
' '           Text
'v'           Name.Variable
' '           Text
'newelt'      Name.Variable
'\n      '    Text
'('           Punctuation
'gv-letplace' Name.Variable
' '           Text
'('           Punctuation
'getter'      Name.Variable
' '           Text
'setter'      Name.Variable
')'           Punctuation
' '           Text
'place'       Name.Variable
'\n        '  Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'setter'      Name.Variable
' '           Text
'`'           Operator
'('           Punctuation
'cons'        Name.Function
' '           Text
','           Operator
'v'           Name.Variable
' '           Text
','           Operator
'getter'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'pop'         Name.Builtin
' '           Text
'('           Punctuation
'place'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Return the first element of PLACE's value, and remove it from the list.\nPLACE must be a generalized variable whose value is a list.\nIf the value is nil, " Literal.String
"`pop'"       Literal.String.Symbol
' returns nil but does not actually\nchange the list.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
'('           Punctuation
'gv-place'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
";; We use `car-safe' here instead of `car' because the behavior is the same" Comment.Single
'\n  '        Text
";; (if it's not a cons cell, the `cdr' would have signaled an error already)," Comment.Single
'\n  '        Text
";; but `car-safe' is total, so the byte-compiler can safely remove it if the" Comment.Single
'\n  '        Text
';; result is not used.' Comment.Single
'\n  '        Text
'`'           Operator
'('           Punctuation
'car-safe'    Name.Function
'\n    '      Text
','           Operator
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'symbolp'     Name.Function
' '           Text
'place'       Name.Variable
')'           Punctuation
'\n         ' Text
";; So we can use `pop' in the bootstrap before `gv' can be used." Comment.Single
'\n         ' Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'prog1"      Literal.String.Symbol
' '           Text
'place'       Name.Variable
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'setq"       Literal.String.Symbol
' '           Text
'place'       Name.Variable
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'cdr"        Literal.String.Symbol
' '           Text
'place'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'gv-letplace' Name.Variable
' '           Text
'('           Punctuation
'getter'      Name.Variable
' '           Text
'setter'      Name.Variable
')'           Punctuation
' '           Text
'place'       Name.Variable
'\n         ' Text
'('           Punctuation
'macroexp-let2' Name.Variable
' '           Text
'macroexp-copyable-p' Name.Variable
' '           Text
'x'           Name.Variable
' '           Text
'getter'      Name.Variable
'\n           ' Text
'`'           Operator
'('           Punctuation
'prog1'       Keyword
' '           Text
','           Operator
'x'           Name.Variable
' '           Text
','           Operator
'('           Punctuation
'funcall'     Name.Function
' '           Text
'setter'      Name.Variable
' '           Text
'`'           Operator
'('           Punctuation
'cdr'         Name.Function
' '           Text
','           Operator
'x'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'when'        Name.Builtin
' '           Text
'('           Punctuation
'cond'        Keyword
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'If COND yields non-nil, do BODY, else return nil.\nWhen COND yields non-nil, eval BODY forms sequentially and return\nvalue of last one, or nil if there are none.\n\n' Literal.String

'\\('         Literal.String
'fn COND BODY...)' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'if"         Literal.String.Symbol
' '           Text
'cond'        Keyword
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
"'progn"      Literal.String.Symbol
' '           Text
'body'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'cond'        Keyword
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'If COND yields nil, do BODY, else return nil.\nWhen COND yields nil, eval BODY forms sequentially and return\nvalue of last one, or nil if there are none.\n\n' Literal.String

'\\('         Literal.String
'fn COND BODY...)' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'cons'        Name.Function
' '           Text
"'if"         Literal.String.Symbol
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'cond'        Keyword
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'nil'         Name.Constant
' '           Text
'body'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'dolist'      Name.Builtin
' '           Text
'('           Punctuation
'spec'        Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Loop over a list.\nEvaluate BODY with VAR bound to each car from LIST, in turn.\nThen evaluate RESULT to get return value, default nil.\n\n' Literal.String

'\\('         Literal.String
'fn (VAR LIST [RESULT]) BODY...)' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
'('           Punctuation
'('           Punctuation
'symbolp'     Name.Function
' '           Text
'form'        Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'form'        Name.Variable
')'           Punctuation
' '           Text
'body'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
';; It would be cleaner to create an uninterned symbol,' Comment.Single
'\n  '        Text
';; but that uses a lot more space when many functions in many files' Comment.Single
'\n  '        Text
';; use dolist.' Comment.Single
'\n  '        Text
';; FIXME: This cost disappears in byte-compiled lexical-binding files.' Comment.Single
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'temp'        Name.Variable
' '           Text
"'--dolist-tail--" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n    '      Text
';; This is not a reliable test, but it does not matter because both' Comment.Single
'\n    '      Text
';; semantics are acceptable, tho one is slightly faster with dynamic' Comment.Single
'\n    '      Text
';; scoping and the other is slightly faster (and has cleaner semantics)' Comment.Single
'\n    '      Text
';; with lexical scoping.' Comment.Single
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'lexical-binding' Name.Variable
'\n        '  Text
'`'           Operator
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'temp'        Name.Variable
' '           Text
','           Operator
'('           Punctuation
'nth'         Name.Function
' '           Text
'1'           Literal.Number.Integer
' '           Text
'spec'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n           ' Text
'('           Punctuation
'while'       Keyword
' '           Text
','           Operator
'temp'        Name.Variable
'\n             ' Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'('           Punctuation
'car'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
','           Operator
'temp'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n               ' Text
',@'          Operator
'body'        Name.Variable
'\n               ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
','           Operator
'temp'        Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
','           Operator
'temp'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n           ' Text
',@'          Operator
'('           Punctuation
'cdr'         Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'`'           Operator
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'temp'        Name.Variable
' '           Text
','           Operator
'('           Punctuation
'nth'         Name.Function
' '           Text
'1'           Literal.Number.Integer
' '           Text
'spec'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n             ' Text
','           Operator
'('           Punctuation
'car'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n         ' Text
'('           Punctuation
'while'       Keyword
' '           Text
','           Operator
'temp'        Name.Variable
'\n           ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
','           Operator
'('           Punctuation
'car'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
','           Operator
'temp'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n           ' Text
',@'          Operator
'body'        Name.Variable
'\n           ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
','           Operator
'temp'        Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
','           Operator
'temp'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n         ' Text
',@'          Operator
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n               ' Text
'`'           Operator
'('           Punctuation
'('           Punctuation
'setq'        Keyword
' '           Text
','           Operator
'('           Punctuation
'car'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
' '           Text
'nil'         Name.Constant
')'           Punctuation
' '           Text
',@'          Operator
'('           Punctuation
'cdr'         Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'dotimes'     Name.Builtin
' '           Text
'('           Punctuation
'spec'        Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Loop a certain number of times.\nEvaluate BODY with VAR bound to successive integers running from 0,\ninclusive, to COUNT, exclusive.  Then evaluate RESULT to get\nthe return value (nil if RESULT is omitted).\n\n' Literal.String

'\\('         Literal.String
'fn (VAR COUNT [RESULT]) BODY...)' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
'dolist'      Name.Builtin
')'           Punctuation
')'           Punctuation
'\n  '        Text
';; It would be cleaner to create an uninterned symbol,' Comment.Single
'\n  '        Text
';; but that uses a lot more space when many functions in many files' Comment.Single
'\n  '        Text
';; use dotimes.' Comment.Single
'\n  '        Text
';; FIXME: This cost disappears in byte-compiled lexical-binding files.' Comment.Single
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'temp'        Name.Variable
' '           Text
"'--dotimes-limit--" Literal.String.Symbol
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'start'       Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'end'         Name.Variable
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'1'           Literal.Number.Integer
' '           Text
'spec'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
';; This is not a reliable test, but it does not matter because both' Comment.Single
'\n    '      Text
';; semantics are acceptable, tho one is slightly faster with dynamic' Comment.Single
'\n    '      Text
';; scoping and the other has cleaner semantics.' Comment.Single
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'lexical-binding' Name.Variable
'\n        '  Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'counter'     Name.Variable
' '           Text
"'--dotimes-counter--" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n          ' Text
'`'           Operator
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'temp'        Name.Variable
' '           Text
','           Operator
'end'         Name.Variable
')'           Punctuation
'\n                 ' Text
'('           Punctuation
','           Operator
'counter'     Name.Variable
' '           Text
','           Operator
'start'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n             ' Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
','           Operator
'counter'     Name.Variable
' '           Text
','           Operator
'temp'        Name.Variable
')'           Punctuation
'\n               ' Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'('           Punctuation
'car'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
' '           Text
','           Operator
'counter'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n                 ' Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
'\n               ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
','           Operator
'counter'     Name.Variable
' '           Text
'('           Punctuation
'1+'          Name.Function
' '           Text
','           Operator
'counter'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n             ' Text
',@'          Operator
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'cddr'        Name.Variable
' '           Text
'spec'        Name.Variable
')'           Punctuation
'\n                   ' Text
';; FIXME: This let often leads to "unused var" warnings.' Comment.Single
'\n                   ' Text
'`'           Operator
'('           Punctuation
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'('           Punctuation
'car'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
' '           Text
','           Operator
'counter'     Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
',@'          Operator
'('           Punctuation
'cddr'        Name.Variable
' '           Text
'spec'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'`'           Operator
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'temp'        Name.Variable
' '           Text
','           Operator
'end'         Name.Variable
')'           Punctuation
'\n             ' Text
'('           Punctuation
','           Operator
'('           Punctuation
'car'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
' '           Text
','           Operator
'start'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n         ' Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
','           Operator
'('           Punctuation
'car'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
' '           Text
','           Operator
'temp'        Name.Variable
')'           Punctuation
'\n           ' Text
',@'          Operator
'body'        Name.Variable
'\n           ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
','           Operator
'('           Punctuation
'car'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'1+'          Name.Function
' '           Text
','           Operator
'('           Punctuation
'car'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n         ' Text
',@'          Operator
'('           Punctuation
'cdr'         Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'_specs'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Do not evaluate any arguments, and return nil.\nIf a ' Literal.String
"`declare'"   Literal.String.Symbol
' form appears as the first form in the body of a\n' Literal.String

"`defun'"     Literal.String.Symbol
' or '        Literal.String
"`defmacro'"  Literal.String.Symbol
' form, SPECS specifies various additional\ninformation about the function or macro; these go into effect\nduring the evaluation of the ' Literal.String
"`defun'"     Literal.String.Symbol
' or '        Literal.String
"`defmacro'"  Literal.String.Symbol
' form.\n\nThe possible values of SPECS are specified by\n' Literal.String

"`defun-declarations-alist'" Literal.String.Symbol
' and '       Literal.String
"`macro-declarations-alist'" Literal.String.Symbol
'.\n\nFor more information, see info node ' Literal.String
'`'           Literal.String
"(elisp)Declare Form'." Literal.String
'"'           Literal.String
'\n  '        Text
';; FIXME: edebug spec should pay attention to defun-declarations-alist.' Comment.Single
'\n  '        Text
'nil'         Name.Constant
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'ignore-errors' Name.Builtin
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Execute BODY; if an error occurs, return nil.\nOtherwise, return result of last form in BODY.\nSee also ' Literal.String
"`with-demoted-errors'" Literal.String.Symbol
' that does something similar\nwithout silencing all errors.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n  '        Text
'`'           Operator
'('           Punctuation
'condition-case' Keyword
' '           Text
'nil'         Name.Constant
' '           Text
'('           Punctuation
'progn'       Keyword
' '           Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'error'       Name.Exception
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\x0c\n'    Text

';;;; Basic Lisp functions.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'ignore'      Name.Variable
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'_ignore'     Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Do nothing and return nil.\nThis function accepts any number of arguments, but ignores them.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'interactive' Keyword
')'           Punctuation
'\n  '        Text
'nil'         Name.Constant
')'           Punctuation
'\n\n'        Text

';; Signal a compile-error if the first arg is missing.' Comment.Single
'\n'          Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'error'       Name.Exception
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'args'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Signal an error, making error message by passing all args to ' Literal.String
"`format'"    Literal.String.Symbol
'.\nIn Emacs, the convention is that error messages start with a capital\nletter but *do not* end with a period.  Please follow this convention\nfor the sake of consistency.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'advertised-calling-convention' Name.Variable
' '           Text
'('           Punctuation
'string'      Name.Function
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'args'        Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'23.1'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'signal'      Name.Function
' '           Text
"'error"      Literal.String.Symbol
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'('           Punctuation
'apply'       Name.Function
' '           Text
"'format"     Literal.String.Symbol
' '           Text
'args'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'user-error'  Name.Exception
' '           Text
'('           Punctuation
'format'      Name.Function
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'args'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Signal a pilot error, making error message by passing all args to ' Literal.String
"`format'"    Literal.String.Symbol
'.\nIn Emacs, the convention is that error messages start with a capital\nletter but *do not* end with a period.  Please follow this convention\nfor the sake of consistency.\nThis is just like ' Literal.String
"`error'"     Literal.String.Symbol
' except that ' Literal.String
"`user-error'" Literal.String.Symbol
's are expected to be the\nresult of an incorrect manipulation on the part of the user, rather than the\nresult of an actual problem.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'signal'      Name.Function
' '           Text
"'user-error" Literal.String.Symbol
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'('           Punctuation
'apply'       Name.Function
' '           Text
"#'"          Name.Function
'format'      Name.Function
' '           Text
'format'      Name.Function
' '           Text
'args'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'define-error' Name.Variable
' '           Text
'('           Punctuation
'name'        Name.Variable
' '           Text
'message'     Name.Function
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'parent'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Define NAME as a new error signal.\nMESSAGE is a string that will be output to the echo area if such an error\nis signaled without being caught by a ' Literal.String
"`condition-case'" Literal.String.Symbol
'.\nPARENT is either a signal or a list of signals from which it inherits.\nDefaults to ' Literal.String
"`error'"     Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'parent'      Name.Variable
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'parent'      Name.Variable
' '           Text
"'error"      Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'conditions'  Name.Variable
'\n         ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'parent'      Name.Variable
')'           Punctuation
'\n             ' Text
'('           Punctuation
'apply'       Name.Function
' '           Text
"#'"          Name.Function
'append'      Name.Function
'\n                    ' Text
'('           Punctuation
'mapcar'      Name.Function
' '           Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'parent'      Name.Variable
')'           Punctuation
'\n                              ' Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'parent'      Name.Variable
'\n                                    ' Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'get'         Name.Function
' '           Text
'parent'      Name.Variable
' '           Text
"'error-conditions" Literal.String.Symbol
')'           Punctuation
'\n                                        ' Text
'('           Punctuation
'error'       Name.Exception
' '           Text
'"'           Literal.String
'Unknown signal ' Literal.String
"`%s'"        Literal.String.Symbol
'"'           Literal.String
' '           Text
'parent'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                            ' Text
'parent'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n           ' Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'parent'      Name.Variable
' '           Text
'('           Punctuation
'get'         Name.Function
' '           Text
'parent'      Name.Variable
' '           Text
"'error-conditions" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'put'         Name.Function
' '           Text
'name'        Name.Variable
' '           Text
"'error-conditions" Literal.String.Symbol
'\n         ' Text
'('           Punctuation
'delete-dups' Name.Variable
' '           Text
'('           Punctuation
'copy-sequence' Name.Function
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'name'        Name.Variable
' '           Text
'conditions'  Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'message'     Name.Function
' '           Text
'('           Punctuation
'put'         Name.Function
' '           Text
'name'        Name.Variable
' '           Text
"'error-message" Literal.String.Symbol
' '           Text
'message'     Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

";; We put this here instead of in frame.el so that it's defined even on" Comment.Single
'\n'          Text

";; systems where frame.el isn't loaded." Comment.Single
'\n'          Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'frame-configuration-p' Name.Variable
' '           Text
'('           Punctuation
'object'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return non-nil if OBJECT seems to be a frame configuration.\nAny list whose car is ' Literal.String
"`frame-configuration'" Literal.String.Symbol
' is assumed to be a frame\nconfiguration.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'object'      Name.Variable
')'           Punctuation
'\n       '   Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'object'      Name.Variable
')'           Punctuation
' '           Text
"'frame-configuration" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\x0c\n'  Text

';;;; List functions.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'caar'        Name.Variable
' '           Text
'('           Punctuation
'x'           Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the car of the car of X.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'car'         Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'x'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'cadr'        Name.Variable
' '           Text
'('           Punctuation
'x'           Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the car of the cdr of X.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'car'         Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'x'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'cdar'        Name.Variable
' '           Text
'('           Punctuation
'x'           Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the cdr of the car of X.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'x'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'cddr'        Name.Variable
' '           Text
'('           Punctuation
'x'           Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the cdr of the cdr of X.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'x'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'last'        Name.Variable
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'n'           Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the last link of LIST.  Its car is the last element.\nIf LIST is nil, return nil.\nIf N is non-nil, return the Nth-to-last link of LIST.\nIf N is bigger than the length of LIST, return LIST.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'n'           Name.Variable
'\n      '    Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'>='          Name.Function
' '           Text
'n'           Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n           ' Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'm'           Name.Variable
' '           Text
'('           Punctuation
'safe-length' Name.Function
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n             ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'n'           Name.Variable
' '           Text
'm'           Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'nthcdr'      Name.Function
' '           Text
'('           Punctuation
'-'           Name.Function
' '           Text
'm'           Name.Variable
' '           Text
'n'           Name.Variable
')'           Punctuation
' '           Text
'list'        Name.Function
')'           Punctuation
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'and'         Keyword
' '           Text
'list'        Name.Function
'\n         ' Text
'('           Punctuation
'nthcdr'      Name.Function
' '           Text
'('           Punctuation
'1-'          Name.Function
' '           Text
'('           Punctuation
'safe-length' Name.Function
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'butlast'     Name.Variable
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'n'           Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return a copy of LIST with the last N elements removed.\nIf N is omitted or nil, the last element is removed from the\ncopy.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'n'           Name.Variable
' '           Text
'('           Punctuation
'<='          Name.Function
' '           Text
'n'           Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
' '           Text
'list'        Name.Function
'\n    '      Text
'('           Punctuation
'nbutlast'    Name.Variable
' '           Text
'('           Punctuation
'copy-sequence' Name.Function
' '           Text
'list'        Name.Function
')'           Punctuation
' '           Text
'n'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'nbutlast'    Name.Variable
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'n'           Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Modifies LIST to remove the last N elements.\nIf N is omitted or nil, remove the last element.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'm'           Name.Variable
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'or'          Keyword
' '           Text
'n'           Name.Variable
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'n'           Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'n'           Name.Variable
' '           Text
'm'           Name.Variable
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'progn'       Keyword
'\n\t   '     Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'>'           Name.Function
' '           Text
'n'           Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'setcdr'      Name.Function
' '           Text
'('           Punctuation
'nthcdr'      Name.Function
' '           Text
'('           Punctuation
'-'           Name.Function
' '           Text
'('           Punctuation
'1-'          Name.Function
' '           Text
'm'           Name.Variable
')'           Punctuation
' '           Text
'n'           Name.Variable
')'           Punctuation
' '           Text
'list'        Name.Function
')'           Punctuation
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n\t   '     Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'zerop'       Name.Variable
' '           Text
'('           Punctuation
'number'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return t if NUMBER is zero.' Literal.String
'"'           Literal.String
'\n  '        Text
";; Used to be in C, but it's pointless since (= 0 n) is faster anyway because" Comment.Single
'\n  '        Text
';; = has a byte-code.' Comment.Single
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'compiler-macro' Name.Variable
' '           Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'_'           Name.Variable
')'           Punctuation
' '           Text
'`'           Operator
'('           Punctuation
'='           Name.Function
' '           Text
'0'           Literal.Number.Integer
' '           Text
','           Operator
'number'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'='           Name.Function
' '           Text
'0'           Literal.Number.Integer
' '           Text
'number'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'delete-dups' Name.Variable
' '           Text
'('           Punctuation
'list'        Name.Function
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Destructively remove ' Literal.String
"`equal'"     Literal.String.Symbol
' duplicates from LIST.\nStore the result in LIST and return it.  LIST must be a proper list.\nOf several ' Literal.String
"`equal'"     Literal.String.Symbol
' occurrences of an element in LIST, the first\none is kept.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'tail'        Name.Variable
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'tail'        Name.Variable
'\n      '    Text
'('           Punctuation
'setcdr'      Name.Function
' '           Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'delete'      Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'list'        Name.Function
')'           Punctuation
'\n\n'        Text

';; See http://lists.gnu.org/archive/html/emacs-devel/2013-05/msg00204.html' Comment.Single
'\n'          Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'delete-consecutive-dups' Name.Variable
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'circular'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Destructively remove ' Literal.String
"`equal'"     Literal.String.Symbol
' consecutive duplicates from LIST.\nFirst and last elements are considered consecutive if CIRCULAR is\nnon-nil.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'tail'        Name.Variable
' '           Text
'list'        Name.Function
')'           Punctuation
' '           Text
'last'        Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'equal'       Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'cadr'        Name.Variable
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'setcdr'      Name.Function
' '           Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'cddr'        Name.Variable
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'last'        Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
'\n\t      '  Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'circular'    Name.Variable
'\n\t     '   Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'list'        Name.Function
')'           Punctuation
'\n\t     '   Text
'('           Punctuation
'equal'       Name.Function
' '           Text
'last'        Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'nbutlast'    Name.Variable
' '           Text
'list'        Name.Function
')'           Punctuation
'\n      '    Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'number-sequence' Name.Variable
' '           Text
'('           Punctuation
'from'        Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'to'          Name.Variable
' '           Text
'inc'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return a sequence of numbers from FROM to TO (both inclusive) as a list.\nINC is the increment used between numbers in the sequence and defaults to 1.\nSo, the Nth element of the list is (+ FROM (* N INC)) where N counts from\nzero.  TO is only included if there is an N for which TO = FROM + N * INC.\nIf TO is nil or numerically equal to FROM, return (FROM).\nIf INC is positive and TO is less than FROM, or INC is negative\nand TO is larger than FROM, return nil.\nIf INC is zero and TO is neither nil nor numerically equal to\nFROM, signal an error.\n\nThis function is primarily designed for integer arguments.\nNevertheless, FROM, TO and INC can be integer or float.  However,\nfloating point arithmetic is inexact.  For instance, depending on\nthe machine, it may quite well happen that\n' Literal.String

'\\('         Literal.String
'number-sequence 0.4 0.6 0.2) returns the one element list (0.4),\nwhereas (number-sequence 0.4 0.8 0.2) returns a list with three\nelements.  Thus, if some of the arguments are floats and one wants\nto make sure that TO is included, one may have to explicitly write\nTO as (+ FROM (* N INC)) or use a variable whose value was\ncomputed with this exact expression.  Alternatively, you can,\nof course, also replace TO with a slightly larger value\n' Literal.String

'\\('         Literal.String
'or a slightly more negative value if INC is negative).' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'to'          Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'='           Name.Function
' '           Text
'from'        Name.Variable
' '           Text
'to'          Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'list'        Name.Function
' '           Text
'from'        Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'or'          Keyword
' '           Text
'inc'         Name.Variable
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'inc'         Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'zerop'       Name.Variable
' '           Text
'inc'         Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'error'       Name.Exception
' '           Text
'"'           Literal.String
'The increment can not be zero' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'seq'         Name.Variable
' '           Text
'('           Punctuation
'n'           Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'next'        Name.Variable
' '           Text
'from'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'>'           Name.Function
' '           Text
'inc'         Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n          ' Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'<='          Name.Function
' '           Text
'next'        Name.Variable
' '           Text
'to'          Name.Variable
')'           Punctuation
'\n            ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'seq'         Name.Variable
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'next'        Name.Variable
' '           Text
'seq'         Name.Variable
')'           Punctuation
'\n                  ' Text
'n'           Name.Variable
' '           Text
'('           Punctuation
'1+'          Name.Function
' '           Text
'n'           Name.Variable
')'           Punctuation
'\n                  ' Text
'next'        Name.Variable
' '           Text
'('           Punctuation
'+'           Name.Function
' '           Text
'from'        Name.Variable
' '           Text
'('           Punctuation
'*'           Name.Function
' '           Text
'n'           Name.Variable
' '           Text
'inc'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'>='          Name.Function
' '           Text
'next'        Name.Variable
' '           Text
'to'          Name.Variable
')'           Punctuation
'\n          ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'seq'         Name.Variable
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'next'        Name.Variable
' '           Text
'seq'         Name.Variable
')'           Punctuation
'\n                ' Text
'n'           Name.Variable
' '           Text
'('           Punctuation
'1+'          Name.Function
' '           Text
'n'           Name.Variable
')'           Punctuation
'\n                ' Text
'next'        Name.Variable
' '           Text
'('           Punctuation
'+'           Name.Function
' '           Text
'from'        Name.Variable
' '           Text
'('           Punctuation
'*'           Name.Function
' '           Text
'n'           Name.Variable
' '           Text
'inc'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'nreverse'    Name.Function
' '           Text
'seq'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'copy-tree'   Name.Variable
' '           Text
'('           Punctuation
'tree'        Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'vecp'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Make a copy of TREE.\nIf TREE is a cons cell, this recursively copies both its car and its cdr.\nContrast to ' Literal.String
"`copy-sequence'" Literal.String.Symbol
', which copies only along the cdrs.  With second\nargument VECP, this copies vectors as well as conses.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'tree'        Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'result'      Name.Variable
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'tree'        Name.Variable
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'newcar'      Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'tree'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'tree'        Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'vecp'        Name.Variable
' '           Text
'('           Punctuation
'vectorp'     Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'tree'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'newcar'      Name.Variable
' '           Text
'('           Punctuation
'copy-tree'   Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'tree'        Name.Variable
')'           Punctuation
' '           Text
'vecp'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'newcar'      Name.Variable
' '           Text
'result'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'tree'        Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tree'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'nconc'       Name.Function
' '           Text
'('           Punctuation
'nreverse'    Name.Function
' '           Text
'result'      Name.Variable
')'           Punctuation
' '           Text
'tree'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'vecp'        Name.Variable
' '           Text
'('           Punctuation
'vectorp'     Name.Function
' '           Text
'tree'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'i'           Name.Variable
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'tree'        Name.Variable
' '           Text
'('           Punctuation
'copy-sequence' Name.Function
' '           Text
'tree'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'>='          Name.Function
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'i'           Name.Variable
' '           Text
'('           Punctuation
'1-'          Name.Function
' '           Text
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'aset'        Name.Function
' '           Text
'tree'        Name.Variable
' '           Text
'i'           Name.Variable
' '           Text
'('           Punctuation
'copy-tree'   Name.Variable
' '           Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'tree'        Name.Variable
' '           Text
'i'           Name.Variable
')'           Punctuation
' '           Text
'vecp'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'tree'        Name.Variable
')'           Punctuation
'\n      '    Text
'tree'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\x0c\n'    Text

';;;; Various list-search functions.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'assoc-default' Name.Variable
' '           Text
'('           Punctuation
'key'         Name.Variable
' '           Text
'alist'       Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'test'        Name.Variable
' '           Text
'default'     Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Find object KEY in a pseudo-alist ALIST.\nALIST is a list of conses or objects.  Each element\n (or the element's car, if it is a cons) is compared with KEY by\n calling TEST, with two arguments: (i) the element or its car,\n and (ii) KEY.\nIf that is non-nil, the element matches; then " Literal.String
"`assoc-default'" Literal.String.Symbol
"\n returns the element's cdr, if it is a cons, or DEFAULT if the\n element is not a cons.\n\nIf no element matches, the value is nil.\nIf TEST is omitted or nil, " Literal.String
"`equal'"     Literal.String.Symbol
' is used.'   Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'found'       Name.Variable
' '           Text
'('           Punctuation
'tail'        Name.Variable
' '           Text
'alist'       Name.Variable
')'           Punctuation
' '           Text
'value'       Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'found'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'elt'         Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'test'        Name.Variable
' '           Text
"'equal"      Literal.String.Symbol
')'           Punctuation
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
' '           Text
'elt'         Name.Function
')'           Punctuation
' '           Text
'key'         Name.Variable
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'found'       Name.Variable
' '           Text
't'           Name.Constant
' '           Text
'value'       Name.Variable
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
' '           Text
'default'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'value'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'assoc-ignore-case' Name.Variable
' '           Text
'('           Punctuation
'key'         Name.Variable
' '           Text
'alist'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Like '       Literal.String
"`assoc'"     Literal.String.Symbol
', but ignores differences in case and text representation.\nKEY must be a string.  Upper-case and lower-case letters are treated as equal.\nUnibyte strings are converted to multibyte for comparison.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'obsolete'    Name.Variable
' '           Text
'assoc-string' Name.Function
' '           Text
'"'           Literal.String
'22.1'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'assoc-string' Name.Function
' '           Text
'key'         Name.Variable
' '           Text
'alist'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'assoc-ignore-representation' Name.Variable
' '           Text
'('           Punctuation
'key'         Name.Variable
' '           Text
'alist'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Like '       Literal.String
"`assoc'"     Literal.String.Symbol
', but ignores differences in text representation.\nKEY must be a string.\nUnibyte strings are converted to multibyte for comparison.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'obsolete'    Name.Variable
' '           Text
'assoc-string' Name.Function
' '           Text
'"'           Literal.String
'22.1'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'assoc-string' Name.Function
' '           Text
'key'         Name.Variable
' '           Text
'alist'       Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'member-ignore-case' Name.Variable
' '           Text
'('           Punctuation
'elt'         Name.Function
' '           Text
'list'        Name.Function
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Like '       Literal.String
"`member'"    Literal.String.Symbol
', but ignore differences in case and text representation.\nELT must be a string.  Upper-case and lower-case letters are treated as equal.\nUnibyte strings are converted to multibyte for comparison.\nNon-strings in LIST are ignored.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'list'        Name.Function
'\n\t      '  Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
'\n\t\t\t'    Text
'('           Punctuation
'eq'          Name.Function
' '           Text
't'           Name.Constant
' '           Text
'('           Punctuation
'compare-strings' Name.Function
' '           Text
'elt'         Name.Function
' '           Text
'0'           Literal.Number.Integer
' '           Text
'nil'         Name.Constant
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'list'        Name.Function
')'           Punctuation
' '           Text
'0'           Literal.Number.Integer
' '           Text
'nil'         Name.Constant
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'list'        Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'list'        Name.Function
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'assq-delete-all' Name.Variable
' '           Text
'('           Punctuation
'key'         Name.Variable
' '           Text
'alist'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Delete from ALIST all elements whose car is ' Literal.String
"`eq'"        Literal.String.Symbol
' to KEY.\nReturn the modified alist.\nElements of ALIST that are not conses are ignored.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'alist'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'alist'       Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'key'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'alist'       Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'alist'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'tail'        Name.Variable
' '           Text
'alist'       Name.Variable
')'           Punctuation
' '           Text
'tail-cdr'    Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'tail-cdr'    Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'tail-cdr'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'tail-cdr'    Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'key'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'setcdr'      Name.Function
' '           Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail-cdr'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'tail'        Name.Variable
' '           Text
'tail-cdr'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'alist'       Name.Variable
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'rassq-delete-all' Name.Variable
' '           Text
'('           Punctuation
'value'       Name.Variable
' '           Text
'alist'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Delete from ALIST all elements whose cdr is ' Literal.String
"`eq'"        Literal.String.Symbol
' to VALUE.\nReturn the modified alist.\nElements of ALIST that are not conses are ignored.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'alist'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'alist'       Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'value'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'alist'       Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'alist'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'tail'        Name.Variable
' '           Text
'alist'       Name.Variable
')'           Punctuation
' '           Text
'tail-cdr'    Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'tail-cdr'    Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'tail-cdr'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'tail-cdr'    Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'value'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'setcdr'      Name.Function
' '           Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail-cdr'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'tail'        Name.Variable
' '           Text
'tail-cdr'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'alist'       Name.Variable
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'alist-get'   Name.Variable
' '           Text
'('           Punctuation
'key'         Name.Variable
' '           Text
'alist'       Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'default'     Name.Variable
' '           Text
'remove'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Get the value associated to KEY in ALIST.\nDEFAULT is the value to return if KEY is not found in ALIST.\nREMOVE, if non-nil, means that when setting this element, we should\nremove the entry if the new value is ' Literal.String
"`eql'"       Literal.String.Symbol
' to DEFAULT.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'ignore'      Name.Variable
' '           Text
'remove'      Name.Variable
')'           Punctuation
' '           Text
';;Silence byte-compiler.' Comment.Single
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'x'           Name.Variable
' '           Text
'('           Punctuation
'assq'        Name.Function
' '           Text
'key'         Name.Variable
' '           Text
'alist'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'x'           Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'x'           Name.Variable
')'           Punctuation
' '           Text
'default'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'remove'      Name.Variable
' '           Text
'('           Punctuation
'elt'         Name.Function
' '           Text
'seq'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return a copy of SEQ with all occurrences of ELT removed.\nSEQ must be a list, vector, or string.  The comparison is done with ' Literal.String
"`equal'"     Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'nlistp'      Name.Function
' '           Text
'seq'         Name.Variable
')'           Punctuation
'\n      '    Text
";; If SEQ isn't a list, there's no need to copy SEQ because" Comment.Single
'\n      '    Text
";; `delete' will return a new object." Comment.Single
'\n      '    Text
'('           Punctuation
'delete'      Name.Function
' '           Text
'elt'         Name.Function
' '           Text
'seq'         Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'delete'      Name.Function
' '           Text
'elt'         Name.Function
' '           Text
'('           Punctuation
'copy-sequence' Name.Function
' '           Text
'seq'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'remq'        Name.Variable
' '           Text
'('           Punctuation
'elt'         Name.Function
' '           Text
'list'        Name.Function
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return LIST with all occurrences of ELT removed.\nThe comparison is done with ' Literal.String
"`eq'"        Literal.String.Symbol
'.  Contrary to ' Literal.String
"`delq'"      Literal.String.Symbol
', this does not use\nside-effects, and the argument LIST is not modified.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'elt'         Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'list'        Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'elt'         Name.Function
' '           Text
'list'        Name.Function
')'           Punctuation
'\n      '    Text
'('           Punctuation
'delq'        Name.Function
' '           Text
'elt'         Name.Function
' '           Text
'('           Punctuation
'copy-sequence' Name.Function
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
'\n    '      Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
'\n\x0c\n'    Text

';;;; Keymap support.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'kbd'         Name.Variable
' '           Text
'('           Punctuation
'keys'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Convert KEYS to the internal Emacs key representation.\nKEYS should be a string constant in the format used for\nsaving keyboard macros (see ' Literal.String
"`edmacro-mode'" Literal.String.Symbol
').'          Literal.String
'"'           Literal.String
'\n  '        Text
";; Don't use a defalias, since the `pure' property is only true for" Comment.Single
'\n  '        Text
";; the calling convention of `kbd'." Comment.Single
'\n  '        Text
'('           Punctuation
'read-kbd-macro' Name.Variable
' '           Text
'keys'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n'          Text

'('           Punctuation
'put'         Name.Function
' '           Text
"'kbd"        Literal.String.Symbol
' '           Text
"'pure"       Literal.String.Symbol
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'undefined'   Name.Variable
' '           Text
'('           Punctuation
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Beep to tell the user this binding is undefined.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'interactive' Keyword
')'           Punctuation
'\n  '        Text
'('           Punctuation
'ding'        Name.Function
')'           Punctuation
'\n  '        Text
'('           Punctuation
'message'     Name.Function
' '           Text
'"'           Literal.String
'%s is undefined' Literal.String
'"'           Literal.String
' '           Text
'('           Punctuation
'key-description' Name.Function
' '           Text
'('           Punctuation
'this-single-command-keys' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'defining-kbd-macro' Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n  '        Text
'('           Punctuation
'force-mode-line-update' Name.Function
')'           Punctuation
'\n  '        Text
";; If this is a down-mouse event, don't reset prefix-arg;" Comment.Single
'\n  '        Text
';; pass it to the command run by the up event.' Comment.Single
'\n  '        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'prefix-arg'  Name.Variable
'\n        '  Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'memq'        Name.Function
' '           Text
"'down"       Literal.String.Symbol
' '           Text
'('           Punctuation
'event-modifiers' Name.Variable
' '           Text
'last-command-event' Name.Variable
')'           Punctuation
')'           Punctuation
'\n          ' Text
'current-prefix-arg' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

';; Prevent the \\{...} documentation construct' Comment.Single
'\n'          Text

';; from mentioning keys that run this command.' Comment.Single
'\n'          Text

'('           Punctuation
'put'         Name.Function
' '           Text
"'undefined"  Literal.String.Symbol
' '           Text
"'suppress-keymap" Literal.String.Symbol
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'suppress-keymap' Name.Variable
' '           Text
'('           Punctuation
'map'         Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'nodigits'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Make MAP override all normally self-inserting keys to be undefined.\nNormally, as an exception, digits and minus-sign are set to make prefix args,\nbut optional second arg NODIGITS non-nil treats them like other chars.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'define-key'  Name.Function
' '           Text
'map'         Name.Variable
' '           Text
'['           Punctuation
'remap'       Name.Variable
' '           Text
'self-insert-command' Name.Function
']'           Punctuation
' '           Text
"'undefined"  Literal.String.Symbol
')'           Punctuation
'\n  '        Text
'('           Punctuation
'or'          Keyword
' '           Text
'nodigits'    Name.Variable
'\n      '    Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'loop'        Name.Builtin
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'define-key'  Name.Function
' '           Text
'map'         Name.Variable
' '           Text
'"'           Literal.String
'-'           Literal.String
'"'           Literal.String
' '           Text
"'negative-argument" Literal.String.Symbol
')'           Punctuation
'\n\t'        Text
';; Make plain numbers do numeric args.' Comment.Single
'\n\t'        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'loop'        Name.Builtin
' '           Text
'?0'          Literal.String.Char
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'<='          Name.Function
' '           Text
'loop'        Name.Builtin
' '           Text
'?9'          Literal.String.Char
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'define-key'  Name.Function
' '           Text
'map'         Name.Variable
' '           Text
'('           Punctuation
'char-to-string' Name.Function
' '           Text
'loop'        Name.Builtin
')'           Punctuation
' '           Text
"'digit-argument" Literal.String.Symbol
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'loop'        Name.Builtin
' '           Text
'('           Punctuation
'1+'          Name.Function
' '           Text
'loop'        Name.Builtin
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'make-composed-keymap' Name.Variable
' '           Text
'('           Punctuation
'maps'        Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'parent'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Construct a new keymap composed of MAPS and inheriting from PARENT.\nWhen looking up a key in the returned map, the key is looked in each\nkeymap of MAPS in turn until a binding is found.\nIf no binding is found in MAPS, the lookup continues in PARENT, if non-nil.\nAs always with keymap inheritance, a nil binding in MAPS overrides\nany corresponding binding in PARENT, but it does not override corresponding\nbindings in other keymaps of MAPS.\nMAPS can be a list of keymaps or a single keymap.\nPARENT if non-nil should be a keymap.' Literal.String
'"'           Literal.String
'\n  '        Text
'`'           Operator
'('           Punctuation
'keymap'      Name.Variable
'\n    '      Text
',@'          Operator
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'keymapp'     Name.Function
' '           Text
'maps'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'maps'        Name.Variable
')'           Punctuation
' '           Text
'maps'        Name.Variable
')'           Punctuation
'\n    '      Text
',@'          Operator
'parent'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'define-key-after' Name.Variable
' '           Text
'('           Punctuation
'keymap'      Name.Variable
' '           Text
'key'         Name.Variable
' '           Text
'definition'  Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'after'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Add binding in KEYMAP for KEY => DEFINITION, right after AFTER's binding.\nThis is like " Literal.String
"`define-key'" Literal.String.Symbol
' except that the binding for KEY is placed\njust after the binding for the event AFTER, instead of at the beginning\nof the map.  Note that AFTER must be an event type (like KEY), NOT a command\n' Literal.String

'\\('         Literal.String
'like DEFINITION).\n\nIf AFTER is t or omitted, the new binding goes at the end of the keymap.\nAFTER should be a single event type--a symbol or a character, not a sequence.\n\nBindings are always added before any inherited map.\n\nThe order of bindings in a keymap only matters when it is used as\na menu, so this function is not useful for non-menu keymaps.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'after'       Name.Variable
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'after'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'keymapp'     Name.Function
' '           Text
'keymap'      Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'signal'      Name.Function
' '           Text
"'wrong-type-argument" Literal.String.Symbol
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'keymapp"    Literal.String.Symbol
' '           Text
'keymap'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'key'         Name.Variable
'\n\t'        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'<='          Name.Function
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'key'         Name.Variable
')'           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'key'         Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'keymap'      Name.Variable
' '           Text
'('           Punctuation
'lookup-key'  Name.Function
' '           Text
'keymap'      Name.Variable
'\n\t\t\t\t   ' Text
'('           Punctuation
'apply'       Name.Function
' '           Text
"'vector"     Literal.String.Symbol
'\n\t\t\t\t\t  ' Text
'('           Punctuation
'butlast'     Name.Variable
' '           Text
'('           Punctuation
'mapcar'      Name.Function
' '           Text
"'identity"   Literal.String.Symbol
' '           Text
'key'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'key'         Name.Variable
' '           Text
'('           Punctuation
'1-'          Name.Function
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'key'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'tail'        Name.Variable
' '           Text
'keymap'      Name.Variable
')'           Punctuation
' '           Text
'done'        Name.Variable
' '           Text
'inserted'    Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'done'        Name.Variable
')'           Punctuation
' '           Text
'tail'        Name.Variable
')'           Punctuation
'\n      '    Text
';; Delete any earlier bindings for the same key.' Comment.Single
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'car-safe'    Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
' '           Text
'key'         Name.Variable
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'setcdr'      Name.Function
' '           Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
';; If we hit an included map, go down that one.' Comment.Single
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'keymapp'     Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
";; When we reach AFTER's binding, insert the new binding after." Comment.Single
'\n      '    Text
';; If we reach an inherited keymap, insert just before that.' Comment.Single
'\n      '    Text
';; If we reach the end of this keymap, insert at the end.' Comment.Single
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'car-safe'    Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'after'       Name.Variable
')'           Punctuation
'\n\t\t   '   Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'after'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
"'keymap"     Literal.String.Symbol
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'null'        Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'progn'       Keyword
'\n\t    '    Text
';; Stop the scan only if we find a parent keymap.' Comment.Single
'\n\t    '    Text
';; Keep going past the inserted element' Comment.Single
'\n\t    '    Text
';; so we can delete any duplications that come later.' Comment.Single
'\n\t    '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
"'keymap"     Literal.String.Symbol
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'done'        Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
";; Don't insert more than once." Comment.Single
'\n\t    '    Text
'('           Punctuation
'or'          Keyword
' '           Text
'inserted'    Name.Variable
'\n\t\t'      Text
'('           Punctuation
'setcdr'      Name.Function
' '           Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'key'         Name.Variable
' '           Text
'definition'  Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'inserted'    Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'map-keymap-sorted' Name.Variable
' '           Text
'('           Punctuation
'function'    Keyword
' '           Text
'keymap'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Implement '  Literal.String
"`map-keymap'" Literal.String.Symbol
" with sorting.\nDon't call this function; it is for internal use only." Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'list'        Name.Function
')'           Punctuation
'\n    '      Text
'('           Punctuation
'map-keymap'  Name.Function
' '           Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'a'           Name.Variable
' '           Text
'b'           Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'a'           Name.Variable
' '           Text
'b'           Name.Variable
')'           Punctuation
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
'\n                ' Text
'keymap'      Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'list'        Name.Function
' '           Text
'('           Punctuation
'sort'        Name.Function
' '           Text
'list'        Name.Function
'\n                     ' Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'a'           Name.Variable
' '           Text
'b'           Name.Variable
')'           Punctuation
'\n                       ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'a'           Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'a'           Name.Variable
')'           Punctuation
' '           Text
'b'           Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'b'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n                       ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'integerp'    Name.Function
' '           Text
'a'           Name.Variable
')'           Punctuation
'\n                           ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'integerp'    Name.Function
' '           Text
'b'           Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'a'           Name.Variable
' '           Text
'b'           Name.Variable
')'           Punctuation
'\n                             ' Text
't'           Name.Constant
')'           Punctuation
'\n                         ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'integerp'    Name.Function
' '           Text
'b'           Name.Variable
')'           Punctuation
' '           Text
't'           Name.Constant
'\n                           ' Text
';; string< also accepts symbols.' Comment.Single
'\n                           ' Text
'('           Punctuation
'string<'     Name.Function
' '           Text
'a'           Name.Variable
' '           Text
'b'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'dolist'      Name.Builtin
' '           Text
'('           Punctuation
'p'           Name.Variable
' '           Text
'list'        Name.Function
')'           Punctuation
'\n      '    Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'function'    Keyword
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'p'           Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'p'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'keymap--menu-item-binding' Name.Variable
' '           Text
'('           Punctuation
'val'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the binding part of a menu-item.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'cond'        Keyword
'\n   '       Text
'('           Punctuation
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'val'         Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'val'         Name.Variable
')'           Punctuation
'              ' Text
';Not a menu-item.' Comment.Single
'\n   '       Text
'('           Punctuation
'('           Punctuation
'eq'          Name.Function
' '           Text
"'menu-item"  Literal.String.Symbol
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'val'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'binding'     Name.Variable
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'2'           Literal.Number.Integer
' '           Text
'val'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n           ' Text
'('           Punctuation
'plist'       Name.Variable
' '           Text
'('           Punctuation
'nthcdr'      Name.Function
' '           Text
'3'           Literal.Number.Integer
' '           Text
'val'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n           ' Text
'('           Punctuation
'filter'      Name.Variable
' '           Text
'('           Punctuation
'plist-get'   Name.Function
' '           Text
'plist'       Name.Variable
' '           Text
':filter'     Name.Builtin
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'filter'      Name.Variable
' '           Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'filter'      Name.Variable
' '           Text
'binding'     Name.Variable
')'           Punctuation
'\n        '  Text
'binding'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n   '       Text
'('           Punctuation
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'val'         Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'('           Punctuation
'cadr'        Name.Variable
' '           Text
'val'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'cddr'        Name.Variable
' '           Text
'val'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n   '       Text
'('           Punctuation
'('           Punctuation
'stringp'     Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'val'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'val'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n   '       Text
'('           Punctuation
't'           Name.Constant
' '           Text
'val'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'                            ' Text
';Not a menu-item either.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'keymap--menu-item-with-binding' Name.Variable
' '           Text
'('           Punctuation
'item'        Name.Variable
' '           Text
'binding'     Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Build a menu-item like ITEM but with its binding changed to BINDING.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'cond'        Keyword
'\n   '       Text
'('           Punctuation
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'item'        Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'binding'     Name.Variable
')'           Punctuation
'\t\t'        Text
';Not a menu-item.' Comment.Single
'\n   '       Text
'('           Punctuation
'('           Punctuation
'eq'          Name.Function
' '           Text
"'menu-item"  Literal.String.Symbol
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'item'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'item'        Name.Variable
' '           Text
'('           Punctuation
'copy-sequence' Name.Function
' '           Text
'item'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'tail'        Name.Variable
' '           Text
'('           Punctuation
'nthcdr'      Name.Function
' '           Text
'2'           Literal.Number.Integer
' '           Text
'item'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setcar'      Name.Function
' '           Text
'tail'        Name.Variable
' '           Text
'binding'     Name.Variable
')'           Punctuation
'\n      '    Text
';; Remove any potential filter.' Comment.Single
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'plist-get'   Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
' '           Text
':filter'     Name.Builtin
')'           Punctuation
'\n          ' Text
'('           Punctuation
'setcdr'      Name.Function
' '           Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'plist-put'   Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
' '           Text
':filter'     Name.Builtin
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'item'        Name.Variable
')'           Punctuation
'\n   '       Text
'('           Punctuation
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'item'        Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'('           Punctuation
'cadr'        Name.Variable
' '           Text
'item'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'item'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'('           Punctuation
'cadr'        Name.Variable
' '           Text
'item'        Name.Variable
')'           Punctuation
' '           Text
'binding'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n   '       Text
'('           Punctuation
't'           Name.Constant
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'item'        Name.Variable
')'           Punctuation
' '           Text
'binding'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'keymap--merge-bindings' Name.Variable
' '           Text
'('           Punctuation
'val1'        Name.Variable
' '           Text
'val2'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Merge bindings VAL1 and VAL2.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'map1'        Name.Variable
' '           Text
'('           Punctuation
'keymap--menu-item-binding' Name.Variable
' '           Text
'val1'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'map2'        Name.Variable
' '           Text
'('           Punctuation
'keymap--menu-item-binding' Name.Variable
' '           Text
'val2'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'keymapp'     Name.Function
' '           Text
'map1'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'keymapp'     Name.Function
' '           Text
'map2'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n        '  Text
";; There's nothing to merge: val1 takes precedence." Comment.Single
'\n        '  Text
'val1'        Name.Variable
'\n      '    Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'map'         Name.Variable
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'keymap"     Literal.String.Symbol
' '           Text
'map1'        Name.Variable
' '           Text
'map2'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n            ' Text
'('           Punctuation
'item'        Name.Variable
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'keymapp'     Name.Function
' '           Text
'val1'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'keymapp'     Name.Function
' '           Text
'val2'        Name.Variable
')'           Punctuation
' '           Text
'nil'         Name.Constant
' '           Text
'val2'        Name.Variable
')'           Punctuation
' '           Text
'val1'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'keymap--menu-item-with-binding' Name.Variable
' '           Text
'item'        Name.Variable
' '           Text
'map'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'keymap-canonicalize' Name.Variable
' '           Text
'('           Punctuation
'map'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return a simpler equivalent keymap.\nThis resolves inheritance and redefinitions.  The returned keymap\nshould behave identically to a copy of KEYMAP w.r.t ' Literal.String
"`lookup-key'" Literal.String.Symbol
'\nand use in active keymaps and menus.\nSubkeymaps may be modified but are not canonicalized.' Literal.String
'"'           Literal.String
'\n  '        Text
';; FIXME: Problem with the difference between a nil binding' Comment.Single
'\n  '        Text
";; that hides a binding in an inherited map and a nil binding that's ignored" Comment.Single
'\n  '        Text
';; to let some further binding visible.  Currently a nil binding hides all.' Comment.Single
'\n  '        Text
";; FIXME: we may want to carefully (re)order elements in case they're" Comment.Single
'\n  '        Text
';; menu-entries.' Comment.Single
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'bindings'    Name.Variable
' '           Text
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'ranges'      Name.Variable
' '           Text
'('           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'prompt'      Name.Variable
' '           Text
'('           Punctuation
'keymap-prompt' Name.Function
' '           Text
'map'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'keymapp'     Name.Function
' '           Text
'map'         Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'map'         Name.Variable
' '           Text
'('           Punctuation
'map-keymap'  Name.Function
' '           Text
';; -internal' Comment.Single
'\n                 ' Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'key'         Name.Variable
' '           Text
'item'        Name.Variable
')'           Punctuation
'\n                   ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'key'         Name.Variable
')'           Punctuation
'\n                       ' Text
';; Treat char-ranges specially.' Comment.Single
'\n                       ' Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'key'         Name.Variable
' '           Text
'item'        Name.Variable
')'           Punctuation
' '           Text
'ranges'      Name.Variable
')'           Punctuation
'\n                     ' Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'key'         Name.Variable
' '           Text
'item'        Name.Variable
')'           Punctuation
' '           Text
'bindings'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                 ' Text
'map'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
';; Create the new map.' Comment.Single
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'map'         Name.Variable
' '           Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'ranges'      Name.Variable
' '           Text
"'make-keymap" Literal.String.Symbol
' '           Text
"'make-sparse-keymap" Literal.String.Symbol
')'           Punctuation
' '           Text
'prompt'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'dolist'      Name.Builtin
' '           Text
'('           Punctuation
'binding'     Name.Variable
' '           Text
'ranges'      Name.Variable
')'           Punctuation
'\n      '    Text
';; Treat char-ranges specially.  FIXME: need to merge as well.' Comment.Single
'\n      '    Text
'('           Punctuation
'define-key'  Name.Function
' '           Text
'map'         Name.Variable
' '           Text
'('           Punctuation
'vector'      Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'binding'     Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'binding'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
';; Process the bindings starting from the end.' Comment.Single
'\n    '      Text
'('           Punctuation
'dolist'      Name.Builtin
' '           Text
'('           Punctuation
'binding'     Name.Variable
' '           Text
'('           Punctuation
'prog1'       Keyword
' '           Text
'bindings'    Name.Variable
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'bindings'    Name.Variable
' '           Text
'('           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'key'         Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'binding'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n             ' Text
'('           Punctuation
'oldbind'     Name.Variable
' '           Text
'('           Punctuation
'assq'        Name.Function
' '           Text
'key'         Name.Variable
' '           Text
'bindings'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'oldbind'     Name.Variable
')'           Punctuation
'\n                  ' Text
';; The normal case: no duplicate bindings.' Comment.Single
'\n                  ' Text
'binding'     Name.Variable
'\n                ' Text
';; This is the second binding for this key.' Comment.Single
'\n                ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'bindings'    Name.Variable
' '           Text
'('           Punctuation
'delq'        Name.Function
' '           Text
'oldbind'     Name.Variable
' '           Text
'bindings'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n                ' Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'key'         Name.Variable
' '           Text
'('           Punctuation
'keymap--merge-bindings' Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'binding'     Name.Variable
')'           Punctuation
'\n                                                  ' Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'oldbind'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n              ' Text
'bindings'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'nconc'       Name.Function
' '           Text
'map'         Name.Variable
' '           Text
'bindings'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'put'         Name.Function
' '           Text
"'keyboard-translate-table" Literal.String.Symbol
' '           Text
"'char-table-extra-slots" Literal.String.Symbol
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'keyboard-translate' Name.Variable
' '           Text
'('           Punctuation
'from'        Name.Variable
' '           Text
'to'          Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Translate character FROM to TO on the current terminal.\nThis function creates a ' Literal.String
"`keyboard-translate-table'" Literal.String.Symbol
' if necessary\nand then modifies one entry in it.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'char-table-p' Name.Function
' '           Text
'keyboard-translate-table' Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'keyboard-translate-table' Name.Variable
'\n\t    '    Text
'('           Punctuation
'make-char-table' Name.Function
' '           Text
"'keyboard-translate-table" Literal.String.Symbol
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'aset'        Name.Function
' '           Text
'keyboard-translate-table' Name.Variable
' '           Text
'from'        Name.Variable
' '           Text
'to'          Name.Variable
')'           Punctuation
')'           Punctuation
'\n\x0c\n'    Text

';;;; Key binding commands.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'global-set-key' Name.Variable
' '           Text
'('           Punctuation
'key'         Name.Variable
' '           Text
'command'     Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Give KEY a global binding as COMMAND.\nCOMMAND is the command definition to use; usually it is\na symbol naming an interactively-callable function.\nKEY is a key sequence; noninteractively, it is a string or vector\nof characters or event types, and non-ASCII characters with codes\nabove 127 (such as ISO Latin-1) can be included if you use a vector.\n\nNote that if KEY has a local binding in the current buffer,\nthat local binding will continue to shadow any global binding\nthat you make with this function.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'interactive' Keyword
' '           Text
'"'           Literal.String
'KSet key globally: ' Literal.String
'\\n'         Literal.String
'CSet key %s to command: ' Literal.String
'"'           Literal.String
')'           Punctuation
'\n  '        Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'vectorp'     Name.Function
' '           Text
'key'         Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'key'         Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'signal'      Name.Function
' '           Text
"'wrong-type-argument" Literal.String.Symbol
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'arrayp"     Literal.String.Symbol
' '           Text
'key'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'define-key'  Name.Function
' '           Text
'('           Punctuation
'current-global-map' Name.Function
')'           Punctuation
' '           Text
'key'         Name.Variable
' '           Text
'command'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'local-set-key' Name.Variable
' '           Text
'('           Punctuation
'key'         Name.Variable
' '           Text
'command'     Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Give KEY a local binding as COMMAND.\nCOMMAND is the command definition to use; usually it is\na symbol naming an interactively-callable function.\nKEY is a key sequence; noninteractively, it is a string or vector\nof characters or event types, and non-ASCII characters with codes\nabove 127 (such as ISO Latin-1) can be included if you use a vector.\n\nThe binding goes in the current buffer's local map, which in most\ncases is shared with all other buffers in the same major mode." Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'interactive' Keyword
' '           Text
'"'           Literal.String
'KSet key locally: ' Literal.String
'\\n'         Literal.String
'CSet key %s locally to command: ' Literal.String
'"'           Literal.String
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'map'         Name.Variable
' '           Text
'('           Punctuation
'current-local-map' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'or'          Keyword
' '           Text
'map'         Name.Variable
'\n\t'        Text
'('           Punctuation
'use-local-map' Name.Function
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'map'         Name.Variable
' '           Text
'('           Punctuation
'make-sparse-keymap' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'vectorp'     Name.Function
' '           Text
'key'         Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'key'         Name.Variable
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'signal'      Name.Function
' '           Text
"'wrong-type-argument" Literal.String.Symbol
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'arrayp"     Literal.String.Symbol
' '           Text
'key'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'define-key'  Name.Function
' '           Text
'map'         Name.Variable
' '           Text
'key'         Name.Variable
' '           Text
'command'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'global-unset-key' Name.Variable
' '           Text
'('           Punctuation
'key'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Remove global binding of KEY.\nKEY is a string or vector representing a sequence of keystrokes.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'interactive' Keyword
' '           Text
'"'           Literal.String
'kUnset key globally: ' Literal.String
'"'           Literal.String
')'           Punctuation
'\n  '        Text
'('           Punctuation
'global-set-key' Name.Variable
' '           Text
'key'         Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'local-unset-key' Name.Variable
' '           Text
'('           Punctuation
'key'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Remove local binding of KEY.\nKEY is a string or vector representing a sequence of keystrokes.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'interactive' Keyword
' '           Text
'"'           Literal.String
'kUnset key locally: ' Literal.String
'"'           Literal.String
')'           Punctuation
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'current-local-map' Name.Function
')'           Punctuation
'\n      '    Text
'('           Punctuation
'local-set-key' Name.Variable
' '           Text
'key'         Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'nil'         Name.Constant
')'           Punctuation
'\n\x0c\n'    Text

';;;; substitute-key-definition and its subroutines.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'key-substitution-in-progress' Name.Variable
' '           Text
'nil'         Name.Constant
'\n  '        Text
'"'           Literal.String
'Used internally by ' Literal.String
"`substitute-key-definition'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'substitute-key-definition' Name.Variable
' '           Text
'('           Punctuation
'olddef'      Name.Variable
' '           Text
'newdef'      Name.Variable
' '           Text
'keymap'      Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'oldmap'      Name.Variable
' '           Text
'prefix'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Replace OLDDEF with NEWDEF for any keys in KEYMAP now defined as OLDDEF.\nIn other words, OLDDEF is replaced with NEWDEF where ever it appears.\nAlternatively, if optional fourth argument OLDMAP is specified, we redefine\nin KEYMAP as NEWDEF those keys which are defined as OLDDEF in OLDMAP.\n\nIf you don't specify OLDMAP, you can usually get the same results\nin a cleaner way with command remapping, like this:\n  (define-key KEYMAP [remap OLDDEF] NEWDEF)\n" Literal.String

'\\n'         Literal.String
'(fn OLDDEF NEWDEF KEYMAP &optional OLDMAP)' Literal.String
'"'           Literal.String
'\n  '        Text
";; Don't document PREFIX in the doc string because we don't want to" Comment.Single
'\n  '        Text
";; advertise it.  It's meant for recursive calls only.  Here's its" Comment.Single
'\n  '        Text
';; meaning'  Comment.Single
'\n\n  '      Text
';; If optional argument PREFIX is specified, it should be a key' Comment.Single
'\n  '        Text
';; prefix, a string.  Redefined bindings will then be bound to the' Comment.Single
'\n  '        Text
';; original key, with PREFIX added at the front.' Comment.Single
'\n  '        Text
'('           Punctuation
'or'          Keyword
' '           Text
'prefix'      Name.Variable
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'prefix'      Name.Variable
' '           Text
'"'           Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'scan'        Name.Variable
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'oldmap'      Name.Variable
' '           Text
'keymap'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'prefix1'     Name.Variable
' '           Text
'('           Punctuation
'vconcat'     Name.Function
' '           Text
'prefix'      Name.Variable
' '           Text
'['           Punctuation
'nil'         Name.Constant
']'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'key-substitution-in-progress' Name.Variable
'\n\t  '      Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'scan'        Name.Variable
' '           Text
'key-substitution-in-progress' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
';; Scan OLDMAP, finding each char or event-symbol that' Comment.Single
'\n    '      Text
';; has any definition, and act on it with hack-key.' Comment.Single
'\n    '      Text
'('           Punctuation
'map-keymap'  Name.Function
'\n     '     Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'char'        Name.Variable
' '           Text
'defn'        Name.Variable
')'           Punctuation
'\n       '   Text
'('           Punctuation
'aset'        Name.Function
' '           Text
'prefix1'     Name.Variable
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'prefix'      Name.Variable
')'           Punctuation
' '           Text
'char'        Name.Variable
')'           Punctuation
'\n       '   Text
'('           Punctuation
'substitute-key-definition-key' Name.Variable
' '           Text
'defn'        Name.Variable
' '           Text
'olddef'      Name.Variable
' '           Text
'newdef'      Name.Variable
' '           Text
'prefix1'     Name.Variable
' '           Text
'keymap'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n     '     Text
'scan'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'substitute-key-definition-key' Name.Variable
' '           Text
'('           Punctuation
'defn'        Name.Variable
' '           Text
'olddef'      Name.Variable
' '           Text
'newdef'      Name.Variable
' '           Text
'prefix'      Name.Variable
' '           Text
'keymap'      Name.Variable
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'inner-def'   Name.Variable
' '           Text
'skipped'     Name.Variable
' '           Text
'menu-item'   Name.Variable
')'           Punctuation
'\n    '      Text
';; Find the actual command name within the binding.' Comment.Single
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'car-safe'    Name.Function
' '           Text
'defn'        Name.Variable
')'           Punctuation
' '           Text
"'menu-item"  Literal.String.Symbol
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'menu-item'   Name.Variable
' '           Text
'defn'        Name.Variable
' '           Text
'defn'        Name.Variable
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'2'           Literal.Number.Integer
' '           Text
'defn'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
';; Skip past menu-prompt.' Comment.Single
'\n      '    Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'('           Punctuation
'car-safe'    Name.Function
' '           Text
'defn'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'('           Punctuation
'pop'         Name.Builtin
' '           Text
'defn'        Name.Variable
')'           Punctuation
' '           Text
'skipped'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
';; Skip past cached key-equivalence data for menu items.' Comment.Single
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'('           Punctuation
'car-safe'    Name.Function
' '           Text
'defn'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'defn'        Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'defn'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'defn'        Name.Variable
' '           Text
'olddef'      Name.Variable
')'           Punctuation
'\n\t    '    Text
';; Compare with equal if definition is a key sequence.' Comment.Single
'\n\t    '    Text
';; That is useful for operating on function-key-map.' Comment.Single
'\n\t    '    Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'defn'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'vectorp'     Name.Function
' '           Text
'defn'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t '     Text
'('           Punctuation
'equal'       Name.Function
' '           Text
'defn'        Name.Variable
' '           Text
'olddef'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'define-key'  Name.Function
' '           Text
'keymap'      Name.Variable
' '           Text
'prefix'      Name.Variable
'\n\t  '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'menu-item'   Name.Variable
'\n\t      '  Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'copy'        Name.Variable
' '           Text
'('           Punctuation
'copy-sequence' Name.Function
' '           Text
'menu-item'   Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'setcar'      Name.Function
' '           Text
'('           Punctuation
'nthcdr'      Name.Function
' '           Text
'2'           Literal.Number.Integer
' '           Text
'copy'        Name.Variable
')'           Punctuation
' '           Text
'newdef'      Name.Variable
')'           Punctuation
'\n\t\t'      Text
'copy'        Name.Variable
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'nconc'       Name.Function
' '           Text
'('           Punctuation
'nreverse'    Name.Function
' '           Text
'skipped'     Name.Variable
')'           Punctuation
' '           Text
'newdef'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
';; Look past a symbol that names a keymap.' Comment.Single
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'inner-def'   Name.Variable
'\n\t    '    Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'indirect-function' Name.Function
' '           Text
'defn'        Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
' '           Text
'defn'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
";; For nested keymaps, we use `inner-def' rather than `defn' so as to" Comment.Single
'\n      '    Text
';; avoid autoloading a keymap.  This is mostly done to preserve the' Comment.Single
'\n      '    Text
';; original non-autoloading behavior of pre-map-keymap times.' Comment.Single
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'keymapp'     Name.Function
' '           Text
'inner-def'   Name.Variable
')'           Punctuation
'\n\t       ' Text
';; Avoid recursively scanning' Comment.Single
'\n\t       ' Text
';; where KEYMAP does not have a submap.' Comment.Single
'\n\t       ' Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'elt'         Name.Function
' '           Text
'('           Punctuation
'lookup-key'  Name.Function
' '           Text
'keymap'      Name.Variable
' '           Text
'prefix'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t '     Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
' '           Text
'('           Punctuation
'natnump'     Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
' '           Text
'('           Punctuation
'keymapp'     Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t       ' Text
';; Avoid recursively rescanning keymap being scanned.' Comment.Single
'\n\t       ' Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'inner-def'   Name.Variable
' '           Text
'key-substitution-in-progress' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
";; If this one isn't being scanned already, scan it now." Comment.Single
'\n\t  '      Text
'('           Punctuation
'substitute-key-definition' Name.Variable
' '           Text
'olddef'      Name.Variable
' '           Text
'newdef'      Name.Variable
' '           Text
'keymap'      Name.Variable
' '           Text
'inner-def'   Name.Variable
' '           Text
'prefix'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\x0c\n'  Text

';;;; The global keymap tree.' Comment.Single
'\n\n'        Text

';; global-map, esc-map, and ctl-x-map have their values set up in' Comment.Single
'\n'          Text

';; keymap.c; we just give them docstrings here.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'global-map'  Name.Variable
' '           Text
'nil'         Name.Constant
'\n  '        Text
'"'           Literal.String
"Default global keymap mapping Emacs keyboard input into commands.\nThe value is a keymap which is usually (but not necessarily) Emacs's\nglobal map." Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'esc-map'     Name.Variable
' '           Text
'nil'         Name.Constant
'\n  '        Text
'"'           Literal.String
'Default keymap for ESC (meta) commands.\nThe normal global definition of the character ESC indirects to this keymap.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'ctl-x-map'   Name.Variable
' '           Text
'nil'         Name.Constant
'\n  '        Text
'"'           Literal.String
'Default keymap for C-x commands.\nThe normal global definition of the character C-x indirects to this keymap.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'ctl-x-4-map' Name.Variable
' '           Text
'('           Punctuation
'make-sparse-keymap' Name.Function
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Keymap for subcommands of C-x 4.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'ctl-x-4-prefix" Literal.String.Symbol
' '           Text
'ctl-x-4-map' Name.Variable
')'           Punctuation
'\n'          Text

'('           Punctuation
'define-key'  Name.Function
' '           Text
'ctl-x-map'   Name.Variable
' '           Text
'"'           Literal.String
'4'           Literal.String
'"'           Literal.String
' '           Text
"'ctl-x-4-prefix" Literal.String.Symbol
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'ctl-x-5-map' Name.Variable
' '           Text
'('           Punctuation
'make-sparse-keymap' Name.Function
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Keymap for frame commands.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'ctl-x-5-prefix" Literal.String.Symbol
' '           Text
'ctl-x-5-map' Name.Variable
')'           Punctuation
'\n'          Text

'('           Punctuation
'define-key'  Name.Function
' '           Text
'ctl-x-map'   Name.Variable
' '           Text
'"'           Literal.String
'5'           Literal.String
'"'           Literal.String
' '           Text
"'ctl-x-5-prefix" Literal.String.Symbol
')'           Punctuation
'\n\n\x0c\n'  Text

';;;; Event manipulation functions.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defconst'    Keyword
' '           Text
'listify-key-sequence-1' Name.Variable
' '           Text
'('           Punctuation
'logior'      Name.Function
' '           Text
'128'         Literal.Number.Integer
' '           Text
'?\\M'        Literal.String.Char
'-\\C-@'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'listify-key-sequence' Name.Variable
' '           Text
'('           Punctuation
'key'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Convert a key sequence to a list of events.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'vectorp'     Name.Function
' '           Text
'key'         Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'append'      Name.Function
' '           Text
'key'         Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n    '      Text
'('           Punctuation
'mapcar'      Name.Function
' '           Text
'('           Punctuation
'function'    Keyword
' '           Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'c'           Name.Variable
')'           Punctuation
'\n\t\t\t'    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'>'           Name.Function
' '           Text
'c'           Name.Variable
' '           Text
'127'         Literal.Number.Integer
')'           Punctuation
'\n\t\t\t    ' Text
'('           Punctuation
'logxor'      Name.Function
' '           Text
'c'           Name.Variable
' '           Text
'listify-key-sequence-1' Name.Variable
')'           Punctuation
'\n\t\t\t  '  Text
'c'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'key'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'eventp'      Name.Variable
' '           Text
'('           Punctuation
'obj'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'True if the argument is an event object.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'obj'         Name.Variable
'\n    '      Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'integerp'    Name.Function
' '           Text
'obj'         Name.Variable
')'           Punctuation
'\n        '  Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'symbolp'     Name.Function
' '           Text
'obj'         Name.Variable
')'           Punctuation
' '           Text
'obj'         Name.Variable
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'keywordp'    Name.Function
' '           Text
'obj'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'obj'         Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'symbolp'     Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'obj'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'event-modifiers' Name.Variable
' '           Text
'('           Punctuation
'event'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return a list of symbols representing the modifier keys in event EVENT.\nThe elements of the list may include ' Literal.String
"`meta'"      Literal.String.Symbol
', '          Literal.String
"`control'"   Literal.String.Symbol
',\n'         Literal.String

"`shift'"     Literal.String.Symbol
', '          Literal.String
"`hyper'"     Literal.String.Symbol
', '          Literal.String
"`super'"     Literal.String.Symbol
', '          Literal.String
"`alt'"       Literal.String.Symbol
', '          Literal.String
"`click'"     Literal.String.Symbol
', '          Literal.String
"`double'"    Literal.String.Symbol
', '          Literal.String
"`triple'"    Literal.String.Symbol
', '          Literal.String
"`drag'"      Literal.String.Symbol
',\nand '     Literal.String
"`down'"      Literal.String.Symbol
'.\nEVENT may be an event or an event type.  If EVENT is a symbol\nthat has never been used in an event that has been read as input\nin the current Emacs session, then this function may fail to include\nthe ' Literal.String
"`click'"     Literal.String.Symbol
' modifier.'  Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'type'        Name.Variable
' '           Text
'event'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'listp'       Name.Function
' '           Text
'type'        Name.Variable
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'type'        Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'type'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'symbolp'     Name.Function
' '           Text
'type'        Name.Variable
')'           Punctuation
'\n        '  Text
";; Don't read event-symbol-elements directly since we're not" Comment.Single
'\n        '  Text
';; sure the symbol has already been parsed.' Comment.Single
'\n\t'        Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'('           Punctuation
'internal-event-symbol-parse-modifiers' Name.Function
' '           Text
'type'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'list'        Name.Function
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'char'        Name.Variable
' '           Text
'('           Punctuation
'logand'      Name.Function
' '           Text
'type'        Name.Variable
' '           Text
'('           Punctuation
'lognot'      Name.Function
' '           Text
'('           Punctuation
'logior'      Name.Function
' '           Text
'?\\M'        Literal.String.Char
'-\\^@'       Name.Variable
' '           Text
'?\\C'        Literal.String.Char
'-\\^@'       Name.Variable
' '           Text
'?\\S'        Literal.String.Char
'-\\^@'       Name.Variable
'\n\t\t\t\t\t       ' Text
'?\\H'        Literal.String.Char
'-\\^@'       Name.Variable
' '           Text
'?\\s'        Literal.String.Char
'-\\^@'       Name.Variable
' '           Text
'?\\A'        Literal.String.Char
'-\\^@'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'zerop'       Name.Variable
' '           Text
'('           Punctuation
'logand'      Name.Function
' '           Text
'type'        Name.Variable
' '           Text
'?\\M'        Literal.String.Char
'-\\^@'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
"'meta"       Literal.String.Symbol
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'zerop'       Name.Variable
' '           Text
'('           Punctuation
'logand'      Name.Function
' '           Text
'type'        Name.Variable
' '           Text
'?\\C'        Literal.String.Char
'-\\^@'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'<'           Name.Function
' '           Text
'char'        Name.Variable
' '           Text
'32'          Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
"'control"    Literal.String.Symbol
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'zerop'       Name.Variable
' '           Text
'('           Punctuation
'logand'      Name.Function
' '           Text
'type'        Name.Variable
' '           Text
'?\\S'        Literal.String.Char
'-\\^@'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'/='          Name.Function
' '           Text
'char'        Name.Variable
' '           Text
'('           Punctuation
'downcase'    Name.Function
' '           Text
'char'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
"'shift"      Literal.String.Symbol
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'zerop'       Name.Variable
' '           Text
'('           Punctuation
'logand'      Name.Function
' '           Text
'type'        Name.Variable
' '           Text
'?\\H'        Literal.String.Char
'-\\^@'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
"'hyper"      Literal.String.Symbol
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'zerop'       Name.Variable
' '           Text
'('           Punctuation
'logand'      Name.Function
' '           Text
'type'        Name.Variable
' '           Text
'?\\s'        Literal.String.Char
'-\\^@'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
"'super"      Literal.String.Symbol
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'zerop'       Name.Variable
' '           Text
'('           Punctuation
'logand'      Name.Function
' '           Text
'type'        Name.Variable
' '           Text
'?\\A'        Literal.String.Char
'-\\^@'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
"'alt"        Literal.String.Symbol
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'event-basic-type' Name.Variable
' '           Text
'('           Punctuation
'event'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the basic type of the given event (all modifiers removed).\nThe value is a printing character (not upper case) or a symbol.\nEVENT may be an event or an event type.  If EVENT is a symbol\nthat has never been used in an event that has been read as input\nin the current Emacs session, then this function may return nil.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'event'       Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'event'       Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'event'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'symbolp'     Name.Function
' '           Text
'event'       Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'car'         Name.Function
' '           Text
'('           Punctuation
'get'         Name.Function
' '           Text
'event'       Name.Variable
' '           Text
"'event-symbol-elements" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'base'        Name.Variable
' '           Text
'('           Punctuation
'logand'      Name.Function
' '           Text
'event'       Name.Variable
' '           Text
'('           Punctuation
'1-'          Name.Function
' '           Text
'?\\A'        Literal.String.Char
'-\\^@'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'uncontrolled' Name.Variable
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'base'        Name.Variable
' '           Text
'32'          Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'logior'      Name.Function
' '           Text
'base'        Name.Variable
' '           Text
'64'          Literal.Number.Integer
')'           Punctuation
' '           Text
'base'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
';; There are some numbers that are invalid characters and' Comment.Single
'\n      '    Text
";; cause `downcase' to get an error." Comment.Single
'\n      '    Text
'('           Punctuation
'condition-case' Keyword
' '           Text
'('           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'downcase'    Name.Function
' '           Text
'uncontrolled' Name.Variable
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'error'       Name.Exception
' '           Text
'uncontrolled' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'mouse-movement-p' Name.Variable
' '           Text
'('           Punctuation
'object'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return non-nil if OBJECT is a mouse movement event.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'car-safe'    Name.Function
' '           Text
'object'      Name.Variable
')'           Punctuation
' '           Text
"'mouse-movement" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'mouse-event-p' Name.Variable
' '           Text
'('           Punctuation
'object'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return non-nil if OBJECT is a mouse click event.' Literal.String
'"'           Literal.String
'\n  '        Text
';; is this really correct? maybe remove mouse-movement?' Comment.Single
'\n  '        Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'('           Punctuation
'event-basic-type' Name.Variable
' '           Text
'object'      Name.Variable
')'           Punctuation
' '           Text
"'"           Operator
'('           Punctuation
'mouse-1'     Name.Variable
' '           Text
'mouse-2'     Name.Variable
' '           Text
'mouse-3'     Name.Variable
' '           Text
'mouse-movement' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'event-start' Name.Variable
' '           Text
'('           Punctuation
'event'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the starting position of EVENT.\nEVENT should be a mouse click, drag, or key press event.  If\nEVENT is nil, the value of ' Literal.String
"`posn-at-point'" Literal.String.Symbol
' is used instead.\n\nThe following accessor functions are used to access the elements\nof the position:\n\n' Literal.String

"`posn-window'" Literal.String.Symbol
': The window the event is in.\n' Literal.String

"`posn-area'" Literal.String.Symbol
': A symbol identifying the area the event occurred in,\nor nil if the event occurred in the text area.\n' Literal.String

"`posn-point'" Literal.String.Symbol
': The buffer position of the event.\n' Literal.String

"`posn-x-y'"  Literal.String.Symbol
': The pixel-based coordinates of the event.\n' Literal.String

"`posn-col-row'" Literal.String.Symbol
': The estimated column and row corresponding to the\nposition of the event.\n' Literal.String

"`posn-actual-col-row'" Literal.String.Symbol
': The actual column and row corresponding to the\nposition of the event.\n' Literal.String

"`posn-string'" Literal.String.Symbol
": The string object of the event, which is either\nnil or (STRING . POSITION)'.\n" Literal.String

"`posn-image'" Literal.String.Symbol
': The image object of the event, if any.\n' Literal.String

"`posn-object'" Literal.String.Symbol
': The image or string object of the event, if any.\n' Literal.String

"`posn-timestamp'" Literal.String.Symbol
': The time the event occurred, in milliseconds.\n\nFor more information, see Info node ' Literal.String
'`'           Literal.String
"(elisp)Click Events'." Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'event'       Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'1'           Literal.Number.Integer
' '           Text
'event'       Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'posn-at-point' Name.Function
')'           Punctuation
'\n        '  Text
'('           Punctuation
'list'        Name.Function
' '           Text
'('           Punctuation
'selected-window' Name.Function
')'           Punctuation
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
' '           Text
"'"           Operator
'('           Punctuation
'0'           Literal.Number.Integer
' '           Text
'.'           Operator
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'event-end'   Name.Variable
' '           Text
'('           Punctuation
'event'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the ending position of EVENT.\nEVENT should be a click, drag, or key press event.\n\nSee ' Literal.String
"`event-start'" Literal.String.Symbol
' for a description of the value returned.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'event'       Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'2'           Literal.Number.Integer
' '           Text
'event'       Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'2'           Literal.Number.Integer
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text
'event'       Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'posn-at-point' Name.Function
')'           Punctuation
'\n        '  Text
'('           Punctuation
'list'        Name.Function
' '           Text
'('           Punctuation
'selected-window' Name.Function
')'           Punctuation
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
' '           Text
"'"           Operator
'('           Punctuation
'0'           Literal.Number.Integer
' '           Text
'.'           Operator
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'event-click-count' Name.Variable
' '           Text
'('           Punctuation
'event'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the multi-click count of EVENT, a click or drag event.\nThe return value is a positive integer.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'event'       Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'integerp'    Name.Function
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'2'           Literal.Number.Integer
' '           Text
'event'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'2'           Literal.Number.Integer
' '           Text
'event'       Name.Variable
')'           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\x0c\n'    Text

';;;; Extracting fields of the positions in an event.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'posnp'       Name.Variable
' '           Text
'('           Punctuation
'obj'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return non-nil if OBJ appears to be a valid ' Literal.String
"`posn'"      Literal.String.Symbol
' object specifying a window.\nIf OBJ is a valid ' Literal.String
"`posn'"      Literal.String.Symbol
' object, but specifies a frame rather\nthan a window, return nil.' Literal.String
'"'           Literal.String
'\n  '        Text
';; FIXME: Correct the behavior of this function so that all valid' Comment.Single
'\n  '        Text
";; `posn' objects are recognized, after updating other code that" Comment.Single
'\n  '        Text
';; depends on its present behavior.' Comment.Single
'\n  '        Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'windowp'     Name.Function
' '           Text
'('           Punctuation
'car-safe'    Name.Function
' '           Text
'obj'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'atom'        Name.Function
' '           Text
'('           Punctuation
'car-safe'    Name.Function
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'obj'         Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'obj'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'                ' Text
';AREA-OR-POS.' Comment.Single
'\n       '   Text
'('           Punctuation
'integerp'    Name.Function
' '           Text
'('           Punctuation
'car-safe'    Name.Function
' '           Text
'('           Punctuation
'car-safe'    Name.Function
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'obj'         Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'obj'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
' '           Text
';XOFFSET.'   Comment.Single
'\n       '   Text
'('           Punctuation
'integerp'    Name.Function
' '           Text
'('           Punctuation
'car-safe'    Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'obj'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'                     ' Text
';TIMESTAMP.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'posn-window' Name.Variable
' '           Text
'('           Punctuation
'position'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the window in POSITION.\nPOSITION should be a list of the form returned by the ' Literal.String
"`event-start'" Literal.String.Symbol
'\nand '      Literal.String
"`event-end'" Literal.String.Symbol
' functions.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'0'           Literal.Number.Integer
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'posn-area'   Name.Variable
' '           Text
'('           Punctuation
'position'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the window area recorded in POSITION, or nil for the text area.\nPOSITION should be a list of the form returned by the ' Literal.String
"`event-start'" Literal.String.Symbol
'\nand '      Literal.String
"`event-end'" Literal.String.Symbol
' functions.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'area'        Name.Variable
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'1'           Literal.Number.Integer
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t  '    Text
'('           Punctuation
'car'         Name.Function
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'1'           Literal.Number.Integer
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'1'           Literal.Number.Integer
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'symbolp'     Name.Function
' '           Text
'area'        Name.Variable
')'           Punctuation
' '           Text
'area'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'posn-point'  Name.Variable
' '           Text
'('           Punctuation
'position'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the buffer location in POSITION.\nPOSITION should be a list of the form returned by the ' Literal.String
"`event-start'" Literal.String.Symbol
'\nand '      Literal.String
"`event-end'" Literal.String.Symbol
' functions.\nReturns nil if POSITION does not correspond to any buffer location (e.g.\na click on a scroll bar).' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'5'           Literal.Number.Integer
' '           Text
'position'    Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'pt'          Name.Variable
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'1'           Literal.Number.Integer
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'car-safe'    Name.Function
' '           Text
'pt'          Name.Variable
')'           Punctuation
'\n            ' Text
";; Apparently this can also be `vertical-scroll-bar' (bug#13979)." Comment.Single
'\n            ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'integerp'    Name.Function
' '           Text
'pt'          Name.Variable
')'           Punctuation
' '           Text
'pt'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'posn-set-point' Name.Variable
' '           Text
'('           Punctuation
'position'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Move point to POSITION.\nSelect the corresponding window as well.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'windowp'     Name.Function
' '           Text
'('           Punctuation
'posn-window' Name.Variable
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'error'       Name.Exception
' '           Text
'"'           Literal.String
'Position not in text area of window' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'select-window' Name.Function
' '           Text
'('           Punctuation
'posn-window' Name.Variable
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'numberp'     Name.Function
' '           Text
'('           Punctuation
'posn-point'  Name.Variable
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'goto-char'   Name.Function
' '           Text
'('           Punctuation
'posn-point'  Name.Variable
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'posn-x-y'    Name.Variable
' '           Text
'('           Punctuation
'position'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the x and y coordinates in POSITION.\nThe return value has the form (X . Y), where X and Y are given in\npixels.  POSITION should be a list of the form returned by\n' Literal.String

"`event-start'" Literal.String.Symbol
' and '       Literal.String
"`event-end'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'2'           Literal.Number.Integer
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'declare-function' Name.Builtin
' '           Text
'scroll-bar-scale' Name.Variable
' '           Text
'"'           Literal.String
'scroll-bar'  Literal.String
'"'           Literal.String
' '           Text
'('           Punctuation
'num-denom'   Name.Variable
' '           Text
'whole'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'posn-col-row' Name.Variable
' '           Text
'('           Punctuation
'position'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Return the nominal column and row in POSITION, measured in characters.\nThe column and row values are approximations calculated from the x\nand y coordinates in POSITION and the frame's default character width\nand default line height, including spacing.\nFor a scroll-bar event, the result column is 0, and the row\ncorresponds to the vertical position of the click in the scroll bar.\nPOSITION should be a list of the form returned by the " Literal.String
"`event-start'" Literal.String.Symbol
'\nand '      Literal.String
"`event-end'" Literal.String.Symbol
' functions.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'pair'        Name.Variable
'            ' Text
'('           Punctuation
'posn-x-y'    Name.Variable
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n         ' Text
'('           Punctuation
'frame-or-window' Name.Variable
' '           Text
'('           Punctuation
'posn-window' Name.Variable
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n         ' Text
'('           Punctuation
'frame'       Name.Variable
'           ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'framep'      Name.Function
' '           Text
'frame-or-window' Name.Variable
')'           Punctuation
'\n                              ' Text
'frame-or-window' Name.Variable
'\n                            ' Text
'('           Punctuation
'window-frame' Name.Function
' '           Text
'frame-or-window' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n         ' Text
'('           Punctuation
'window'      Name.Variable
'          '  Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'windowp'     Name.Function
' '           Text
'frame-or-window' Name.Variable
')'           Punctuation
' '           Text
'frame-or-window' Name.Variable
')'           Punctuation
')'           Punctuation
'\n         ' Text
'('           Punctuation
'area'        Name.Variable
'            ' Text
'('           Punctuation
'posn-area'   Name.Variable
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'cond'        Keyword
'\n     '     Text
'('           Punctuation
'('           Punctuation
'null'        Name.Function
' '           Text
'frame-or-window' Name.Variable
')'           Punctuation
'\n      '    Text
"'"           Operator
'('           Punctuation
'0'           Literal.Number.Integer
' '           Text
'.'           Operator
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n     '     Text
'('           Punctuation
'('           Punctuation
'eq'          Name.Function
' '           Text
'area'        Name.Variable
' '           Text
"'vertical-scroll-bar" Literal.String.Symbol
')'           Punctuation
'\n      '    Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'0'           Literal.Number.Integer
' '           Text
'('           Punctuation
'scroll-bar-scale' Name.Variable
' '           Text
'pair'        Name.Variable
' '           Text
'('           Punctuation
'1-'          Name.Function
' '           Text
'('           Punctuation
'window-height' Name.Variable
' '           Text
'window'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n     '     Text
'('           Punctuation
'('           Punctuation
'eq'          Name.Function
' '           Text
'area'        Name.Variable
' '           Text
"'horizontal-scroll-bar" Literal.String.Symbol
')'           Punctuation
'\n      '    Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'('           Punctuation
'scroll-bar-scale' Name.Variable
' '           Text
'pair'        Name.Variable
' '           Text
'('           Punctuation
'window-width' Name.Variable
' '           Text
'window'      Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n     '     Text
'('           Punctuation
't'           Name.Constant
'\n      '    Text
';; FIXME: This should take line-spacing properties on' Comment.Single
'\n      '    Text
';; newlines into account.' Comment.Single
'\n      '    Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'spacing'     Name.Variable
' '           Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'display-graphic-p' Name.Variable
' '           Text
'frame'       Name.Variable
')'           Punctuation
'\n                        ' Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'with-current-buffer' Name.Builtin
'\n                                ' Text
'('           Punctuation
'window-buffer' Name.Function
' '           Text
'('           Punctuation
'frame-selected-window' Name.Function
' '           Text
'frame'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n                              ' Text
'line-spacing' Name.Variable
')'           Punctuation
'\n                            ' Text
'('           Punctuation
'frame-parameter' Name.Function
' '           Text
'frame'       Name.Variable
' '           Text
"'line-spacing" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'cond'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'floatp'      Name.Function
' '           Text
'spacing'     Name.Variable
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'spacing'     Name.Variable
' '           Text
'('           Punctuation
'truncate'    Name.Function
' '           Text
'('           Punctuation
'*'           Name.Function
' '           Text
'spacing'     Name.Variable
'\n\t\t\t\t\t  ' Text
'('           Punctuation
'frame-char-height' Name.Function
' '           Text
'frame'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'('           Punctuation
'null'        Name.Function
' '           Text
'spacing'     Name.Variable
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'spacing'     Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'('           Punctuation
'/'           Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'pair'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'frame-char-width' Name.Function
' '           Text
'frame'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'/'           Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'pair'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'+'           Name.Function
' '           Text
'('           Punctuation
'frame-char-height' Name.Function
' '           Text
'frame'       Name.Variable
')'           Punctuation
' '           Text
'spacing'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'posn-actual-col-row' Name.Variable
' '           Text
'('           Punctuation
'position'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the window row number in POSITION and character number in that row.\n\nReturn nil if POSITION does not contain the actual position; in that case\n' Literal.String

'\\`'         Literal.String
"posn-col-row' can be used to get approximate values.\nPOSITION should be a list of the form returned by the " Literal.String
"`event-start'" Literal.String.Symbol
'\nand '      Literal.String
"`event-end'" Literal.String.Symbol
' functions.\n\nThis function does not account for the width on display, like the\nnumber of visual columns taken by a TAB or image.  If you need\nthe coordinates of POSITION in character units, you should use\n' Literal.String

'\\`'         Literal.String
"posn-col-row', not this function." Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'6'           Literal.Number.Integer
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'posn-timestamp' Name.Variable
' '           Text
'('           Punctuation
'position'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the timestamp of POSITION.\nPOSITION should be a list of the form returned by the ' Literal.String
"`event-start'" Literal.String.Symbol
'\nand '      Literal.String
"`event-end'" Literal.String.Symbol
' functions.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'3'           Literal.Number.Integer
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'posn-string' Name.Variable
' '           Text
'('           Punctuation
'position'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the string object of POSITION.\nValue is a cons (STRING . STRING-POS), or nil if not a string.\nPOSITION should be a list of the form returned by the ' Literal.String
"`event-start'" Literal.String.Symbol
'\nand '      Literal.String
"`event-end'" Literal.String.Symbol
' functions.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'x'           Name.Variable
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'4'           Literal.Number.Integer
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
";; Apparently this can also be `handle' or `below-handle' (bug#13979)." Comment.Single
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'x'           Name.Variable
')'           Punctuation
' '           Text
'x'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'posn-image'  Name.Variable
' '           Text
'('           Punctuation
'position'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the image object of POSITION.\nValue is a list (image ...), or nil if not an image.\nPOSITION should be a list of the form returned by the ' Literal.String
"`event-start'" Literal.String.Symbol
'\nand '      Literal.String
"`event-end'" Literal.String.Symbol
' functions.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'7'           Literal.Number.Integer
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'posn-object' Name.Variable
' '           Text
'('           Punctuation
'position'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the object (image or string) of POSITION.\nValue is a list (image ...) for an image object, a cons cell\n' Literal.String

'\\('         Literal.String
'STRING . STRING-POS) for a string object, and nil for a buffer position.\nPOSITION should be a list of the form returned by the ' Literal.String
"`event-start'" Literal.String.Symbol
'\nand '      Literal.String
"`event-end'" Literal.String.Symbol
' functions.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'posn-image'  Name.Variable
' '           Text
'position'    Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'posn-string' Name.Variable
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'posn-object-x-y' Name.Variable
' '           Text
'('           Punctuation
'position'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the x and y coordinates relative to the object of POSITION.\nThe return value has the form (DX . DY), where DX and DY are\ngiven in pixels.  POSITION should be a list of the form returned\nby ' Literal.String
"`event-start'" Literal.String.Symbol
' and '       Literal.String
"`event-end'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'8'           Literal.Number.Integer
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'posn-object-width-height' Name.Variable
' '           Text
'('           Punctuation
'position'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the pixel width and height of the object of POSITION.\nThe return value has the form (WIDTH . HEIGHT).  POSITION should\nbe a list of the form returned by ' Literal.String
"`event-start'" Literal.String.Symbol
' and '       Literal.String
"`event-end'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'9'           Literal.Number.Integer
' '           Text
'position'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n\x0c\n'  Text

';;;; Obsolescent names for functions.' Comment.Single
'\n\n'        Text

'('           Punctuation
'define-obsolete-function-alias' Name.Builtin
' '           Text
"'window-dot" Literal.String.Symbol
' '           Text
"'window-point" Literal.String.Symbol
' '           Text
'"'           Literal.String
'22.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'define-obsolete-function-alias' Name.Builtin
' '           Text
"'set-window-dot" Literal.String.Symbol
' '           Text
"'set-window-point" Literal.String.Symbol
' '           Text
'"'           Literal.String
'22.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'define-obsolete-function-alias' Name.Builtin
' '           Text
"'read-input" Literal.String.Symbol
' '           Text
"'read-string" Literal.String.Symbol
' '           Text
'"'           Literal.String
'22.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'define-obsolete-function-alias' Name.Builtin
' '           Text
"'show-buffer" Literal.String.Symbol
' '           Text
"'set-window-buffer" Literal.String.Symbol
' '           Text
'"'           Literal.String
'22.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'define-obsolete-function-alias' Name.Builtin
' '           Text
"'eval-current-buffer" Literal.String.Symbol
' '           Text
"'eval-buffer" Literal.String.Symbol
' '           Text
'"'           Literal.String
'22.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'define-obsolete-function-alias' Name.Builtin
' '           Text
"'string-to-int" Literal.String.Symbol
' '           Text
"'string-to-number" Literal.String.Symbol
' '           Text
'"'           Literal.String
'22.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'make-obsolete' Name.Variable
' '           Text
"'forward-point" Literal.String.Symbol
' '           Text
'"'           Literal.String
'use (+ (point) N) instead.' Literal.String
'"'           Literal.String
' '           Text
'"'           Literal.String
'23.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete' Name.Variable
' '           Text
"'buffer-has-markers-at" Literal.String.Symbol
' '           Text
'nil'         Name.Constant
' '           Text
'"'           Literal.String
'24.3'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'insert-string' Name.Variable
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'args'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Mocklisp-compatibility insert function.\nLike the function ' Literal.String
"`insert'"    Literal.String.Symbol
' except that any argument that is a number\nis converted into a string by expressing it in decimal.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'obsolete'    Name.Variable
' '           Text
'insert'      Name.Function
' '           Text
'"'           Literal.String
'22.1'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'dolist'      Name.Builtin
' '           Text
'('           Punctuation
'el'          Name.Variable
' '           Text
'args'        Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'insert'      Name.Function
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'integerp'    Name.Function
' '           Text
'el'          Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'number-to-string' Name.Function
' '           Text
'el'          Name.Variable
')'           Punctuation
' '           Text
'el'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'makehash'    Name.Variable
' '           Text
'('           Punctuation
'&optional'   Keyword.Pseudo
' '           Text
'test'        Name.Variable
')'           Punctuation
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'obsolete'    Name.Variable
' '           Text
'make-hash-table' Name.Function
' '           Text
'"'           Literal.String
'22.1'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'make-hash-table' Name.Function
' '           Text
':test'       Name.Builtin
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'test'        Name.Variable
' '           Text
"'eql"        Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'log10'       Name.Variable
' '           Text
'('           Punctuation
'x'           Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return (log X 10), the log base 10 of X.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'obsolete'    Name.Variable
' '           Text
'log'         Name.Function
' '           Text
'"'           Literal.String
'24.4'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'log'         Name.Function
' '           Text
'x'           Name.Variable
' '           Text
'10'          Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\n'        Text

';; These are used by VM and some old programs' Comment.Single
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'focus-frame" Literal.String.Symbol
' '           Text
"'ignore"     Literal.String.Symbol
' '           Text
'"'           Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete' Name.Variable
' '           Text
"'focus-frame" Literal.String.Symbol
' '           Text
'"'           Literal.String
'it does nothing.' Literal.String
'"'           Literal.String
' '           Text
'"'           Literal.String
'22.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'unfocus-frame" Literal.String.Symbol
' '           Text
"'ignore"     Literal.String.Symbol
' '           Text
'"'           Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete' Name.Variable
' '           Text
"'unfocus-frame" Literal.String.Symbol
' '           Text
'"'           Literal.String
'it does nothing.' Literal.String
'"'           Literal.String
' '           Text
'"'           Literal.String
'22.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete' Name.Variable
' '           Text
"'make-variable-frame-local" Literal.String.Symbol
'\n\t       ' Text
'"'           Literal.String
'explicitly check for a frame-parameter instead.' Literal.String
'"'           Literal.String
' '           Text
'"'           Literal.String
'22.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'set-advertised-calling-convention' Name.Variable
'\n '         Text
"'all-completions" Literal.String.Symbol
' '           Text
"'"           Operator
'('           Punctuation
'string'      Name.Function
' '           Text
'collection'  Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'predicate'   Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'23.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'set-advertised-calling-convention' Name.Variable
' '           Text
"'unintern"   Literal.String.Symbol
' '           Text
"'"           Operator
'('           Punctuation
'name'        Name.Variable
' '           Text
'obarray'     Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'23.3'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'set-advertised-calling-convention' Name.Variable
' '           Text
"'indirect-function" Literal.String.Symbol
' '           Text
"'"           Operator
'('           Punctuation
'object'      Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'25.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'set-advertised-calling-convention' Name.Variable
' '           Text
"'redirect-frame-focus" Literal.String.Symbol
' '           Text
"'"           Operator
'('           Punctuation
'frame'       Name.Variable
' '           Text
'focus-frame' Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'24.3'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'set-advertised-calling-convention' Name.Variable
' '           Text
"'decode-char" Literal.String.Symbol
' '           Text
"'"           Operator
'('           Punctuation
'ch'          Name.Variable
' '           Text
'charset'     Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'21.4'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'set-advertised-calling-convention' Name.Variable
' '           Text
"'encode-char" Literal.String.Symbol
' '           Text
"'"           Operator
'('           Punctuation
'ch'          Name.Variable
' '           Text
'charset'     Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'21.4'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n\x0c\n'    Text

';;;; Obsolescence declarations for variables, and aliases.' Comment.Single
'\n\n'        Text

';; Special "default-FOO" variables which contain the default value of' Comment.Single
'\n'          Text

';; the "FOO" variable are nasty.  Their implementation is brittle, and' Comment.Single
'\n'          Text

';; slows down several unrelated variable operations; furthermore, they' Comment.Single
'\n'          Text

';; can lead to really odd behavior if you decide to make them' Comment.Single
'\n'          Text

';; buffer-local.' Comment.Single
'\n\n'        Text

';; Not used at all in Emacs, last time I checked:' Comment.Single
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-mode-line-format" Literal.String.Symbol
' '           Text
"'mode-line-format" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-header-line-format" Literal.String.Symbol
' '           Text
"'header-line-format" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-line-spacing" Literal.String.Symbol
' '           Text
"'line-spacing" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-abbrev-mode" Literal.String.Symbol
' '           Text
"'abbrev-mode" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-ctl-arrow" Literal.String.Symbol
' '           Text
"'ctl-arrow"  Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-truncate-lines" Literal.String.Symbol
' '           Text
"'truncate-lines" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-left-margin" Literal.String.Symbol
' '           Text
"'left-margin" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-tab-width" Literal.String.Symbol
' '           Text
"'tab-width"  Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-case-fold-search" Literal.String.Symbol
' '           Text
"'case-fold-search" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-left-margin-width" Literal.String.Symbol
' '           Text
"'left-margin-width" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-right-margin-width" Literal.String.Symbol
' '           Text
"'right-margin-width" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-left-fringe-width" Literal.String.Symbol
' '           Text
"'left-fringe-width" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-right-fringe-width" Literal.String.Symbol
' '           Text
"'right-fringe-width" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-fringes-outside-margins" Literal.String.Symbol
' '           Text
"'fringes-outside-margins" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-scroll-bar-width" Literal.String.Symbol
' '           Text
"'scroll-bar-width" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-vertical-scroll-bar" Literal.String.Symbol
' '           Text
"'vertical-scroll-bar" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-indicate-empty-lines" Literal.String.Symbol
' '           Text
"'indicate-empty-lines" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-indicate-buffer-boundaries" Literal.String.Symbol
' '           Text
"'indicate-buffer-boundaries" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-fringe-indicator-alist" Literal.String.Symbol
' '           Text
"'fringe-indicator-alist" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-fringe-cursor-alist" Literal.String.Symbol
' '           Text
"'fringe-cursor-alist" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-scroll-up-aggressively" Literal.String.Symbol
' '           Text
"'scroll-up-aggressively" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-scroll-down-aggressively" Literal.String.Symbol
' '           Text
"'scroll-down-aggressively" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-fill-column" Literal.String.Symbol
' '           Text
"'fill-column" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-cursor-type" Literal.String.Symbol
' '           Text
"'cursor-type" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-cursor-in-non-selected-windows" Literal.String.Symbol
' '           Text
"'cursor-in-non-selected-windows" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-buffer-file-coding-system" Literal.String.Symbol
' '           Text
"'buffer-file-coding-system" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-major-mode" Literal.String.Symbol
' '           Text
"'major-mode" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'default-enable-multibyte-characters" Literal.String.Symbol
'\n      '    Text
'"'           Literal.String
'use enable-multibyte-characters or set-buffer-multibyte instead' Literal.String
'"'           Literal.String
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'define-key-rebound-commands" Literal.String.Symbol
' '           Text
'nil'         Name.Constant
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'redisplay-end-trigger-functions" Literal.String.Symbol
' '           Text
"'jit-lock-register" Literal.String.Symbol
' '           Text
'"'           Literal.String
'23.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'deferred-action-list" Literal.String.Symbol
' '           Text
"'post-command-hook" Literal.String.Symbol
' '           Text
'"'           Literal.String
'24.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'deferred-action-function" Literal.String.Symbol
' '           Text
"'post-command-hook" Literal.String.Symbol
' '           Text
'"'           Literal.String
'24.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'redisplay-dont-pause" Literal.String.Symbol
' '           Text
'nil'         Name.Constant
' '           Text
'"'           Literal.String
'24.5'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete' Name.Variable
' '           Text
"'window-redisplay-end-trigger" Literal.String.Symbol
' '           Text
'nil'         Name.Constant
' '           Text
'"'           Literal.String
'23.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete' Name.Variable
' '           Text
"'set-window-redisplay-end-trigger" Literal.String.Symbol
' '           Text
'nil'         Name.Constant
' '           Text
'"'           Literal.String
'23.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'make-obsolete' Name.Variable
' '           Text
"'process-filter-multibyte-p" Literal.String.Symbol
' '           Text
'nil'         Name.Constant
' '           Text
'"'           Literal.String
'23.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-obsolete' Name.Variable
' '           Text
"'set-process-filter-multibyte" Literal.String.Symbol
' '           Text
'nil'         Name.Constant
' '           Text
'"'           Literal.String
'23.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

';; Lisp manual only updated in 22.1.' Comment.Single
'\n'          Text

'('           Punctuation
'define-obsolete-variable-alias' Name.Builtin
' '           Text
"'executing-macro" Literal.String.Symbol
' '           Text
"'executing-kbd-macro" Literal.String.Symbol
'\n  '        Text
'"'           Literal.String
'before 19.34' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'define-obsolete-variable-alias' Name.Builtin
' '           Text
"'x-lost-selection-hooks" Literal.String.Symbol
'\n  '        Text
"'x-lost-selection-functions" Literal.String.Symbol
' '           Text
'"'           Literal.String
'22.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'define-obsolete-variable-alias' Name.Builtin
' '           Text
"'x-sent-selection-hooks" Literal.String.Symbol
'\n  '        Text
"'x-sent-selection-functions" Literal.String.Symbol
' '           Text
'"'           Literal.String
'22.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

';; This was introduced in 21.4 for pre-unicode unification.  That' Comment.Single
'\n'          Text

';; usage was rendered obsolete in 23.1 which uses Unicode internally.' Comment.Single
'\n'          Text

';; Other uses are possible, so this variable is not _really_ obsolete,' Comment.Single
'\n'          Text

';; but Stefan insists to mark it so.' Comment.Single
'\n'          Text

'('           Punctuation
'make-obsolete-variable' Name.Variable
' '           Text
"'translation-table-for-input" Literal.String.Symbol
' '           Text
'nil'         Name.Constant
' '           Text
'"'           Literal.String
'23.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defvaralias' Name.Builtin
' '           Text
"'messages-buffer-max-lines" Literal.String.Symbol
' '           Text
"'message-log-max" Literal.String.Symbol
')'           Punctuation
'\n\x0c\n'    Text

';;;; Alternate names for functions - these are not being phased out.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'send-string" Literal.String.Symbol
' '           Text
"'process-send-string" Literal.String.Symbol
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'send-region" Literal.String.Symbol
' '           Text
"'process-send-region" Literal.String.Symbol
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'string="    Literal.String.Symbol
' '           Text
"'string-equal" Literal.String.Symbol
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'string<"    Literal.String.Symbol
' '           Text
"'string-lessp" Literal.String.Symbol
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'move-marker" Literal.String.Symbol
' '           Text
"'set-marker" Literal.String.Symbol
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'rplaca"     Literal.String.Symbol
' '           Text
"'setcar"     Literal.String.Symbol
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'rplacd"     Literal.String.Symbol
' '           Text
"'setcdr"     Literal.String.Symbol
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'beep"       Literal.String.Symbol
' '           Text
"'ding"       Literal.String.Symbol
')'           Punctuation
' '           Text
';preserve lingual purity' Comment.Single
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'indent-to-column" Literal.String.Symbol
' '           Text
"'indent-to"  Literal.String.Symbol
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'backward-delete-char" Literal.String.Symbol
' '           Text
"'delete-backward-char" Literal.String.Symbol
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'search-forward-regexp" Literal.String.Symbol
' '           Text
'('           Punctuation
'symbol-function' Name.Function
' '           Text
"'re-search-forward" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'search-backward-regexp" Literal.String.Symbol
' '           Text
'('           Punctuation
'symbol-function' Name.Function
' '           Text
"'re-search-backward" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'int-to-string" Literal.String.Symbol
' '           Text
"'number-to-string" Literal.String.Symbol
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'store-match-data" Literal.String.Symbol
' '           Text
"'set-match-data" Literal.String.Symbol
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'chmod"      Literal.String.Symbol
' '           Text
"'set-file-modes" Literal.String.Symbol
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'mkdir"      Literal.String.Symbol
' '           Text
"'make-directory" Literal.String.Symbol
')'           Punctuation
'\n'          Text

';; These are the XEmacs names:' Comment.Single
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'point-at-eol" Literal.String.Symbol
' '           Text
"'line-end-position" Literal.String.Symbol
')'           Punctuation
'\n'          Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'point-at-bol" Literal.String.Symbol
' '           Text
"'line-beginning-position" Literal.String.Symbol
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defalias'    Name.Builtin
' '           Text
"'user-original-login-name" Literal.String.Symbol
' '           Text
"'user-login-name" Literal.String.Symbol
')'           Punctuation
'\n\n\x0c\n'  Text

';;;; Hook manipulation functions.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'add-hook'    Name.Variable
' '           Text
'('           Punctuation
'hook'        Name.Variable
' '           Text
'function'    Keyword
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'append'      Name.Function
' '           Text
'local'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Add to the value of HOOK the function FUNCTION.\nFUNCTION is not added if already present.\nFUNCTION is added (if necessary) at the beginning of the hook list\nunless the optional argument APPEND is non-nil, in which case\nFUNCTION is added at the end.\n\nThe optional fourth argument, LOCAL, if non-nil, says to modify\nthe hook's buffer-local value rather than its global value.\nThis makes the hook buffer-local, and it makes t a member of the\nbuffer-local value.  That acts as a flag to run the hook\nfunctions of the global value as well as in the local value.\n\nHOOK should be a symbol, and FUNCTION may be any valid function.  If\nHOOK is void, it is first set to nil.  If HOOK's value is a single\nfunction, it is changed to a list of functions." Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'boundp'      Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'set'         Name.Function
' '           Text
'hook'        Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'default-boundp' Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'set-default' Name.Function
' '           Text
'hook'        Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'local'       Name.Variable
' '           Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'local-variable-if-set-p' Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'set'         Name.Function
' '           Text
'('           Punctuation
'make-local-variable' Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
';; Detect the case where make-local-variable was used on a hook' Comment.Single
'\n    '      Text
';; and do what we used to do.' Comment.Single
'\n    '      Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'memq'        Name.Function
' '           Text
't'           Name.Constant
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'local'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'hook-value'  Name.Variable
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'local'       Name.Variable
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'default-value' Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
';; If the hook value is a single function, turn it into a list.' Comment.Single
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'listp'       Name.Function
' '           Text
'hook-value'  Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'functionp'   Name.Function
' '           Text
'hook-value'  Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'hook-value'  Name.Variable
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'hook-value'  Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
';; Do the actual addition if necessary' Comment.Single
'\n    '      Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'member'      Name.Function
' '           Text
'function'    Keyword
' '           Text
'hook-value'  Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'function'    Keyword
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'function'    Keyword
' '           Text
'('           Punctuation
'purecopy'    Name.Function
' '           Text
'function'    Keyword
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'hook-value'  Name.Variable
'\n\t    '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'append'      Name.Function
'\n\t\t'      Text
'('           Punctuation
'append'      Name.Function
' '           Text
'hook-value'  Name.Variable
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'function'    Keyword
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'function'    Keyword
' '           Text
'hook-value'  Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
';; Set the actual variable' Comment.Single
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'local'       Name.Variable
'\n\t'        Text
'('           Punctuation
'progn'       Keyword
'\n\t  '      Text
";; If HOOK isn't a permanent local," Comment.Single
'\n\t  '      Text
';; but FUNCTION wants to survive a change of modes,' Comment.Single
'\n\t  '      Text
';; mark HOOK as partially permanent.' Comment.Single
'\n\t  '      Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'symbolp'     Name.Function
' '           Text
'function'    Keyword
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'get'         Name.Function
' '           Text
'function'    Keyword
' '           Text
"'permanent-local-hook" Literal.String.Symbol
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'get'         Name.Function
' '           Text
'hook'        Name.Variable
' '           Text
"'permanent-local" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'put'         Name.Function
' '           Text
'hook'        Name.Variable
' '           Text
"'permanent-local" Literal.String.Symbol
' '           Text
"'permanent-local-hook" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'set'         Name.Function
' '           Text
'hook'        Name.Variable
' '           Text
'hook-value'  Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'set-default' Name.Function
' '           Text
'hook'        Name.Variable
' '           Text
'hook-value'  Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'remove-hook' Name.Variable
' '           Text
'('           Punctuation
'hook'        Name.Variable
' '           Text
'function'    Keyword
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'local'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Remove from the value of HOOK the function FUNCTION.\nHOOK should be a symbol, and FUNCTION may be any valid function.  If\nFUNCTION isn't the value of HOOK, or, if FUNCTION doesn't appear in the\nlist of hooks to run in HOOK, then nothing is done.  See " Literal.String
"`add-hook'"  Literal.String.Symbol
".\n\nThe optional third argument, LOCAL, if non-nil, says to modify\nthe hook's buffer-local value rather than its default value." Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'boundp'      Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'set'         Name.Function
' '           Text
'hook'        Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'default-boundp' Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'set-default' Name.Function
' '           Text
'hook'        Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
';; Do nothing if LOCAL is t but this hook has no local binding.' Comment.Single
'\n  '        Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'local'       Name.Variable
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'local-variable-p' Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
';; Detect the case where make-local-variable was used on a hook' Comment.Single
'\n    '      Text
';; and do what we used to do.' Comment.Single
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'local-variable-p' Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t\t '   Text
'('           Punctuation
'memq'        Name.Function
' '           Text
't'           Name.Constant
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'local'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'hook-value'  Name.Variable
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'local'       Name.Variable
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'default-value' Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
';; Remove the function, for both the list and the non-list cases.' Comment.Single
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'listp'       Name.Function
' '           Text
'hook-value'  Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'hook-value'  Name.Variable
')'           Punctuation
' '           Text
"'lambda"     Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'equal'       Name.Function
' '           Text
'hook-value'  Name.Variable
' '           Text
'function'    Keyword
')'           Punctuation
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'hook-value'  Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'hook-value'  Name.Variable
' '           Text
'('           Punctuation
'delete'      Name.Function
' '           Text
'function'    Keyword
' '           Text
'('           Punctuation
'copy-sequence' Name.Function
' '           Text
'hook-value'  Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
';; If the function is on the global hook, we need to shadow it locally' Comment.Single
'\n      '    Text
';;(when (and local (member function (default-value hook))' Comment.Single
'\n      '    Text
";;\t       (not (member (cons 'not function) hook-value)))" Comment.Single
'\n      '    Text
";;  (push (cons 'not function) hook-value))" Comment.Single
'\n      '    Text
';; Set the actual variable' Comment.Single
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'local'       Name.Variable
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'set-default' Name.Function
' '           Text
'hook'        Name.Variable
' '           Text
'hook-value'  Name.Variable
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'equal'       Name.Function
' '           Text
'hook-value'  Name.Variable
' '           Text
"'"           Operator
'('           Punctuation
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'kill-local-variable' Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'set'         Name.Function
' '           Text
'hook'        Name.Variable
' '           Text
'hook-value'  Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'letrec'      Name.Builtin
' '           Text
'('           Punctuation
'binders'     Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Bind variables according to BINDERS then eval BODY.\nThe value of the last form in BODY is returned.\nEach element of BINDERS is a list (SYMBOL VALUEFORM) which binds\nSYMBOL to the value of VALUEFORM.\nAll symbols are bound before the VALUEFORMs are evalled.' Literal.String
'"'           Literal.String
'\n  '        Text
';; Only useful in lexical-binding mode.' Comment.Single
'\n  '        Text
';; As a special-form, we could implement it more efficiently (and cleanly,' Comment.Single
'\n  '        Text
';; making the vars actually unbound during evaluation of the binders).' Comment.Single
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
'let'         Keyword
')'           Punctuation
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n  '        Text
'`'           Operator
'('           Punctuation
'let'         Keyword
' '           Text
','           Operator
'('           Punctuation
'mapcar'      Name.Function
' '           Text
"#'"          Name.Function
'car'         Name.Function
' '           Text
'binders'     Name.Variable
')'           Punctuation
'\n     '     Text
',@'          Operator
'('           Punctuation
'mapcar'      Name.Function
' '           Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'binder'      Name.Variable
')'           Punctuation
' '           Text
'`'           Operator
'('           Punctuation
'setq'        Keyword
' '           Text
',@'          Operator
'binder'      Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'binders'     Name.Variable
')'           Punctuation
'\n     '     Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'with-wrapper-hook' Name.Builtin
' '           Text
'('           Punctuation
'hook'        Name.Variable
' '           Text
'args'        Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Run BODY, using wrapper functions from HOOK with additional ARGS.\nHOOK is an abnormal hook.  Each hook function in HOOK ' Literal.String
'\\"'         Literal.String
'wraps'       Literal.String
'\\"'         Literal.String
'\naround the preceding ones, like a set of nested ' Literal.String
"`around'"    Literal.String.Symbol
' advices.\n\nEach hook function should accept an argument list consisting of a\nfunction FUN, followed by the additional arguments in ARGS.\n\nThe first hook function in HOOK is passed a FUN that, if it is called\nwith arguments ARGS, performs BODY (i.e., the default operation).\nThe FUN passed to each successive hook function is defined based\non the preceding hook functions; if called with arguments ARGS,\nit does what the ' Literal.String
"`with-wrapper-hook'" Literal.String.Symbol
' call would do if the\npreceding hook functions were the only ones present in HOOK.\n\nEach hook function may call its FUN argument as many times as it wishes,\nincluding never.  In that case, such a hook function acts to replace\nthe default definition altogether, and any preceding hook functions.\nOf course, a subsequent hook function may do the same thing.\n\nEach hook function definition is used to construct the FUN passed\nto the next hook function, if any.  The last (or ' Literal.String
'\\"'         Literal.String
'outermost'   Literal.String
'\\"'         Literal.String
')\nFUN is then called once.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
'('           Punctuation
'form'        Name.Variable
' '           Text
'sexp'        Name.Variable
' '           Text
'body'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n           ' Text
'('           Punctuation
'obsolete'    Name.Variable
' '           Text
'"'           Literal.String
'use a <foo>-function variable modified by ' Literal.String
"`add-function'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n                     ' Text
'"'           Literal.String
'24.4'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
";; We need those two gensyms because CL's lexical scoping is not available" Comment.Single
'\n  '        Text
';; for function arguments :-(' Comment.Single
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'funs'        Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'funs'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'global'      Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'global'      Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'argssym'     Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'args'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'runrestofhook' Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'runrestofhook' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
';; Since the hook is a wrapper, the loop has to be done via' Comment.Single
'\n    '      Text
';; recursion: a given hook function will call its parameter in order to' Comment.Single
'\n    '      Text
';; continue looping.' Comment.Single
'\n    '      Text
'`'           Operator
'('           Punctuation
'letrec'      Name.Builtin
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'runrestofhook' Name.Variable
'\n               ' Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
','           Operator
'funs'        Name.Variable
' '           Text
','           Operator
'global'      Name.Variable
' '           Text
','           Operator
'argssym'     Name.Variable
')'           Punctuation
'\n                 ' Text
";; `funs' holds the functions left on the hook and `global'" Comment.Single
'\n                 ' Text
';; holds the functions left on the global part of the hook' Comment.Single
'\n                 ' Text
';; (in case the hook is local).' Comment.Single
'\n                 ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
','           Operator
'funs'        Name.Variable
')'           Punctuation
'\n                     ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
't'           Name.Constant
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
','           Operator
'funs'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n                         ' Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
','           Operator
'runrestofhook' Name.Variable
'\n                                  ' Text
'('           Punctuation
'append'      Name.Function
' '           Text
','           Operator
'global'      Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
','           Operator
'funs'        Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'nil'         Name.Constant
' '           Text
','           Operator
'argssym'     Name.Variable
')'           Punctuation
'\n                       ' Text
'('           Punctuation
'apply'       Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
','           Operator
'funs'        Name.Variable
')'           Punctuation
'\n                              ' Text
'('           Punctuation
'apply-partially' Name.Variable
'\n                               ' Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
','           Operator
'funs'        Name.Variable
' '           Text
','           Operator
'global'      Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
','           Operator
'argssym'     Name.Variable
')'           Punctuation
'\n                                 ' Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
','           Operator
'runrestofhook' Name.Variable
' '           Text
','           Operator
'funs'        Name.Variable
' '           Text
','           Operator
'global'      Name.Variable
' '           Text
','           Operator
'argssym'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n                               ' Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
','           Operator
'funs'        Name.Variable
')'           Punctuation
' '           Text
','           Operator
'global'      Name.Variable
')'           Punctuation
'\n                              ' Text
','           Operator
'argssym'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n                   ' Text
';; Once there are no more functions on the hook, run' Comment.Single
'\n                   ' Text
';; the original body.' Comment.Single
'\n                   ' Text
'('           Punctuation
'apply'       Name.Function
' '           Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
','           Operator
'args'        Name.Variable
' '           Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
' '           Text
','           Operator
'argssym'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
','           Operator
'runrestofhook' Name.Variable
' '           Text
','           Operator
'hook'        Name.Variable
'\n                ' Text
';; The global part of the hook, if any.' Comment.Single
'\n                ' Text
','           Operator
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'symbolp'     Name.Function
' '           Text
'hook'        Name.Variable
')'           Punctuation
'\n                     ' Text
'`'           Operator
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'local-variable-p' Name.Function
' '           Text
"',hook"      Literal.String.Symbol
')'           Punctuation
'\n                          ' Text
'('           Punctuation
'default-value' Name.Function
' '           Text
"',hook"      Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text
'('           Punctuation
'list'        Name.Function
' '           Text
',@'          Operator
'args'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'add-to-list' Name.Variable
' '           Text
'('           Punctuation
'list-var'    Name.Variable
' '           Text
'element'     Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'append'      Name.Function
' '           Text
'compare-fn'  Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Add ELEMENT to the value of LIST-VAR if it isn't there yet.\nThe test for presence of ELEMENT is done with " Literal.String
"`equal'"     Literal.String.Symbol
", or with\nCOMPARE-FN if that's non-nil.\nIf ELEMENT is added, it is added at the beginning of the list,\nunless the optional argument APPEND is non-nil, in which case\nELEMENT is added at the end.\n\nThe return value is the new value of LIST-VAR.\n\nThis is handy to add some elements to configuration variables,\nbut please do not abuse it in Elisp code, where you are usually\nbetter off using " Literal.String
"`push'"      Literal.String.Symbol
' or '        Literal.String
"`cl-pushnew'" Literal.String.Symbol
'.\n\nIf you want to use ' Literal.String
"`add-to-list'" Literal.String.Symbol
' on a variable that is not\ndefined until a certain package is loaded, you should put the\ncall to ' Literal.String
"`add-to-list'" Literal.String.Symbol
' into a hook function that will be run only\nafter loading the package.  ' Literal.String
"`eval-after-load'" Literal.String.Symbol
' provides one way to\ndo this.  In some cases other hooks, such as major mode hooks,\ncan do the job.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
'\n   '       Text
'('           Punctuation
'compiler-macro' Name.Variable
'\n    '      Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'exp'         Name.Function
')'           Punctuation
'\n      '    Text
";; FIXME: Something like this could be used for `set' as well." Comment.Single
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
"'quote"      Literal.String.Symbol
' '           Text
'('           Punctuation
'car-safe'    Name.Function
' '           Text
'list-var'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n              ' Text
'('           Punctuation
'special-variable-p' Name.Function
' '           Text
'('           Punctuation
'cadr'        Name.Variable
' '           Text
'list-var'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n              ' Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'macroexp-const-p' Name.Variable
' '           Text
'append'      Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n          ' Text
'exp'         Name.Function
'\n        '  Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'sym'         Name.Variable
' '           Text
'('           Punctuation
'cadr'        Name.Variable
' '           Text
'list-var'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n               ' Text
'('           Punctuation
'append'      Name.Function
' '           Text
'('           Punctuation
'eval'        Name.Function
' '           Text
'append'      Name.Function
')'           Punctuation
')'           Punctuation
'\n               ' Text
'('           Punctuation
'msg'         Name.Variable
' '           Text
'('           Punctuation
'format'      Name.Function
' '           Text
'"'           Literal.String
"`add-to-list'" Literal.String.Symbol
" can't use lexical var " Literal.String
"`%s'"        Literal.String.Symbol
'; use '      Literal.String
"`push'"      Literal.String.Symbol
' or '        Literal.String
"`cl-pushnew'" Literal.String.Symbol
'"'           Literal.String
'\n                            ' Text
'sym'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n               ' Text
';; Big ugly hack so we only output a warning during' Comment.Single
'\n               ' Text
';; byte-compilation, and so we can use' Comment.Single
'\n               ' Text
';; byte-compile-not-lexical-var-p to silence the warning' Comment.Single
'\n               ' Text
';; when a defvar has been seen but not yet executed.' Comment.Single
'\n               ' Text
'('           Punctuation
'warnfun'     Name.Variable
' '           Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
')'           Punctuation
'\n                          ' Text
';; FIXME: We should also emit a warning for let-bound' Comment.Single
'\n                          ' Text
';; variables with dynamic binding.' Comment.Single
'\n                          ' Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'assq'        Name.Function
' '           Text
'sym'         Name.Variable
' '           Text
'byte-compile--lexical-environment' Name.Variable
')'           Punctuation
'\n                            ' Text
'('           Punctuation
'byte-compile-log-warning' Name.Variable
' '           Text
'msg'         Name.Variable
' '           Text
't'           Name.Constant
' '           Text
':error'      Name.Builtin
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n               ' Text
'('           Punctuation
'code'        Name.Variable
'\n                ' Text
'('           Punctuation
'macroexp-let2' Name.Variable
' '           Text
'macroexp-copyable-p' Name.Variable
' '           Text
'x'           Name.Variable
' '           Text
'element'     Name.Variable
'\n                  ' Text
'`'           Operator
'('           Punctuation
'if'          Keyword
' '           Text
','           Operator
'('           Punctuation
'if'          Keyword
' '           Text
'compare-fn'  Name.Variable
'\n                            ' Text
'('           Punctuation
'progn'       Keyword
'\n                              ' Text
'('           Punctuation
'require'     Name.Builtin
' '           Text
"'cl-lib"     Literal.String.Symbol
')'           Punctuation
'\n                              ' Text
'`'           Operator
'('           Punctuation
'cl-member'   Name.Variable
' '           Text
','           Operator
'x'           Name.Variable
' '           Text
','           Operator
'sym'         Name.Variable
' '           Text
':test'       Name.Builtin
' '           Text
','           Operator
'compare-fn'  Name.Variable
')'           Punctuation
')'           Punctuation
'\n                          ' Text
";; For bootstrapping reasons, don't rely on" Comment.Single
'\n                          ' Text
';; cl--compiler-macro-member for the base case.' Comment.Single
'\n                          ' Text
'`'           Operator
'('           Punctuation
'member'      Name.Function
' '           Text
','           Operator
'x'           Name.Variable
' '           Text
','           Operator
'sym'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n                       ' Text
','           Operator
'sym'         Name.Variable
'\n                     ' Text
','           Operator
'('           Punctuation
'if'          Keyword
' '           Text
'append'      Name.Function
'\n                          ' Text
'`'           Operator
'('           Punctuation
'setq'        Keyword
' '           Text
','           Operator
'sym'         Name.Variable
' '           Text
'('           Punctuation
'append'      Name.Function
' '           Text
','           Operator
'sym'         Name.Variable
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
','           Operator
'x'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                        ' Text
'`'           Operator
'('           Punctuation
'push'        Name.Builtin
' '           Text
','           Operator
'x'           Name.Variable
' '           Text
','           Operator
'sym'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n          ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'macroexp--compiling-p' Name.Variable
')'           Punctuation
')'           Punctuation
'\n              ' Text
'code'        Name.Variable
'\n            ' Text
'`'           Operator
'('           Punctuation
'progn'       Keyword
'\n               ' Text
'('           Punctuation
'macroexp--funcall-if-compiled' Name.Variable
' '           Text
"',warnfun"   Literal.String.Symbol
')'           Punctuation
'\n               ' Text
','           Operator
'code'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'cond'        Keyword
'\n       '   Text
'('           Punctuation
'('           Punctuation
'null'        Name.Function
' '           Text
'compare-fn'  Name.Variable
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'member'      Name.Function
' '           Text
'element'     Name.Variable
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'list-var'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'('           Punctuation
'eq'          Name.Function
' '           Text
'compare-fn'  Name.Variable
' '           Text
"'eq"         Literal.String.Symbol
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'element'     Name.Variable
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'list-var'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'('           Punctuation
'eq'          Name.Function
' '           Text
'compare-fn'  Name.Variable
' '           Text
"'eql"        Literal.String.Symbol
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'memql'       Name.Function
' '           Text
'element'     Name.Variable
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'list-var'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
't'           Name.Constant
'\n\t'        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'lst'         Name.Variable
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'list-var'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'lst'         Name.Variable
'\n\t\t      ' Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'compare-fn'  Name.Variable
' '           Text
'element'     Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'lst'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'lst'         Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'lst'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n          ' Text
'lst'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'list-var'    Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'set'         Name.Function
' '           Text
'list-var'    Name.Variable
'\n\t '       Text
'('           Punctuation
'if'          Keyword
' '           Text
'append'      Name.Function
'\n\t     '   Text
'('           Punctuation
'append'      Name.Function
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'list-var'    Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'element'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'element'     Name.Variable
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'list-var'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\n'      Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'add-to-ordered-list' Name.Variable
' '           Text
'('           Punctuation
'list-var'    Name.Variable
' '           Text
'element'     Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'order'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Add ELEMENT to the value of LIST-VAR if it isn't there yet.\nThe test for presence of ELEMENT is done with " Literal.String
"`eq'"        Literal.String.Symbol
".\n\nThe resulting list is reordered so that the elements are in the\norder given by each element's numeric list order.  Elements\nwithout a numeric list order are placed at the end of the list.\n\nIf the third optional argument ORDER is a number (integer or\nfloat), set the element's list order to the given value.  If\nORDER is nil or omitted, do not change the numeric order of\nELEMENT.  If ORDER has any other value, remove the numeric order\nof ELEMENT if it has one.\n\nThe list order for each element is stored in LIST-VAR's\n" Literal.String

"`list-order'" Literal.String.Symbol
' property.\n\nThe return value is the new value of LIST-VAR.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'ordering'    Name.Variable
' '           Text
'('           Punctuation
'get'         Name.Function
' '           Text
'list-var'    Name.Variable
' '           Text
"'list-order" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'ordering'    Name.Variable
'\n      '    Text
'('           Punctuation
'put'         Name.Function
' '           Text
'list-var'    Name.Variable
' '           Text
"'list-order" Literal.String.Symbol
'\n           ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'ordering'    Name.Variable
' '           Text
'('           Punctuation
'make-hash-table' Name.Function
' '           Text
':weakness'   Name.Builtin
' '           Text
"'key"        Literal.String.Symbol
' '           Text
':test'       Name.Builtin
' '           Text
"'eq"         Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'order'       Name.Variable
'\n      '    Text
'('           Punctuation
'puthash'     Name.Function
' '           Text
'element'     Name.Variable
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'numberp'     Name.Function
' '           Text
'order'       Name.Variable
')'           Punctuation
' '           Text
'order'       Name.Variable
')'           Punctuation
' '           Text
'ordering'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'element'     Name.Variable
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'list-var'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'set'         Name.Function
' '           Text
'list-var'    Name.Variable
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'element'     Name.Variable
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'list-var'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'set'         Name.Function
' '           Text
'list-var'    Name.Variable
' '           Text
'('           Punctuation
'sort'        Name.Function
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'list-var'    Name.Variable
')'           Punctuation
'\n\t\t\t'    Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'a'           Name.Variable
' '           Text
'b'           Name.Variable
')'           Punctuation
'\n\t\t\t  '  Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'oa'          Name.Variable
' '           Text
'('           Punctuation
'gethash'     Name.Function
' '           Text
'a'           Name.Variable
' '           Text
'ordering'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t\t\t'  Text
'('           Punctuation
'ob'          Name.Variable
' '           Text
'('           Punctuation
'gethash'     Name.Function
' '           Text
'b'           Name.Variable
' '           Text
'ordering'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t\t    ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'oa'          Name.Variable
' '           Text
'ob'          Name.Variable
')'           Punctuation
'\n\t\t\t\t'  Text
'('           Punctuation
'<'           Name.Function
' '           Text
'oa'          Name.Variable
' '           Text
'ob'          Name.Variable
')'           Punctuation
'\n\t\t\t      ' Text
'oa'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'add-to-history' Name.Variable
' '           Text
'('           Punctuation
'history-var' Name.Variable
' '           Text
'newelt'      Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'maxelt'      Name.Variable
' '           Text
'keep-all'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Add NEWELT to the history list stored in the variable HISTORY-VAR.\nReturn the new history list.\nIf MAXELT is non-nil, it specifies the maximum length of the history.\nOtherwise, the maximum history length is the value of the ' Literal.String
"`history-length'" Literal.String.Symbol
'\nproperty on symbol HISTORY-VAR, if set, or the value of the ' Literal.String
"`history-length'" Literal.String.Symbol
'\nvariable.\nRemove duplicates of NEWELT if ' Literal.String
"`history-delete-duplicates'" Literal.String.Symbol
' is non-nil.\nIf optional fourth arg KEEP-ALL is non-nil, add NEWELT to history even\nif it is empty or a duplicate.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'maxelt'      Name.Variable
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'maxelt'      Name.Variable
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'get'         Name.Function
' '           Text
'history-var' Name.Variable
' '           Text
"'history-length" Literal.String.Symbol
')'           Punctuation
'\n\t\t     ' Text
'history-length' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'history'     Name.Variable
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'history-var' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'tail'        Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'listp'       Name.Function
' '           Text
'history'     Name.Variable
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'or'          Keyword
' '           Text
'keep-all'    Name.Variable
'\n\t\t   '   Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'newelt'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t   '   Text
'('           Punctuation
'>'           Name.Function
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'newelt'      Name.Variable
')'           Punctuation
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'or'          Keyword
' '           Text
'keep-all'    Name.Variable
'\n\t\t   '   Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'equal'       Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'history'     Name.Variable
')'           Punctuation
' '           Text
'newelt'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'history-delete-duplicates' Name.Variable
'\n\t  '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'history'     Name.Variable
' '           Text
'('           Punctuation
'delete'      Name.Function
' '           Text
'newelt'      Name.Variable
' '           Text
'history'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'history'     Name.Variable
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'newelt'      Name.Variable
' '           Text
'history'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'integerp'    Name.Function
' '           Text
'maxelt'      Name.Variable
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'='           Name.Function
' '           Text
'0'           Literal.Number.Integer
' '           Text
'maxelt'      Name.Variable
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'history'     Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'nthcdr'      Name.Function
' '           Text
'('           Punctuation
'1-'          Name.Function
' '           Text
'maxelt'      Name.Variable
')'           Punctuation
' '           Text
'history'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'setcdr'      Name.Function
' '           Text
'tail'        Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'set'         Name.Function
' '           Text
'history-var' Name.Variable
' '           Text
'history'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\x0c\n'  Text

';;;; Mode hooks.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'delay-mode-hooks' Name.Builtin
' '           Text
'nil'         Name.Constant
'\n  '        Text
'"'           Literal.String
'If non-nil, ' Literal.String
"`run-mode-hooks'" Literal.String.Symbol
' should delay running the hooks.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'delayed-mode-hooks' Name.Variable
' '           Text
'nil'         Name.Constant
'\n  '        Text
'"'           Literal.String
'List of delayed mode hooks waiting to be run.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'make-variable-buffer-local' Name.Function
' '           Text
"'delayed-mode-hooks" Literal.String.Symbol
')'           Punctuation
'\n'          Text

'('           Punctuation
'put'         Name.Function
' '           Text
"'delay-mode-hooks" Literal.String.Symbol
' '           Text
"'permanent-local" Literal.String.Symbol
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'change-major-mode-after-body-hook' Name.Variable
' '           Text
'nil'         Name.Constant
'\n  '        Text
'"'           Literal.String
'Normal hook run in major mode functions, before the mode hooks.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'after-change-major-mode-hook' Name.Variable
' '           Text
'nil'         Name.Constant
'\n  '        Text
'"'           Literal.String
'Normal hook run at the very end of major mode functions.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'run-mode-hooks' Name.Variable
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'hooks'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Run mode hooks ' Literal.String
"`delayed-mode-hooks'" Literal.String.Symbol
' and HOOKS, or delay HOOKS.\nIf the variable ' Literal.String
"`delay-mode-hooks'" Literal.String.Symbol
' is non-nil, does not run any hooks,\njust adds the HOOKS to the list ' Literal.String
"`delayed-mode-hooks'" Literal.String.Symbol
'.\nOtherwise, runs hooks in the sequence: ' Literal.String
"`change-major-mode-after-body-hook'" Literal.String.Symbol
',\n'         Literal.String

"`delayed-mode-hooks'" Literal.String.Symbol
' (in reverse order), HOOKS, and finally\n' Literal.String

"`after-change-major-mode-hook'" Literal.String.Symbol
'.  Major mode functions should use\nthis instead of ' Literal.String
"`run-hooks'" Literal.String.Symbol
' when running their FOO-mode-hook.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'delay-mode-hooks' Name.Builtin
'\n      '    Text
';; Delaying case.' Comment.Single
'\n      '    Text
'('           Punctuation
'dolist'      Name.Builtin
' '           Text
'('           Punctuation
'hook'        Name.Variable
' '           Text
'hooks'       Name.Variable
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'hook'        Name.Variable
' '           Text
'delayed-mode-hooks' Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
';; Normal case, just run the hook as before plus any delayed hooks.' Comment.Single
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'hooks'       Name.Variable
' '           Text
'('           Punctuation
'nconc'       Name.Function
' '           Text
'('           Punctuation
'nreverse'    Name.Function
' '           Text
'delayed-mode-hooks' Name.Variable
')'           Punctuation
' '           Text
'hooks'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'delayed-mode-hooks' Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n    '      Text
'('           Punctuation
'apply'       Name.Function
' '           Text
"'run-hooks"  Literal.String.Symbol
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
"'change-major-mode-after-body-hook" Literal.String.Symbol
' '           Text
'hooks'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'run-hooks'   Name.Function
' '           Text
"'after-change-major-mode-hook" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'delay-mode-hooks' Name.Builtin
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Execute BODY, but delay any ' Literal.String
"`run-mode-hooks'" Literal.String.Symbol
'.\nThese hooks will be executed by the first following call to\n' Literal.String

"`run-mode-hooks'" Literal.String.Symbol
' that occurs outside any ' Literal.String
"`delayed-mode-hooks'" Literal.String.Symbol
' form.\nOnly affects hooks run in the current buffer.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n  '        Text
'`'           Operator
'('           Punctuation
'progn'       Keyword
'\n     '     Text
'('           Punctuation
'make-local-variable' Name.Function
' '           Text
"'delay-mode-hooks" Literal.String.Symbol
')'           Punctuation
'\n     '     Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'delay-mode-hooks' Name.Builtin
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n       '   Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

';; PUBLIC: find if the current mode derives from another.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'derived-mode-p' Name.Variable
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'modes'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Non-nil if the current major mode is derived from one of MODES.\nUses the ' Literal.String
"`derived-mode-parent'" Literal.String.Symbol
' property of the symbol to trace backwards.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'parent'      Name.Variable
' '           Text
'major-mode'  Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'parent'      Name.Variable
' '           Text
'modes'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'parent'      Name.Variable
' '           Text
'('           Punctuation
'get'         Name.Function
' '           Text
'parent'      Name.Variable
' '           Text
"'derived-mode-parent" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'parent'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n\x0c\n'    Text

';;;; Minor modes.' Comment.Single
'\n\n'        Text

';; If a minor mode is not defined with define-minor-mode,' Comment.Single
'\n'          Text

';; add it here explicitly.' Comment.Single
'\n'          Text

';; isearch-mode is deliberately excluded, since you should' Comment.Single
'\n'          Text

';; not call it yourself.' Comment.Single
'\n'          Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'minor-mode-list' Name.Variable
' '           Text
"'"           Operator
'('           Punctuation
'auto-save-mode' Name.Variable
' '           Text
'auto-fill-mode' Name.Variable
' '           Text
'abbrev-mode' Name.Variable
'\n\t\t\t\t\t ' Text
'overwrite-mode' Name.Variable
' '           Text
'view-mode'   Name.Variable
'\n                                         ' Text
'hs-minor-mode' Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'List of all minor mode functions.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'add-minor-mode' Name.Variable
' '           Text
'('           Punctuation
'toggle'      Name.Variable
' '           Text
'name'        Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'keymap'      Name.Variable
' '           Text
'after'       Name.Variable
' '           Text
'toggle-fun'  Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Register a new minor mode.\n\nThis is an XEmacs-compatibility function.  Use ' Literal.String
"`define-minor-mode'" Literal.String.Symbol
' instead.\n\nTOGGLE is a symbol which is the name of a buffer-local variable that\nis toggled on or off to say whether the minor mode is active or not.\n\nNAME specifies what will appear in the mode line when the minor mode\nis active.  NAME should be either a string starting with a space, or a\nsymbol whose value is such a string.\n\nOptional KEYMAP is the keymap for the minor mode that will be added\nto ' Literal.String
"`minor-mode-map-alist'" Literal.String.Symbol
'.\n\nOptional AFTER specifies that TOGGLE should be added after AFTER\nin ' Literal.String
"`minor-mode-alist'" Literal.String.Symbol
'.\n\nOptional TOGGLE-FUN is an interactive function to toggle the mode.\nIt defaults to (and should by convention be) TOGGLE.\n\nIf TOGGLE has a non-nil ' Literal.String
'`'           Literal.String
":included' property, an entry for the mode is\nincluded in the mode-line minor mode menu.\nIf TOGGLE has a " Literal.String
'`'           Literal.String
":menu-tag', that is used for the menu item's label." Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'toggle'      Name.Variable
' '           Text
'minor-mode-list' Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'toggle'      Name.Variable
' '           Text
'minor-mode-list' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n  '      Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'toggle-fun'  Name.Variable
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'toggle-fun'  Name.Variable
' '           Text
'toggle'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'toggle-fun'  Name.Variable
' '           Text
'toggle'      Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'put'         Name.Function
' '           Text
'toggle'      Name.Variable
' '           Text
':minor-mode-function' Name.Builtin
' '           Text
'toggle-fun'  Name.Variable
')'           Punctuation
')'           Punctuation
'\n  '        Text
';; Add the name to the minor-mode-alist.' Comment.Single
'\n  '        Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'name'        Name.Variable
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'existing'    Name.Variable
' '           Text
'('           Punctuation
'assq'        Name.Function
' '           Text
'toggle'      Name.Variable
' '           Text
'minor-mode-alist' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'existing'    Name.Variable
'\n\t  '      Text
'('           Punctuation
'setcdr'      Name.Function
' '           Text
'existing'    Name.Variable
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'name'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'tail'        Name.Variable
' '           Text
'minor-mode-alist' Name.Variable
')'           Punctuation
' '           Text
'found'       Name.Variable
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'found'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'after'       Name.Variable
' '           Text
'('           Punctuation
'caar'        Name.Variable
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'found'       Name.Variable
' '           Text
'tail'        Name.Variable
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'setq'        Keyword
' '           Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'found'       Name.Variable
'\n\t      '  Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'rest'        Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'found'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'setcdr'      Name.Function
' '           Text
'found'       Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'nconc'       Name.Function
' '           Text
'found'       Name.Variable
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'toggle'      Name.Variable
' '           Text
'name'        Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'rest'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'toggle'      Name.Variable
' '           Text
'name'        Name.Variable
')'           Punctuation
' '           Text
'minor-mode-alist' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
';; Add the toggle to the minor-modes menu if requested.' Comment.Single
'\n  '        Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'get'         Name.Function
' '           Text
'toggle'      Name.Variable
' '           Text
':included'   Name.Builtin
')'           Punctuation
'\n    '      Text
'('           Punctuation
'define-key'  Name.Function
' '           Text
'mode-line-mode-menu' Name.Variable
'\n      '    Text
'('           Punctuation
'vector'      Name.Function
' '           Text
'toggle'      Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'menu-item"  Literal.String.Symbol
'\n\t    '    Text
'('           Punctuation
'concat'      Name.Function
'\n\t     '   Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'get'         Name.Function
' '           Text
'toggle'      Name.Variable
' '           Text
':menu-tag'   Name.Builtin
')'           Punctuation
'\n\t\t '     Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'name'        Name.Variable
')'           Punctuation
' '           Text
'name'        Name.Variable
' '           Text
'('           Punctuation
'symbol-name' Name.Function
' '           Text
'toggle'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t     '   Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'mode-name'   Name.Variable
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'symbolp'     Name.Function
' '           Text
'name'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'name'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'mode-name'   Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'"'           Literal.String
'[^ ]+'       Literal.String
'"'           Literal.String
' '           Text
'mode-name'   Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t   '   Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'"'           Literal.String
' ('          Literal.String
'"'           Literal.String
' '           Text
'('           Punctuation
'match-string' Name.Variable
' '           Text
'0'           Literal.Number.Integer
' '           Text
'mode-name'   Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
')'           Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'toggle-fun'  Name.Variable
'\n\t    '    Text
':button'     Name.Builtin
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
':toggle'     Name.Builtin
' '           Text
'toggle'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n  '      Text
';; Add the map to the minor-mode-map-alist.' Comment.Single
'\n  '        Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'keymap'      Name.Variable
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'existing'    Name.Variable
' '           Text
'('           Punctuation
'assq'        Name.Function
' '           Text
'toggle'      Name.Variable
' '           Text
'minor-mode-map-alist' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'existing'    Name.Variable
'\n\t  '      Text
'('           Punctuation
'setcdr'      Name.Function
' '           Text
'existing'    Name.Variable
' '           Text
'keymap'      Name.Variable
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'tail'        Name.Variable
' '           Text
'minor-mode-map-alist' Name.Variable
')'           Punctuation
' '           Text
'found'       Name.Variable
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'found'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'after'       Name.Variable
' '           Text
'('           Punctuation
'caar'        Name.Variable
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'found'       Name.Variable
' '           Text
'tail'        Name.Variable
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'setq'        Keyword
' '           Text
'tail'        Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'found'       Name.Variable
'\n\t      '  Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'rest'        Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'found'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'setcdr'      Name.Function
' '           Text
'found'       Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'nconc'       Name.Function
' '           Text
'found'       Name.Variable
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'toggle'      Name.Variable
' '           Text
'keymap'      Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'rest'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'toggle'      Name.Variable
' '           Text
'keymap'      Name.Variable
')'           Punctuation
' '           Text
'minor-mode-map-alist' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\x0c\n'    Text

';;;; Load history' Comment.Single
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'autoloadp'   Name.Variable
' '           Text
'('           Punctuation
'object'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Non-nil if OBJECT is an autoload.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'eq'          Name.Function
' '           Text
"'autoload"   Literal.String.Symbol
' '           Text
'('           Punctuation
'car-safe'    Name.Function
' '           Text
'object'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

';; (defun autoload-type (object)' Comment.Single
'\n'          Text

';;   "Returns the type of OBJECT or `function\' or `command\' if the type is nil.' Comment.Single
'\n'          Text

';; OBJECT should be an autoload object."' Comment.Single
'\n'          Text

';;   (when (autoloadp object)' Comment.Single
'\n'          Text

';;     (let ((type (nth 3 object)))' Comment.Single
'\n'          Text

";;       (cond ((null type) (if (nth 2 object) 'command 'function))" Comment.Single
'\n'          Text

";;             ((eq 'keymap t) 'macro)" Comment.Single
'\n'          Text

';;             (type)))))' Comment.Single
'\n\n'        Text

";; (defalias 'autoload-file #'cadr" Comment.Single
'\n'          Text

';;   "Return the name of the file from which AUTOLOAD will be loaded.' Comment.Single
'\n'          Text

';; \\n\\(fn AUTOLOAD)")' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'symbol-file' Name.Variable
' '           Text
'('           Punctuation
'symbol'      Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'type'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the name of the file that defined SYMBOL.\nThe value is normally an absolute file name.  It can also be nil,\nif the definition is not associated with any file.  If SYMBOL\nspecifies an autoloaded function, the value can be a relative\nfile name without extension.\n\nIf TYPE is nil, then any kind of definition is acceptable.  If\nTYPE is ' Literal.String
"`defun'"     Literal.String.Symbol
', '          Literal.String
"`defvar'"    Literal.String.Symbol
', or '       Literal.String
"`defface'"   Literal.String.Symbol
', that specifies function\ndefinition, variable definition, or face definition only.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'type'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'type'        Name.Variable
' '           Text
"'defun"      Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'symbolp'     Name.Function
' '           Text
'symbol'      Name.Variable
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'autoloadp'   Name.Variable
' '           Text
'('           Punctuation
'symbol-function' Name.Function
' '           Text
'symbol'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'1'           Literal.Number.Integer
' '           Text
'('           Punctuation
'symbol-function' Name.Function
' '           Text
'symbol'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'files'       Name.Variable
' '           Text
'load-history' Name.Variable
')'           Punctuation
'\n\t  '      Text
'file'        Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'while'       Keyword
' '           Text
'files'       Name.Variable
'\n\t'        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'type'        Name.Variable
'\n\t\t'      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'type'        Name.Variable
' '           Text
"'defvar"     Literal.String.Symbol
')'           Punctuation
'\n\t\t    '  Text
';; Variables are present just as their names.' Comment.Single
'\n\t\t    '  Text
'('           Punctuation
'member'      Name.Function
' '           Text
'symbol'      Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'files'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t  '    Text
';; Other types are represented as (TYPE . NAME).' Comment.Single
'\n\t\t  '    Text
'('           Punctuation
'member'      Name.Function
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'type'        Name.Variable
' '           Text
'symbol'      Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'files'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
';; We accept all types, so look for variable def' Comment.Single
'\n\t      '  Text
';; and then for any other kind.' Comment.Single
'\n\t      '  Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'member'      Name.Function
' '           Text
'symbol'      Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'files'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t  '    Text
'('           Punctuation
'rassq'       Name.Function
' '           Text
'symbol'      Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'files'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'file'        Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'files'       Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'files'       Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'files'       Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'files'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'file'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'locate-library' Name.Variable
' '           Text
'('           Punctuation
'library'     Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'nosuffix'    Name.Variable
' '           Text
'path'        Name.Variable
' '           Text
'interactive-call' Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Show the precise file name of Emacs library LIBRARY.\nLIBRARY should be a relative file name of the library, a string.\nIt can omit the suffix (a.k.a. file-name extension) if NOSUFFIX is\nnil (which is the default, see below).\nThis command searches the directories in ' Literal.String
"`load-path'" Literal.String.Symbol
' like '      Literal.String
'`'           Literal.String
'\\\\'        Literal.String
"[load-library]'\nto find the file that " Literal.String
'`'           Literal.String
'\\\\'        Literal.String
"[load-library] RET LIBRARY RET' would load.\nOptional second arg NOSUFFIX non-nil means don't add suffixes " Literal.String
"`load-suffixes'" Literal.String.Symbol
'\nto the specified name LIBRARY.\n\nIf the optional third arg PATH is specified, that list of directories\nis used instead of ' Literal.String
"`load-path'" Literal.String.Symbol
'.\n\nWhen called from a program, the file name is normally returned as a\nstring.  When run interactively, the argument INTERACTIVE-CALL is t,\nand the file name is displayed in the echo area.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'interactive' Keyword
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'('           Punctuation
'completing-read' Name.Function
' '           Text
'"'           Literal.String
'Locate library: ' Literal.String
'"'           Literal.String
'\n\t\t\t\t      ' Text
'('           Punctuation
'apply-partially' Name.Variable
'\n                                       ' Text
"'locate-file-completion-table" Literal.String.Symbol
'\n                                       ' Text
'load-path'   Name.Variable
' '           Text
'('           Punctuation
'get-load-suffixes' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t     ' Text
'nil'         Name.Constant
' '           Text
'nil'         Name.Constant
'\n\t\t     ' Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'file'        Name.Variable
' '           Text
'('           Punctuation
'locate-file' Name.Variable
' '           Text
'library'     Name.Variable
'\n\t\t\t   ' Text
'('           Punctuation
'or'          Keyword
' '           Text
'path'        Name.Variable
' '           Text
'load-path'   Name.Variable
')'           Punctuation
'\n\t\t\t   ' Text
'('           Punctuation
'append'      Name.Function
' '           Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'nosuffix'    Name.Variable
' '           Text
'('           Punctuation
'get-load-suffixes' Name.Function
')'           Punctuation
')'           Punctuation
'\n\t\t\t\t   ' Text
'load-file-rep-suffixes' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'interactive-call' Name.Variable
'\n\t'        Text
'('           Punctuation
'if'          Keyword
' '           Text
'file'        Name.Variable
'\n\t    '    Text
'('           Punctuation
'message'     Name.Function
' '           Text
'"'           Literal.String
'Library is file %s' Literal.String
'"'           Literal.String
' '           Text
'('           Punctuation
'abbreviate-file-name' Name.Variable
' '           Text
'file'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'message'     Name.Function
' '           Text
'"'           Literal.String
'No library %s in search path' Literal.String
'"'           Literal.String
' '           Text
'library'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'file'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n\x0c\n'  Text

';;;; Process stuff.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'process-lines' Name.Variable
' '           Text
'('           Punctuation
'program'     Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'args'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Execute PROGRAM with ARGS, returning its output as a list of lines.\nSignal an error if the program returns with a non-zero exit status.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'with-temp-buffer' Name.Builtin
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'status'      Name.Variable
' '           Text
'('           Punctuation
'apply'       Name.Function
' '           Text
"'call-process" Literal.String.Symbol
' '           Text
'program'     Name.Variable
' '           Text
'nil'         Name.Constant
' '           Text
'('           Punctuation
'current-buffer' Name.Function
')'           Punctuation
' '           Text
'nil'         Name.Constant
' '           Text
'args'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'status'      Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'error'       Name.Exception
' '           Text
'"'           Literal.String
'%s exited with status %s' Literal.String
'"'           Literal.String
' '           Text
'program'     Name.Variable
' '           Text
'status'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'goto-char'   Name.Function
' '           Text
'('           Punctuation
'point-min'   Name.Function
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'lines'       Name.Variable
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'eobp'        Name.Function
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'lines'       Name.Variable
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'('           Punctuation
'buffer-substring-no-properties' Name.Function
'\n\t\t\t     ' Text
'('           Punctuation
'line-beginning-position' Name.Function
')'           Punctuation
'\n\t\t\t     ' Text
'('           Punctuation
'line-end-position' Name.Function
')'           Punctuation
')'           Punctuation
'\n\t\t\t    ' Text
'lines'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'forward-line' Name.Function
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'nreverse'    Name.Function
' '           Text
'lines'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'process-live-p' Name.Variable
' '           Text
'('           Punctuation
'process'     Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Returns non-nil if PROCESS is alive.\nA process is considered alive if its status is ' Literal.String
"`run'"       Literal.String.Symbol
', '          Literal.String
"`open'"      Literal.String.Symbol
',\n'         Literal.String

"`listen'"    Literal.String.Symbol
', '          Literal.String
"`connect'"   Literal.String.Symbol
' or '        Literal.String
"`stop'"      Literal.String.Symbol
'.  Value is nil if PROCESS is not a\nprocess.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'processp'    Name.Function
' '           Text
'process'     Name.Variable
')'           Punctuation
'\n       '   Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'('           Punctuation
'process-status' Name.Function
' '           Text
'process'     Name.Variable
')'           Punctuation
'\n\t     '   Text
"'"           Operator
'('           Punctuation
'run'         Name.Variable
' '           Text
'open'        Name.Variable
' '           Text
'listen'      Name.Variable
' '           Text
'connect'     Name.Variable
' '           Text
'stop'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

';; compatibility' Comment.Single
'\n\n'        Text

'('           Punctuation
'make-obsolete' Name.Variable
'\n '         Text
"'process-kill-without-query" Literal.String.Symbol
'\n '         Text
'"'           Literal.String
'use '        Literal.String
"`process-query-on-exit-flag'" Literal.String.Symbol
' or '        Literal.String
"`set-process-query-on-exit-flag'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n '         Text
'"'           Literal.String
'22.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n'          Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'process-kill-without-query' Name.Variable
' '           Text
'('           Punctuation
'process'     Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'_flag'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Say no query needed if PROCESS is running when Emacs is exited.\nOptional second argument if non-nil says to require a query.\nValue is t if a query was formerly required.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'old'         Name.Variable
' '           Text
'('           Punctuation
'process-query-on-exit-flag' Name.Function
' '           Text
'process'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'set-process-query-on-exit-flag' Name.Function
' '           Text
'process'     Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n    '      Text
'old'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'process-kill-buffer-query-function' Name.Variable
' '           Text
'('           Punctuation
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Ask before killing a buffer that has a running process.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'process'     Name.Variable
' '           Text
'('           Punctuation
'get-buffer-process' Name.Function
' '           Text
'('           Punctuation
'current-buffer' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'process'     Name.Variable
')'           Punctuation
'\n        '  Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'('           Punctuation
'process-status' Name.Function
' '           Text
'process'     Name.Variable
')'           Punctuation
' '           Text
"'"           Operator
'('           Punctuation
'run'         Name.Variable
' '           Text
'stop'        Name.Variable
' '           Text
'open'        Name.Variable
' '           Text
'listen'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'process-query-on-exit-flag' Name.Function
' '           Text
'process'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'yes-or-no-p' Name.Function
'\n\t '       Text
'('           Punctuation
'format'      Name.Function
' '           Text
'"'           Literal.String
'Buffer %S has a running process; kill it? ' Literal.String
'"'           Literal.String
'\n\t\t '     Text
'('           Punctuation
'buffer-name' Name.Function
' '           Text
'('           Punctuation
'current-buffer' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'add-hook'    Name.Variable
' '           Text
"'kill-buffer-query-functions" Literal.String.Symbol
' '           Text
"'process-kill-buffer-query-function" Literal.String.Symbol
')'           Punctuation
'\n\n'        Text

';; process plist management' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'process-get' Name.Variable
' '           Text
'('           Punctuation
'process'     Name.Variable
' '           Text
'propname'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Return the value of PROCESS' PROPNAME property.\nThis is the last value stored with " Literal.String
'`'           Literal.String
"(process-put PROCESS PROPNAME VALUE)'." Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'plist-get'   Name.Function
' '           Text
'('           Punctuation
'process-plist' Name.Function
' '           Text
'process'     Name.Variable
')'           Punctuation
' '           Text
'propname'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'process-put' Name.Variable
' '           Text
'('           Punctuation
'process'     Name.Variable
' '           Text
'propname'    Name.Variable
' '           Text
'value'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Change PROCESS' PROPNAME property to VALUE.\nIt can be retrieved with " Literal.String
'`'           Literal.String
"(process-get PROCESS PROPNAME)'." Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'set-process-plist' Name.Function
' '           Text
'process'     Name.Variable
'\n\t\t     ' Text
'('           Punctuation
'plist-put'   Name.Function
' '           Text
'('           Punctuation
'process-plist' Name.Function
' '           Text
'process'     Name.Variable
')'           Punctuation
' '           Text
'propname'    Name.Variable
' '           Text
'value'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\x0c\n'  Text

';;;; Input and display facilities.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defconst'    Keyword
' '           Text
'read-key-empty-map' Name.Variable
' '           Text
'('           Punctuation
'make-sparse-keymap' Name.Function
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'read-key-delay' Name.Variable
' '           Text
'0.01'        Literal.Number.Float
')'           Punctuation
' '           Text
';Fast enough for 100Hz repeat rate, hopefully.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'read-key'    Name.Variable
' '           Text
'('           Punctuation
'&optional'   Keyword.Pseudo
' '           Text
'prompt'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Read a key from the keyboard.\nContrary to ' Literal.String
"`read-event'" Literal.String.Symbol
' this will not return a raw event but instead will\nobey the input decoding and translations usually done by ' Literal.String
"`read-key-sequence'" Literal.String.Symbol
".\nSo escape sequences and keyboard encoding are taken into account.\nWhen there's an ambiguity because the key looks like the prefix of\nsome sort of escape sequence, the ambiguity is resolved via " Literal.String
"`read-key-delay'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
';; This overriding-terminal-local-map binding also happens to' Comment.Single
'\n  '        Text
";; disable quail's input methods, so although read-key-sequence" Comment.Single
'\n  '        Text
';; always inherits the input method, in practice read-key does not' Comment.Single
'\n  '        Text
";; inherit the input method (at least not if it's based on quail)." Comment.Single
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'overriding-terminal-local-map' Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'overriding-local-map' Name.Variable
' '           Text
'read-key-empty-map' Name.Variable
')'           Punctuation
'\n        '  Text
'('           Punctuation
'echo-keystrokes' Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'old-global-map' Name.Variable
' '           Text
'('           Punctuation
'current-global-map' Name.Function
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'timer'       Name.Variable
' '           Text
'('           Punctuation
'run-with-idle-timer' Name.Variable
'\n                ' Text
';; Wait long enough that Emacs has the time to receive and' Comment.Single
'\n                ' Text
';; process all the raw events associated with the single-key.' Comment.Single
'\n                ' Text
";; But don't wait too long, or the user may find the delay" Comment.Single
'\n                ' Text
';; annoying (or keep hitting more keys which may then get' Comment.Single
'\n                ' Text
';; lost or misinterpreted).' Comment.Single
'\n                ' Text
';; This is only relevant for keys which Emacs perceives as' Comment.Single
'\n                ' Text
';; "prefixes", such as C-x (because of the C-x 8 map in' Comment.Single
'\n                ' Text
';; key-translate-table and the C-x @ map in function-key-map)' Comment.Single
'\n                ' Text
';; or ESC (because of terminal escape sequences in' Comment.Single
'\n                ' Text
';; input-decode-map).' Comment.Single
'\n                ' Text
'read-key-delay' Name.Variable
' '           Text
't'           Name.Constant
'\n                ' Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
')'           Punctuation
'\n                  ' Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'keys'        Name.Variable
' '           Text
'('           Punctuation
'this-command-keys-vector' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                    ' Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'zerop'       Name.Variable
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'keys'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n                      ' Text
";; `keys' is non-empty, so the user has hit at least" Comment.Single
'\n                      ' Text
";; one key; there's no point waiting any longer, even" Comment.Single
'\n                      ' Text
';; though read-key-sequence thinks we should wait' Comment.Single
'\n                      ' Text
';; for more input to decide how to interpret the' Comment.Single
'\n                      ' Text
';; current input.' Comment.Single
'\n                      ' Text
'('           Punctuation
'throw'       Name.Builtin
' '           Text
"'read-key"   Literal.String.Symbol
' '           Text
'keys'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'unwind-protect' Keyword
'\n        '  Text
'('           Punctuation
'progn'       Keyword
'\n\t  '      Text
'('           Punctuation
'use-global-map' Name.Function
'\n           ' Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'map'         Name.Variable
' '           Text
'('           Punctuation
'make-sparse-keymap' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n             ' Text
";; Don't hide the menu-bar and tool-bar entries." Comment.Single
'\n             ' Text
'('           Punctuation
'define-key'  Name.Function
' '           Text
'map'         Name.Variable
' '           Text
'['           Punctuation
'menu-bar'    Name.Variable
']'           Punctuation
' '           Text
'('           Punctuation
'lookup-key'  Name.Function
' '           Text
'global-map'  Name.Variable
' '           Text
'['           Punctuation
'menu-bar'    Name.Variable
']'           Punctuation
')'           Punctuation
')'           Punctuation
'\n             ' Text
'('           Punctuation
'define-key'  Name.Function
' '           Text
'map'         Name.Variable
' '           Text
'['           Punctuation
'tool-bar'    Name.Variable
']'           Punctuation
'\n\t       ' Text
';; This hack avoids evaluating the :filter (Bug#9922).' Comment.Single
'\n\t       ' Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'('           Punctuation
'assq'        Name.Function
' '           Text
"'tool-bar"   Literal.String.Symbol
' '           Text
'global-map'  Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t   '   Text
'('           Punctuation
'lookup-key'  Name.Function
' '           Text
'global-map'  Name.Variable
' '           Text
'['           Punctuation
'tool-bar'    Name.Variable
']'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n             ' Text
'map'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n          ' Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'keys'        Name.Variable
'\n                  ' Text
'('           Punctuation
'catch'       Keyword
' '           Text
"'read-key"   Literal.String.Symbol
' '           Text
'('           Punctuation
'read-key-sequence-vector' Name.Function
' '           Text
'prompt'      Name.Variable
' '           Text
'nil'         Name.Constant
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                 ' Text
'('           Punctuation
'key'         Name.Variable
' '           Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'keys'        Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n            ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'>'           Name.Function
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'keys'        Name.Variable
')'           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
'\n                     ' Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'key'         Name.Variable
' '           Text
"'"           Operator
'('           Punctuation
'mode-line'   Name.Variable
' '           Text
'header-line' Name.Variable
'\n                                 ' Text
'left-fringe' Name.Variable
' '           Text
'right-fringe' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'keys'        Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
'\n              ' Text
'key'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'cancel-timer' Name.Variable
' '           Text
'timer'       Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'use-global-map' Name.Function
' '           Text
'old-global-map' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'read-passwd-map' Name.Variable
'\n  '        Text
";; BEWARE: `defconst' would purecopy it, breaking the sharing with" Comment.Single
'\n  '        Text
';; minibuffer-local-map along the way!' Comment.Single
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'map'         Name.Variable
' '           Text
'('           Punctuation
'make-sparse-keymap' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'set-keymap-parent' Name.Function
' '           Text
'map'         Name.Variable
' '           Text
'minibuffer-local-map' Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'define-key'  Name.Function
' '           Text
'map'         Name.Variable
' '           Text
'"'           Literal.String
'\\C'         Literal.String
'-u'          Literal.String
'"'           Literal.String
' '           Text
"#'"          Name.Function
'delete-minibuffer-contents' Name.Variable
')'           Punctuation
' '           Text
';bug#12570'  Comment.Single
'\n    '      Text
'map'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Keymap used while reading passwords.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'read-passwd' Name.Variable
' '           Text
'('           Punctuation
'prompt'      Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'confirm'     Name.Variable
' '           Text
'default'     Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Read a password, prompting with PROMPT, and return it.\nIf optional CONFIRM is non-nil, read the password twice to make sure.\nOptional DEFAULT is a default password to use instead of empty input.\n\nThis function echoes ' Literal.String
"`.'"         Literal.String.Symbol
' for each character that the user types.\nYou could let-bind ' Literal.String
"`read-hide-char'" Literal.String.Symbol
' to another hiding character, though.\n\nOnce the caller uses the password, it can erase the password\nby doing (clear-string STRING).' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'confirm'     Name.Variable
'\n      '    Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'success'     Name.Variable
')'           Punctuation
'\n        '  Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'success'     Name.Variable
')'           Punctuation
'\n          ' Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'first'       Name.Variable
' '           Text
'('           Punctuation
'read-passwd' Name.Variable
' '           Text
'prompt'      Name.Variable
' '           Text
'nil'         Name.Constant
' '           Text
'default'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n                ' Text
'('           Punctuation
'second'      Name.Variable
' '           Text
'('           Punctuation
'read-passwd' Name.Variable
' '           Text
'"'           Literal.String
'Confirm password: ' Literal.String
'"'           Literal.String
' '           Text
'nil'         Name.Constant
' '           Text
'default'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n            ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'equal'       Name.Function
' '           Text
'first'       Name.Variable
' '           Text
'second'      Name.Variable
')'           Punctuation
'\n                ' Text
'('           Punctuation
'progn'       Keyword
'\n                  ' Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'arrayp'      Name.Function
' '           Text
'second'      Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'clear-string' Name.Function
' '           Text
'second'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n                  ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'success'     Name.Variable
' '           Text
'first'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n              ' Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'arrayp'      Name.Function
' '           Text
'first'       Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'clear-string' Name.Function
' '           Text
'first'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n              ' Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'arrayp'      Name.Function
' '           Text
'second'      Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'clear-string' Name.Function
' '           Text
'second'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n              ' Text
'('           Punctuation
'message'     Name.Function
' '           Text
'"'           Literal.String
'Password not repeated accurately; please start over' Literal.String
'"'           Literal.String
')'           Punctuation
'\n              ' Text
'('           Punctuation
'sit-for'     Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n        '  Text
'success'     Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'hide-chars-fun' Name.Variable
'\n           ' Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'beg'         Name.Variable
' '           Text
'end'         Name.Variable
' '           Text
'_len'        Name.Variable
')'           Punctuation
'\n             ' Text
'('           Punctuation
'clear-this-command-keys' Name.Function
')'           Punctuation
'\n             ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'beg'         Name.Variable
' '           Text
'('           Punctuation
'min'         Name.Function
' '           Text
'end'         Name.Variable
' '           Text
'('           Punctuation
'max'         Name.Function
' '           Text
'('           Punctuation
'minibuffer-prompt-end' Name.Function
')'           Punctuation
'\n                                     ' Text
'beg'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n             ' Text
'('           Punctuation
'dotimes'     Name.Builtin
' '           Text
'('           Punctuation
'i'           Name.Variable
' '           Text
'('           Punctuation
'-'           Name.Function
' '           Text
'end'         Name.Variable
' '           Text
'beg'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n               ' Text
'('           Punctuation
'put-text-property' Name.Function
' '           Text
'('           Punctuation
'+'           Name.Function
' '           Text
'i'           Name.Variable
' '           Text
'beg'         Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'+'           Name.Function
' '           Text
'1'           Literal.Number.Integer
' '           Text
'i'           Name.Variable
' '           Text
'beg'         Name.Variable
')'           Punctuation
'\n                                  ' Text
"'display"    Literal.String.Symbol
' '           Text
'('           Punctuation
'string'      Name.Function
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'read-hide-char' Name.Variable
' '           Text
'?.'          Literal.String.Char
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n          ' Text
'minibuf'     Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'minibuffer-with-setup-hook' Name.Variable
'\n          ' Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
')'           Punctuation
'\n            ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'minibuf'     Name.Variable
' '           Text
'('           Punctuation
'current-buffer' Name.Function
')'           Punctuation
')'           Punctuation
'\n            ' Text
';; Turn off electricity.' Comment.Single
'\n            ' Text
'('           Punctuation
'setq-local'  Name.Builtin
' '           Text
'post-self-insert-hook' Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n            ' Text
'('           Punctuation
'setq-local'  Name.Builtin
' '           Text
'buffer-undo-list' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n            ' Text
'('           Punctuation
'setq-local'  Name.Builtin
' '           Text
'select-active-regions' Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n            ' Text
'('           Punctuation
'use-local-map' Name.Function
' '           Text
'read-passwd-map' Name.Variable
')'           Punctuation
'\n            ' Text
'('           Punctuation
'setq-local'  Name.Builtin
' '           Text
'inhibit-modification-hooks' Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
' '           Text
';bug#15501.' Comment.Single
'\n\t    '    Text
'('           Punctuation
'setq-local'  Name.Builtin
' '           Text
'show-paren-mode' Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\t\t'        Text
';bug#16091.' Comment.Single
'\n            ' Text
'('           Punctuation
'add-hook'    Name.Variable
' '           Text
"'after-change-functions" Literal.String.Symbol
' '           Text
'hide-chars-fun' Name.Variable
' '           Text
'nil'         Name.Constant
' '           Text
"'local"      Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'unwind-protect' Keyword
'\n            ' Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'enable-recursive-minibuffers' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\t\t  '    Text
'('           Punctuation
'read-hide-char' Name.Variable
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'read-hide-char' Name.Variable
' '           Text
'?.'          Literal.String.Char
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n              ' Text
'('           Punctuation
'read-string' Name.Function
' '           Text
'prompt'      Name.Variable
' '           Text
'nil'         Name.Constant
' '           Text
't'           Name.Constant
' '           Text
'default'     Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'; t = "no history"' Comment.Single
'\n          ' Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'buffer-live-p' Name.Function
' '           Text
'minibuf'     Name.Variable
')'           Punctuation
'\n            ' Text
'('           Punctuation
'with-current-buffer' Name.Builtin
' '           Text
'minibuf'     Name.Variable
'\n              ' Text
';; Not sure why but it seems that there might be cases where the' Comment.Single
'\n              ' Text
';; minibuffer is not always properly reset later on, so undo' Comment.Single
'\n              ' Text
";; whatever we've done here (bug#11392)." Comment.Single
'\n              ' Text
'('           Punctuation
'remove-hook' Name.Variable
' '           Text
"'after-change-functions" Literal.String.Symbol
' '           Text
'hide-chars-fun' Name.Variable
' '           Text
"'local"      Literal.String.Symbol
')'           Punctuation
'\n              ' Text
'('           Punctuation
'kill-local-variable' Name.Function
' '           Text
"'post-self-insert-hook" Literal.String.Symbol
')'           Punctuation
'\n              ' Text
";; And of course, don't keep the sensitive data around." Comment.Single
'\n              ' Text
'('           Punctuation
'erase-buffer' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'read-number' Name.Variable
' '           Text
'('           Punctuation
'prompt'      Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'default'     Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Read a numeric value in the minibuffer, prompting with PROMPT.\nDEFAULT specifies a default value to return if the user just types RET.\nThe value of DEFAULT is inserted into PROMPT.\nThis function is used by the ' Literal.String
"`interactive'" Literal.String.Symbol
' code letter ' Literal.String
"`n'"         Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'n'           Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'default1'    Name.Variable
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'default'     Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'default'     Name.Variable
')'           Punctuation
' '           Text
'default'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'default1'    Name.Variable
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'prompt'      Name.Variable
'\n\t    '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'('           Literal.String
'\\\\'        Literal.String
'):[ '        Literal.String
'\\t'         Literal.String
']*'          Literal.String
'\\\\'        Literal.String
"'"           Literal.String
'"'           Literal.String
' '           Text
'prompt'      Name.Variable
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'replace-match' Name.Function
' '           Text
'('           Punctuation
'format'      Name.Function
' '           Text
'"'           Literal.String
' (default %s)' Literal.String
'"'           Literal.String
' '           Text
'default1'    Name.Variable
')'           Punctuation
' '           Text
't'           Name.Constant
' '           Text
't'           Name.Constant
' '           Text
'prompt'      Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'replace-regexp-in-string' Name.Variable
' '           Text
'"'           Literal.String
'[ '          Literal.String
'\\t'         Literal.String
']*'          Literal.String
'\\\\'        Literal.String
"'"           Literal.String
'"'           Literal.String
'\n\t\t\t\t\t' Text
'('           Punctuation
'format'      Name.Function
' '           Text
'"'           Literal.String
' (default %s) ' Literal.String
'"'           Literal.String
' '           Text
'default1'    Name.Variable
')'           Punctuation
'\n\t\t\t\t\t' Text
'prompt'      Name.Variable
' '           Text
't'           Name.Constant
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'while'       Keyword
'\n\t'        Text
'('           Punctuation
'progn'       Keyword
'\n\t  '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'str'         Name.Variable
' '           Text
'('           Punctuation
'read-from-minibuffer' Name.Function
'\n\t\t      ' Text
'prompt'      Name.Variable
' '           Text
'nil'         Name.Constant
' '           Text
'nil'         Name.Constant
' '           Text
'nil'         Name.Constant
' '           Text
'nil'         Name.Constant
'\n\t\t      ' Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'default'     Name.Variable
'\n\t\t\t'    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'default'     Name.Variable
')'           Punctuation
'\n\t\t\t    ' Text
'('           Punctuation
'mapcar'      Name.Function
' '           Text
"'number-to-string" Literal.String.Symbol
' '           Text
'('           Punctuation
'delq'        Name.Function
' '           Text
'nil'         Name.Constant
' '           Text
'default'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t\t  '  Text
'('           Punctuation
'number-to-string' Name.Function
' '           Text
'default'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'condition-case' Keyword
' '           Text
'nil'         Name.Constant
'\n\t\t'      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'n'           Name.Variable
' '           Text
'('           Punctuation
'cond'        Keyword
'\n\t\t\t '   Text
'('           Punctuation
'('           Punctuation
'zerop'       Name.Variable
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'str'         Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'default1'    Name.Variable
')'           Punctuation
'\n\t\t\t '   Text
'('           Punctuation
'('           Punctuation
'stringp'     Name.Function
' '           Text
'str'         Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'read'        Name.Function
' '           Text
'str'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'error'       Name.Exception
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'numberp'     Name.Function
' '           Text
'n'           Name.Variable
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'message'     Name.Function
' '           Text
'"'           Literal.String
'Please enter a number.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'sit-for'     Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
'\n\t    '    Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'n'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'read-char-choice' Name.Variable
' '           Text
'('           Punctuation
'prompt'      Name.Variable
' '           Text
'chars'       Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'inhibit-keyboard-quit' Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Read and return one of CHARS, prompting for PROMPT.\nAny input that is not one of CHARS is ignored.\n\nIf optional argument INHIBIT-KEYBOARD-QUIT is non-nil, ignore\nkeyboard-quit events while waiting for a valid input.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'chars'       Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'error'       Name.Exception
' '           Text
'"'           Literal.String
'Called '     Literal.String
"`read-char-choice'" Literal.String.Symbol
' without valid char choices' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'char'        Name.Variable
' '           Text
'done'        Name.Variable
' '           Text
'show-help'   Name.Variable
' '           Text
'('           Punctuation
'helpbuf'     Name.Variable
' '           Text
'"'           Literal.String
' *Char Help*' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'cursor-in-echo-area' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n          ' Text
'('           Punctuation
'executing-kbd-macro' Name.Variable
' '           Text
'executing-kbd-macro' Name.Variable
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'esc-flag'    Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'save-window-excursion' Name.Builtin
'\t      '    Text
'; in case we call help-form-show' Comment.Single
'\n\t'        Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'done'        Name.Variable
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'get-text-property' Name.Function
' '           Text
'0'           Literal.Number.Integer
' '           Text
"'face"       Literal.String.Symbol
' '           Text
'prompt'      Name.Variable
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'prompt'      Name.Variable
' '           Text
'('           Punctuation
'propertize'  Name.Function
' '           Text
'prompt'      Name.Variable
' '           Text
"'face"       Literal.String.Symbol
' '           Text
"'minibuffer-prompt" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'char'        Name.Variable
' '           Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'inhibit-quit' Name.Variable
' '           Text
'inhibit-keyboard-quit' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t       ' Text
'('           Punctuation
'read-key'    Name.Variable
' '           Text
'prompt'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'and'         Keyword
' '           Text
'show-help'   Name.Variable
' '           Text
'('           Punctuation
'buffer-live-p' Name.Function
' '           Text
'('           Punctuation
'get-buffer'  Name.Function
' '           Text
'helpbuf'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'kill-buffer' Name.Function
' '           Text
'helpbuf'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'cond'        Keyword
'\n\t   '     Text
'('           Punctuation
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'numberp'     Name.Function
' '           Text
'char'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t   '     Text
";; If caller has set help-form, that's enough." Comment.Single
'\n\t   '     Text
";; They don't explicitly have to add help-char to chars." Comment.Single
'\n\t   '     Text
'('           Punctuation
'('           Punctuation
'and'         Keyword
' '           Text
'help-form'   Name.Variable
'\n\t\t '     Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'char'        Name.Variable
' '           Text
'help-char'   Name.Variable
')'           Punctuation
'\n\t\t '     Text
'('           Punctuation
'setq'        Keyword
' '           Text
'show-help'   Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\t\t '     Text
'('           Punctuation
'help-form-show' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'('           Punctuation
'memq'        Name.Function
' '           Text
'char'        Name.Variable
' '           Text
'chars'       Name.Variable
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'done'        Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'('           Punctuation
'and'         Keyword
' '           Text
'executing-kbd-macro' Name.Variable
' '           Text
'('           Punctuation
'='           Name.Function
' '           Text
'char'        Name.Variable
' '           Text
'-1'          Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
';; read-event returns -1 if we are in a kbd macro and' Comment.Single
'\n\t    '    Text
';; there are no more events in the macro.  Attempt to' Comment.Single
'\n\t    '    Text
';; get an event interactively.' Comment.Single
'\n\t    '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'executing-kbd-macro' Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'('           Punctuation
'not'         Name.Variable
' '           Text
'inhibit-keyboard-quit' Name.Variable
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'cond'        Keyword
'\n\t     '   Text
'('           Punctuation
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'esc-flag'    Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'char'        Name.Variable
' '           Text
'?\\e'        Literal.String.Char
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'setq'        Keyword
' '           Text
'esc-flag'    Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n\t     '   Text
'('           Punctuation
'('           Punctuation
'memq'        Name.Function
' '           Text
'char'        Name.Variable
' '           Text
"'"           Operator
'('           Punctuation
'?\\C'        Literal.String.Char
'-g'          Name.Variable
' '           Text
'?\\e'        Literal.String.Char
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'keyboard-quit' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
';; Display the question with the answer.  But without cursor-in-echo-area.' Comment.Single
'\n    '      Text
'('           Punctuation
'message'     Name.Function
' '           Text
'"'           Literal.String
'%s%s'        Literal.String
'"'           Literal.String
' '           Text
'prompt'      Name.Variable
' '           Text
'('           Punctuation
'char-to-string' Name.Function
' '           Text
'char'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'char'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'sit-for'     Name.Variable
' '           Text
'('           Punctuation
'seconds'     Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'nodisp'      Name.Variable
' '           Text
'obsolete'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Redisplay, then wait for SECONDS seconds.  Stop when input is available.\nSECONDS may be a floating-point value.\n' Literal.String

'\\('         Literal.String
"On operating systems that do not support waiting for fractions of a\nsecond, floating-point values are rounded down to the nearest integer.)\n\nIf optional arg NODISP is t, don't redisplay, just wait for input.\nRedisplay does not happen if input is available before it starts.\n\nValue is t if waited the full time with no input arriving, and nil otherwise.\n\nAn obsolete, but still supported form is\n" Literal.String

'\\('         Literal.String
'sit-for SECONDS &optional MILLISECONDS NODISP)\nwhere the optional arg MILLISECONDS specifies an additional wait period,\nin milliseconds; this was useful when Emacs was built without\nfloating point support.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'advertised-calling-convention' Name.Variable
' '           Text
'('           Punctuation
'seconds'     Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'nodisp'      Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'22.1'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
';; This used to be implemented in C until the following discussion:' Comment.Single
'\n  '        Text
';; http://lists.gnu.org/archive/html/emacs-devel/2006-07/msg00401.html' Comment.Single
'\n  '        Text
';; Then it was moved here using an implementation based on an idle timer,' Comment.Single
'\n  '        Text
';; which was then replaced by the use of read-event.' Comment.Single
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'numberp'     Name.Function
' '           Text
'nodisp'      Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'seconds'     Name.Variable
' '           Text
'('           Punctuation
'+'           Name.Function
' '           Text
'seconds'     Name.Variable
' '           Text
'('           Punctuation
'*'           Name.Function
' '           Text
'1e-3'        Literal.Number.Float
' '           Text
'nodisp'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n            ' Text
'nodisp'      Name.Variable
' '           Text
'obsolete'    Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'obsolete'    Name.Variable
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'nodisp'      Name.Variable
' '           Text
'obsolete'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'cond'        Keyword
'\n   '       Text
'('           Punctuation
'noninteractive' Name.Variable
'\n    '      Text
'('           Punctuation
'sleep-for'   Name.Function
' '           Text
'seconds'     Name.Variable
')'           Punctuation
'\n    '      Text
't'           Name.Constant
')'           Punctuation
'\n   '       Text
'('           Punctuation
'('           Punctuation
'input-pending-p' Name.Function
' '           Text
't'           Name.Constant
')'           Punctuation
'\n    '      Text
'nil'         Name.Constant
')'           Punctuation
'\n   '       Text
'('           Punctuation
'('           Punctuation
'<='          Name.Function
' '           Text
'seconds'     Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n    '      Text
'('           Punctuation
'or'          Keyword
' '           Text
'nodisp'      Name.Variable
' '           Text
'('           Punctuation
'redisplay'   Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n   '       Text
'('           Punctuation
't'           Name.Constant
'\n    '      Text
'('           Punctuation
'or'          Keyword
' '           Text
'nodisp'      Name.Variable
' '           Text
'('           Punctuation
'redisplay'   Name.Function
')'           Punctuation
')'           Punctuation
'\n    '      Text
";; FIXME: we should not read-event here at all, because it's much too" Comment.Single
'\n    '      Text
';; difficult to reliably "undo" a read-event by pushing it onto' Comment.Single
'\n    '      Text
';; unread-command-events.' Comment.Single
'\n    '      Text
';; For bug#14782, we need read-event to do the keyboard-coding-system' Comment.Single
'\n    '      Text
';; decoding (hence non-nil as second arg under POSIX ttys).' Comment.Single
'\n    '      Text
';; For bug#15614, we need read-event not to inherit-input-method.' Comment.Single
'\n    '      Text
';; So we temporarily suspend input-method-function.' Comment.Single
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'read'        Name.Function
' '           Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'input-method-function' Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n                  ' Text
'('           Punctuation
'read-event'  Name.Function
' '           Text
'nil'         Name.Constant
' '           Text
't'           Name.Constant
' '           Text
'seconds'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'read'        Name.Function
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'progn'       Keyword
'\n            ' Text
';; https://lists.gnu.org/archive/html/emacs-devel/2006-10/msg00394.html' Comment.Single
'\n            ' Text
";; We want `read' appear in the next command's this-command-event" Comment.Single
'\n            ' Text
';; but not in the current one.' Comment.Single
'\n            ' Text
";; By pushing (cons t read), we indicate that `read' has not" Comment.Single
'\n            ' Text
';; yet been recorded in this-command-keys, so it will be recorded' Comment.Single
'\n            ' Text
";; next time it's read." Comment.Single
'\n            ' Text
";; And indeed the `seconds' argument to read-event correctly" Comment.Single
'\n            ' Text
";; prevented recording this event in the current command's" Comment.Single
'\n            ' Text
';; this-command-keys.' Comment.Single
'\n\t    '    Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
't'           Name.Constant
' '           Text
'read'        Name.Function
')'           Punctuation
' '           Text
'unread-command-events' Name.Variable
')'           Punctuation
'\n\t    '    Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

';; Behind display-popup-menus-p test.' Comment.Single
'\n'          Text

'('           Punctuation
'declare-function' Name.Builtin
' '           Text
'x-popup-dialog' Name.Function
' '           Text
'"'           Literal.String
'menu.c'      Literal.String
'"'           Literal.String
' '           Text
'('           Punctuation
'position'    Name.Variable
' '           Text
'contents'    Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'header'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'y-or-n-p'    Name.Variable
' '           Text
'('           Punctuation
'prompt'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Ask user a ' Literal.String
'\\"'         Literal.String
'y or n'      Literal.String
'\\"'         Literal.String
' question.  Return t if answer is ' Literal.String
'\\"'         Literal.String
'y'           Literal.String
'\\"'         Literal.String
'.\nPROMPT is the string to display to ask the question.  It should\nend in a space; ' Literal.String
"`y-or-n-p'"  Literal.String.Symbol
' adds '      Literal.String
'\\"'         Literal.String
'(y or n) '   Literal.String
'\\"'         Literal.String
' to it.\n\nNo confirmation of the answer is requested; a single character is\nenough.  SPC also means yes, and DEL means no.\n\nTo be precise, this function translates user input into responses\nby consulting the bindings in ' Literal.String
"`query-replace-map'" Literal.String.Symbol
'; see the\ndocumentation of that variable for more information.  In this\ncase, the useful bindings are ' Literal.String
"`act'"       Literal.String.Symbol
', '          Literal.String
"`skip'"      Literal.String.Symbol
', '          Literal.String
"`recenter'"  Literal.String.Symbol
',\n'         Literal.String

"`scroll-up'" Literal.String.Symbol
', '          Literal.String
"`scroll-down'" Literal.String.Symbol
', and '      Literal.String
"`quit'"      Literal.String.Symbol
'.\nAn '      Literal.String
"`act'"       Literal.String.Symbol
' response means yes, and a ' Literal.String
"`skip'"      Literal.String.Symbol
' response means no.\nA ' Literal.String
"`quit'"      Literal.String.Symbol
' response means to invoke ' Literal.String
"`keyboard-quit'" Literal.String.Symbol
'.\nIf the user enters ' Literal.String
"`recenter'"  Literal.String.Symbol
', '          Literal.String
"`scroll-up'" Literal.String.Symbol
', or '       Literal.String
"`scroll-down'" Literal.String.Symbol
'\nresponses, perform the requested window recentering or scrolling\nand ask again.\n\nUnder a windowing system a dialog box will be used if ' Literal.String
"`last-nonmenu-event'" Literal.String.Symbol
'\nis nil and ' Literal.String
"`use-dialog-box'" Literal.String.Symbol
' is non-nil.' Literal.String
'"'           Literal.String
'\n  '        Text
';; ¡Beware! when I tried to edebug this code, Emacs got into a weird state' Comment.Single
'\n  '        Text
';; where all the keys were unbound (i.e. it somehow got triggered' Comment.Single
'\n  '        Text
';; within read-key, apparently).  I had to kill it.' Comment.Single
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'answer'      Name.Variable
' '           Text
"'recenter"   Literal.String.Symbol
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'padded'      Name.Variable
' '           Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'prompt'      Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'dialog'      Name.Variable
')'           Punctuation
'\n\t\t  '    Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'l'           Name.Variable
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'prompt'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t    '  Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'prompt'      Name.Variable
'\n\t\t\t    ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'zerop'       Name.Variable
' '           Text
'l'           Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'?\\s'        Literal.String.Char
' '           Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'prompt'      Name.Variable
' '           Text
'('           Punctuation
'1-'          Name.Function
' '           Text
'l'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t\t\t'  Text
'"'           Literal.String
'"'           Literal.String
' '           Text
'"'           Literal.String
' '           Literal.String
'"'           Literal.String
')'           Punctuation
'\n\t\t\t    ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'dialog'      Name.Variable
' '           Text
'"'           Literal.String
'"'           Literal.String
' '           Text
'"'           Literal.String
'(y or n) '   Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'cond'        Keyword
'\n     '     Text
'('           Punctuation
'noninteractive' Name.Variable
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'prompt'      Name.Variable
' '           Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'padded'      Name.Variable
' '           Text
'prompt'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'temp-prompt' Name.Variable
' '           Text
'prompt'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'answer'      Name.Variable
' '           Text
"'"           Operator
'('           Punctuation
'act'         Name.Variable
' '           Text
'skip'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'str'         Name.Variable
' '           Text
'('           Punctuation
'read-string' Name.Function
' '           Text
'temp-prompt' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'cond'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'member'      Name.Function
' '           Text
'str'         Name.Variable
' '           Text
"'"           Operator
'('           Punctuation
'"'           Literal.String
'y'           Literal.String
'"'           Literal.String
' '           Text
'"'           Literal.String
'Y'           Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'answer'      Name.Variable
' '           Text
"'act"        Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n\t\t  '    Text
'('           Punctuation
'('           Punctuation
'member'      Name.Function
' '           Text
'str'         Name.Variable
' '           Text
"'"           Operator
'('           Punctuation
'"'           Literal.String
'n'           Literal.String
'"'           Literal.String
' '           Text
'"'           Literal.String
'N'           Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'answer'      Name.Variable
' '           Text
"'skip"       Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n\t\t  '    Text
'('           Punctuation
't'           Name.Constant
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'temp-prompt' Name.Variable
' '           Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'"'           Literal.String
'Please answer y or n.  ' Literal.String
'"'           Literal.String
'\n\t\t\t\t\t       ' Text
'prompt'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n     '     Text
'('           Punctuation
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'display-popup-menus-p' Name.Variable
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'listp'       Name.Function
' '           Text
'last-nonmenu-event' Name.Variable
')'           Punctuation
'\n\t   '     Text
'use-dialog-box' Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'prompt'      Name.Variable
' '           Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'padded'      Name.Variable
' '           Text
'prompt'      Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\t    '    Text
'answer'      Name.Variable
' '           Text
'('           Punctuation
'x-popup-dialog' Name.Function
' '           Text
't'           Name.Constant
' '           Text
'`'           Operator
'('           Punctuation
','           Operator
'prompt'      Name.Variable
' '           Text
'('           Punctuation
'"'           Literal.String
'Yes'         Literal.String
'"'           Literal.String
' '           Text
'.'           Operator
' '           Text
'act'         Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'"'           Literal.String
'No'          Literal.String
'"'           Literal.String
' '           Text
'.'           Operator
' '           Text
'skip'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n     '     Text
'('           Punctuation
't'           Name.Constant
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'prompt'      Name.Variable
' '           Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'padded'      Name.Variable
' '           Text
'prompt'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'while'       Keyword
'\n          ' Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'scroll-actions' Name.Variable
' '           Text
"'"           Operator
'('           Punctuation
'recenter'    Name.Function
' '           Text
'scroll-up'   Name.Function
' '           Text
'scroll-down' Name.Function
'\n\t\t\t\t   ' Text
'scroll-other-window' Name.Function
' '           Text
'scroll-other-window-down' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t '     Text
'('           Punctuation
'key'         Name.Variable
'\n                  ' Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'cursor-in-echo-area' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n                    ' Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'minibuffer-auto-raise' Name.Variable
'\n                      ' Text
'('           Punctuation
'raise-frame' Name.Function
' '           Text
'('           Punctuation
'window-frame' Name.Function
' '           Text
'('           Punctuation
'minibuffer-window' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                    ' Text
'('           Punctuation
'read-key'    Name.Variable
' '           Text
'('           Punctuation
'propertize'  Name.Function
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'answer'      Name.Variable
' '           Text
'scroll-actions' Name.Variable
')'           Punctuation
'\n                                              ' Text
'prompt'      Name.Variable
'\n                                            ' Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'"'           Literal.String
'Please answer y or n.  ' Literal.String
'"'           Literal.String
'\n                                                    ' Text
'prompt'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n                                          ' Text
"'face"       Literal.String.Symbol
' '           Text
"'minibuffer-prompt" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n            ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'answer'      Name.Variable
' '           Text
'('           Punctuation
'lookup-key'  Name.Function
' '           Text
'query-replace-map' Name.Variable
' '           Text
'('           Punctuation
'vector'      Name.Function
' '           Text
'key'         Name.Variable
')'           Punctuation
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n            ' Text
'('           Punctuation
'cond'        Keyword
'\n\t     '   Text
'('           Punctuation
'('           Punctuation
'memq'        Name.Function
' '           Text
'answer'      Name.Variable
' '           Text
"'"           Operator
'('           Punctuation
'skip'        Name.Variable
' '           Text
'act'         Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n\t     '   Text
'('           Punctuation
'('           Punctuation
'eq'          Name.Function
' '           Text
'answer'      Name.Variable
' '           Text
"'recenter"   Literal.String.Symbol
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'recenter'    Name.Function
')'           Punctuation
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\t     '   Text
'('           Punctuation
'('           Punctuation
'eq'          Name.Function
' '           Text
'answer'      Name.Variable
' '           Text
"'scroll-up"  Literal.String.Symbol
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'ignore-errors' Name.Builtin
' '           Text
'('           Punctuation
'scroll-up-command' Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\t     '   Text
'('           Punctuation
'('           Punctuation
'eq'          Name.Function
' '           Text
'answer'      Name.Variable
' '           Text
"'scroll-down" Literal.String.Symbol
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'ignore-errors' Name.Builtin
' '           Text
'('           Punctuation
'scroll-down-command' Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\t     '   Text
'('           Punctuation
'('           Punctuation
'eq'          Name.Function
' '           Text
'answer'      Name.Variable
' '           Text
"'scroll-other-window" Literal.String.Symbol
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'ignore-errors' Name.Builtin
' '           Text
'('           Punctuation
'scroll-other-window' Name.Function
')'           Punctuation
')'           Punctuation
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\t     '   Text
'('           Punctuation
'('           Punctuation
'eq'          Name.Function
' '           Text
'answer'      Name.Variable
' '           Text
"'scroll-other-window-down" Literal.String.Symbol
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'ignore-errors' Name.Builtin
' '           Text
'('           Punctuation
'scroll-other-window-down' Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\t     '   Text
'('           Punctuation
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'answer'      Name.Variable
' '           Text
"'"           Operator
'('           Punctuation
'exit-prefix' Name.Variable
' '           Text
'quit'        Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'key'         Name.Variable
' '           Text
'?\\e'        Literal.String.Char
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'signal'      Name.Function
' '           Text
"'quit"       Literal.String.Symbol
' '           Text
'nil'         Name.Constant
')'           Punctuation
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\t     '   Text
'('           Punctuation
't'           Name.Constant
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'ding'        Name.Function
')'           Punctuation
'\n        '  Text
'('           Punctuation
'discard-input' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'ret'         Name.Variable
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'answer'      Name.Variable
' '           Text
"'act"        Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'noninteractive' Name.Variable
'\n        '  Text
'('           Punctuation
'message'     Name.Function
' '           Text
'"'           Literal.String
'%s%c'        Literal.String
'"'           Literal.String
' '           Text
'prompt'      Name.Variable
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'ret'         Name.Variable
' '           Text
'?y'          Literal.String.Char
' '           Text
'?n'          Literal.String.Char
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'ret'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\x0c\n'  Text

';;; Atomic change groups.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'atomic-change-group' Name.Builtin
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Perform BODY as an atomic change group.\nThis means that if BODY exits abnormally,\nall of its changes to the current buffer are undone.\nThis works regardless of whether undo is enabled in the buffer.\n\nThis mechanism is transparent to ordinary use of undo;\nif undo is enabled in the buffer and BODY succeeds, the\nuser can undo the change normally.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'handle'      Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'--change-group-handle--' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'success'     Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'--change-group-success--' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'`'           Operator
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'handle'      Name.Variable
' '           Text
'('           Punctuation
'prepare-change-group' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t   '     Text
";; Don't truncate any undo data in the middle of this." Comment.Single
'\n\t   '     Text
'('           Punctuation
'undo-outer-limit' Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'undo-limit'  Name.Variable
' '           Text
'most-positive-fixnum' Name.Variable
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'undo-strong-limit' Name.Variable
' '           Text
'most-positive-fixnum' Name.Variable
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
','           Operator
'success'     Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'unwind-protect' Keyword
'\n\t   '     Text
'('           Punctuation
'progn'       Keyword
'\n\t     '   Text
';; This is inside the unwind-protect because' Comment.Single
'\n\t     '   Text
';; it enables undo if that was disabled; we need' Comment.Single
'\n\t     '   Text
';; to make sure that it gets disabled again.' Comment.Single
'\n\t     '   Text
'('           Punctuation
'activate-change-group' Name.Variable
' '           Text
','           Operator
'handle'      Name.Variable
')'           Punctuation
'\n\t     '   Text
',@'          Operator
'body'        Name.Variable
'\n\t     '   Text
'('           Punctuation
'setq'        Keyword
' '           Text
','           Operator
'success'     Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n\t '       Text
';; Either of these functions will disable undo' Comment.Single
'\n\t '       Text
';; if it was disabled before.' Comment.Single
'\n\t '       Text
'('           Punctuation
'if'          Keyword
' '           Text
','           Operator
'success'     Name.Variable
'\n\t     '   Text
'('           Punctuation
'accept-change-group' Name.Variable
' '           Text
','           Operator
'handle'      Name.Variable
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'cancel-change-group' Name.Variable
' '           Text
','           Operator
'handle'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'prepare-change-group' Name.Variable
' '           Text
'('           Punctuation
'&optional'   Keyword.Pseudo
' '           Text
'buffer'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Return a handle for the current buffer's state, for a change group.\nIf you specify BUFFER, make a handle for BUFFER's state instead.\n\nPass the handle to " Literal.String
"`activate-change-group'" Literal.String.Symbol
' afterward to initiate\nthe actual changes of the change group.\n\nTo finish the change group, call either ' Literal.String
"`accept-change-group'" Literal.String.Symbol
' or\n'       Literal.String

"`cancel-change-group'" Literal.String.Symbol
' passing the same handle as argument.  Call\n' Literal.String

"`accept-change-group'" Literal.String.Symbol
' to accept the changes in the group as final;\ncall ' Literal.String
"`cancel-change-group'" Literal.String.Symbol
' to undo them all.  You should use\n' Literal.String

"`unwind-protect'" Literal.String.Symbol
' to make sure the group is always finished.  The call\nto ' Literal.String
"`activate-change-group'" Literal.String.Symbol
' should be inside the ' Literal.String
"`unwind-protect'" Literal.String.Symbol
".\nOnce you finish the group, don't use the handle again--don't try to\nfinish the same group twice.  For a simple example of correct use, see\nthe source code of " Literal.String
"`atomic-change-group'" Literal.String.Symbol
'.\n\nThe handle records only the specified buffer.  To make a multibuffer\nchange group, call this function once for each buffer you want to\ncover, then use ' Literal.String
"`nconc'"     Literal.String.Symbol
' to combine the returned values, like this:\n\n  (nconc (prepare-change-group buffer-1)\n         (prepare-change-group buffer-2))\n\nYou can then activate that multibuffer change group with a single\ncall to ' Literal.String
"`activate-change-group'" Literal.String.Symbol
' and finish it with a single call\nto ' Literal.String
"`accept-change-group'" Literal.String.Symbol
' or '        Literal.String
"`cancel-change-group'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n\n  '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'buffer'      Name.Variable
'\n      '    Text
'('           Punctuation
'list'        Name.Function
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'buffer'      Name.Variable
' '           Text
'('           Punctuation
'with-current-buffer' Name.Builtin
' '           Text
'buffer'      Name.Variable
' '           Text
'buffer-undo-list' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'list'        Name.Function
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'('           Punctuation
'current-buffer' Name.Function
')'           Punctuation
' '           Text
'buffer-undo-list' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'activate-change-group' Name.Variable
' '           Text
'('           Punctuation
'handle'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Activate a change group made with ' Literal.String
"`prepare-change-group'" Literal.String.Symbol
' (which see).' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'dolist'      Name.Builtin
' '           Text
'('           Punctuation
'elt'         Name.Function
' '           Text
'handle'      Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'with-current-buffer' Name.Builtin
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'buffer-undo-list' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'buffer-undo-list' Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'accept-change-group' Name.Variable
' '           Text
'('           Punctuation
'handle'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Finish a change group made with ' Literal.String
"`prepare-change-group'" Literal.String.Symbol
' (which see).\nThis finishes the change group by accepting its changes as final.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'dolist'      Name.Builtin
' '           Text
'('           Punctuation
'elt'         Name.Function
' '           Text
'handle'      Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'with-current-buffer' Name.Builtin
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'buffer-undo-list' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'cancel-change-group' Name.Variable
' '           Text
'('           Punctuation
'handle'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Finish a change group made with ' Literal.String
"`prepare-change-group'" Literal.String.Symbol
' (which see).\nThis finishes the change group by reverting all of its changes.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'dolist'      Name.Builtin
' '           Text
'('           Punctuation
'elt'         Name.Function
' '           Text
'handle'      Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'with-current-buffer' Name.Builtin
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'elt'         Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'save-restriction' Keyword
'\n\t'        Text
';; Widen buffer temporarily so if the buffer was narrowed within' Comment.Single
'\n\t'        Text
";; the body of `atomic-change-group' all changes can be undone." Comment.Single
'\n\t'        Text
'('           Punctuation
'widen'       Name.Function
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'old-car'     Name.Variable
'\n\t       ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'old-cdr'     Name.Variable
'\n\t       ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
';; Temporarily truncate the undo log at ELT.' Comment.Single
'\n\t  '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'setcar'      Name.Function
' '           Text
'elt'         Name.Function
' '           Text
'nil'         Name.Constant
')'           Punctuation
' '           Text
'('           Punctuation
'setcdr'      Name.Function
' '           Text
'elt'         Name.Function
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'last-command' Name.Variable
' '           Text
"'undo"       Literal.String.Symbol
')'           Punctuation
' '           Text
'('           Punctuation
'undo-start'  Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
";; Make sure there's no confusion." Comment.Single
'\n\t  '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'elt'         Name.Function
' '           Text
'('           Punctuation
'last'        Name.Variable
' '           Text
'pending-undo-list' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'error'       Name.Exception
' '           Text
'"'           Literal.String
'Undoing to some unrelated state' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
';; Undo it all.' Comment.Single
'\n\t  '      Text
'('           Punctuation
'save-excursion' Keyword
'\n\t    '    Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'listp'       Name.Function
' '           Text
'pending-undo-list' Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'undo-more'   Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
';; Reset the modified cons cell ELT to its original content.' Comment.Single
'\n\t  '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'setcar'      Name.Function
' '           Text
'elt'         Name.Function
' '           Text
'old-car'     Name.Variable
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'setcdr'      Name.Function
' '           Text
'elt'         Name.Function
' '           Text
'old-cdr'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
';; Revert the undo info to what it was when we grabbed the state.' Comment.Single
'\n\t  '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'buffer-undo-list' Name.Variable
' '           Text
'elt'         Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\x0c\n'    Text

';;;; Display-related functions.' Comment.Single
'\n\n'        Text

';; For compatibility.' Comment.Single
'\n'          Text

'('           Punctuation
'define-obsolete-function-alias' Name.Builtin
' '           Text
"'redraw-modeline" Literal.String.Symbol
'\n  '        Text
"'force-mode-line-update" Literal.String.Symbol
' '           Text
'"'           Literal.String
'24.3'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'momentary-string-display' Name.Variable
' '           Text
'('           Punctuation
'string'      Name.Function
' '           Text
'pos'         Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'exit-char'   Name.Variable
' '           Text
'message'     Name.Function
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Momentarily display STRING in the buffer at POS.\nDisplay remains until next event is input.\nIf POS is a marker, only its position is used; its buffer is ignored.\nOptional third arg EXIT-CHAR can be a character, event or event\ndescription list.  EXIT-CHAR defaults to SPC.  If the input is\nEXIT-CHAR it is swallowed; otherwise it is then available as\ninput (as a command if nothing else).\nDisplay MESSAGE (optional fourth arg) in the echo area.\nIf MESSAGE is nil, instructions to type EXIT-CHAR are displayed there.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'or'          Keyword
' '           Text
'exit-char'   Name.Variable
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'exit-char'   Name.Variable
' '           Text
'?\\s'        Literal.String.Char
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'ol'          Name.Variable
' '           Text
'('           Punctuation
'make-overlay' Name.Function
' '           Text
'pos'         Name.Variable
' '           Text
'pos'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'str'         Name.Variable
' '           Text
'('           Punctuation
'copy-sequence' Name.Function
' '           Text
'string'      Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'unwind-protect' Keyword
'\n        '  Text
'('           Punctuation
'progn'       Keyword
'\n          ' Text
'('           Punctuation
'save-excursion' Keyword
'\n            ' Text
'('           Punctuation
'overlay-put' Name.Function
' '           Text
'ol'          Name.Variable
' '           Text
"'after-string" Literal.String.Symbol
' '           Text
'str'         Name.Variable
')'           Punctuation
'\n            ' Text
'('           Punctuation
'goto-char'   Name.Function
' '           Text
'pos'         Name.Variable
')'           Punctuation
'\n            ' Text
';; To avoid trouble with out-of-bounds position' Comment.Single
'\n            ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'pos'         Name.Variable
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
')'           Punctuation
'\n            ' Text
';; If the string end is off screen, recenter now.' Comment.Single
'\n            ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'<='          Name.Function
' '           Text
'('           Punctuation
'window-end'  Name.Function
' '           Text
'nil'         Name.Constant
' '           Text
't'           Name.Constant
')'           Punctuation
' '           Text
'pos'         Name.Variable
')'           Punctuation
'\n                ' Text
'('           Punctuation
'recenter'    Name.Function
' '           Text
'('           Punctuation
'/'           Name.Function
' '           Text
'('           Punctuation
'window-height' Name.Variable
')'           Punctuation
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n          ' Text
'('           Punctuation
'message'     Name.Function
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'message'     Name.Function
' '           Text
'"'           Literal.String
'Type %s to continue editing.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n                   ' Text
'('           Punctuation
'single-key-description' Name.Function
' '           Text
'exit-char'   Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'event'       Name.Variable
' '           Text
'('           Punctuation
'read-key'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
";; `exit-char' can be an event, or an event description list." Comment.Single
'\n\t    '    Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'event'       Name.Variable
' '           Text
'exit-char'   Name.Variable
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'event'       Name.Variable
' '           Text
'('           Punctuation
'event-convert-list' Name.Function
' '           Text
'exit-char'   Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'unread-command-events' Name.Variable
'\n                      ' Text
'('           Punctuation
'append'      Name.Function
' '           Text
'('           Punctuation
'this-single-command-raw-keys' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'delete-overlay' Name.Function
' '           Text
'ol'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\x0c\n'  Text

';;;; Overlay operations' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'copy-overlay' Name.Variable
' '           Text
'('           Punctuation
'o'           Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return a copy of overlay O.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'o1'          Name.Variable
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'overlay-buffer' Name.Function
' '           Text
'o'           Name.Variable
')'           Punctuation
'\n                ' Text
'('           Punctuation
'make-overlay' Name.Function
' '           Text
'('           Punctuation
'overlay-start' Name.Function
' '           Text
'o'           Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'overlay-end' Name.Function
' '           Text
'o'           Name.Variable
')'           Punctuation
'\n                              ' Text
";; FIXME: there's no easy way to find the" Comment.Single
'\n                              ' Text
';; insertion-type of the two markers.' Comment.Single
'\n                              ' Text
'('           Punctuation
'overlay-buffer' Name.Function
' '           Text
'o'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n              ' Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'o1'          Name.Variable
' '           Text
'('           Punctuation
'make-overlay' Name.Function
' '           Text
'('           Punctuation
'point-min'   Name.Function
')'           Punctuation
' '           Text
'('           Punctuation
'point-min'   Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text
'('           Punctuation
'delete-overlay' Name.Function
' '           Text
'o1'          Name.Variable
')'           Punctuation
'\n                ' Text
'o1'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'props'       Name.Variable
' '           Text
'('           Punctuation
'overlay-properties' Name.Function
' '           Text
'o'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'props'       Name.Variable
'\n      '    Text
'('           Punctuation
'overlay-put' Name.Function
' '           Text
'o1'          Name.Variable
' '           Text
'('           Punctuation
'pop'         Name.Builtin
' '           Text
'props'       Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'pop'         Name.Builtin
' '           Text
'props'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'o1'          Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'remove-overlays' Name.Variable
' '           Text
'('           Punctuation
'&optional'   Keyword.Pseudo
' '           Text
'beg'         Name.Variable
' '           Text
'end'         Name.Variable
' '           Text
'name'        Name.Variable
' '           Text
'val'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Clear BEG and END of overlays whose property NAME has value VAL.\nOverlays might be moved and/or split.\nBEG and END default respectively to the beginning and end of buffer.' Literal.String
'"'           Literal.String
'\n  '        Text
';; This speeds up the loops over overlays.' Comment.Single
'\n  '        Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'beg'         Name.Variable
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'beg'         Name.Variable
' '           Text
'('           Punctuation
'point-min'   Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'end'         Name.Variable
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'end'         Name.Variable
' '           Text
'('           Punctuation
'point-max'   Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'overlay-recenter' Name.Function
' '           Text
'end'         Name.Variable
')'           Punctuation
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'end'         Name.Variable
' '           Text
'beg'         Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'beg'         Name.Variable
' '           Text
'('           Punctuation
'prog1'       Keyword
' '           Text
'end'         Name.Variable
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'end'         Name.Variable
' '           Text
'beg'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'save-excursion' Keyword
'\n    '      Text
'('           Punctuation
'dolist'      Name.Builtin
' '           Text
'('           Punctuation
'o'           Name.Variable
' '           Text
'('           Punctuation
'overlays-in' Name.Function
' '           Text
'beg'         Name.Variable
' '           Text
'end'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'overlay-get' Name.Function
' '           Text
'o'           Name.Variable
' '           Text
'name'        Name.Variable
')'           Punctuation
' '           Text
'val'         Name.Variable
')'           Punctuation
'\n\t'        Text
';; Either push this overlay outside beg...end' Comment.Single
'\n\t'        Text
';; or split it to exclude beg...end' Comment.Single
'\n\t'        Text
';; or delete it entirely (if it is contained in beg...end).' Comment.Single
'\n\t'        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'('           Punctuation
'overlay-start' Name.Function
' '           Text
'o'           Name.Variable
')'           Punctuation
' '           Text
'beg'         Name.Variable
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'>'           Name.Function
' '           Text
'('           Punctuation
'overlay-end' Name.Function
' '           Text
'o'           Name.Variable
')'           Punctuation
' '           Text
'end'         Name.Variable
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'progn'       Keyword
'\n\t\t  '    Text
'('           Punctuation
'move-overlay' Name.Function
' '           Text
'('           Punctuation
'copy-overlay' Name.Variable
' '           Text
'o'           Name.Variable
')'           Punctuation
'\n\t\t\t\t'  Text
'('           Punctuation
'overlay-start' Name.Function
' '           Text
'o'           Name.Variable
')'           Punctuation
' '           Text
'beg'         Name.Variable
')'           Punctuation
'\n\t\t  '    Text
'('           Punctuation
'move-overlay' Name.Function
' '           Text
'o'           Name.Variable
' '           Text
'end'         Name.Variable
' '           Text
'('           Punctuation
'overlay-end' Name.Function
' '           Text
'o'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'move-overlay' Name.Function
' '           Text
'o'           Name.Variable
' '           Text
'('           Punctuation
'overlay-start' Name.Function
' '           Text
'o'           Name.Variable
')'           Punctuation
' '           Text
'beg'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'>'           Name.Function
' '           Text
'('           Punctuation
'overlay-end' Name.Function
' '           Text
'o'           Name.Variable
')'           Punctuation
' '           Text
'end'         Name.Variable
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'move-overlay' Name.Function
' '           Text
'o'           Name.Variable
' '           Text
'end'         Name.Variable
' '           Text
'('           Punctuation
'overlay-end' Name.Function
' '           Text
'o'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'delete-overlay' Name.Function
' '           Text
'o'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\x0c\n'    Text

';;;; Miscellanea.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'suspend-hook' Name.Variable
' '           Text
'nil'         Name.Constant
'\n  '        Text
'"'           Literal.String
'Normal hook run by ' Literal.String
"`suspend-emacs'" Literal.String.Symbol
', before suspending.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'suspend-resume-hook' Name.Variable
' '           Text
'nil'         Name.Constant
'\n  '        Text
'"'           Literal.String
'Normal hook run by ' Literal.String
"`suspend-emacs'" Literal.String.Symbol
', after Emacs is continued.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'temp-buffer-show-hook' Name.Variable
' '           Text
'nil'         Name.Constant
'\n  '        Text
'"'           Literal.String
'Normal hook run by ' Literal.String
"`with-output-to-temp-buffer'" Literal.String.Symbol
' after displaying the buffer.\nWhen the hook runs, the temporary buffer is current, and the window it\nwas displayed in is selected.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'temp-buffer-setup-hook' Name.Variable
' '           Text
'nil'         Name.Constant
'\n  '        Text
'"'           Literal.String
'Normal hook run by ' Literal.String
"`with-output-to-temp-buffer'" Literal.String.Symbol
' at the start.\nWhen the hook runs, the temporary buffer is current.\nThis hook is normally set up with a function to put the buffer in Help\nmode.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defconst'    Keyword
' '           Text
'user-emacs-directory' Name.Variable
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'system-type' Name.Variable
' '           Text
"'ms-dos"     Literal.String.Symbol
')'           Punctuation
'\n      '    Text
';; MS-DOS cannot have initial dot.' Comment.Single
'\n      '    Text
'"'           Literal.String
'~/_emacs.d/' Literal.String
'"'           Literal.String
'\n    '      Text
'"'           Literal.String
'~/.emacs.d/' Literal.String
'"'           Literal.String
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Directory beneath which additional per-user Emacs-specific files are placed.\nVarious programs in Emacs store information in this directory.\nNote that this should end with a directory separator.\nSee also ' Literal.String
"`locate-user-emacs-file'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
')'           Punctuation
'\n\x0c\n'    Text

';;;; Misc. useful functions.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'buffer-narrowed-p' Name.Variable
' '           Text
'('           Punctuation
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return non-nil if the current buffer is narrowed.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'/='          Name.Function
' '           Text
'('           Punctuation
'-'           Name.Function
' '           Text
'('           Punctuation
'point-max'   Name.Function
')'           Punctuation
' '           Text
'('           Punctuation
'point-min'   Name.Function
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'buffer-size' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'find-tag-default-bounds' Name.Variable
' '           Text
'('           Punctuation
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Determine the boundaries of the default tag, based on text at point.\nReturn a cons cell with the beginning and end of the found tag.\nIf there is no plausible default, return nil.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'from'        Name.Variable
' '           Text
'to'          Name.Variable
' '           Text
'bound'       Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'progn'       Keyword
'\n\t\t'      Text
";; Look at text around `point'." Comment.Single
'\n\t\t'      Text
'('           Punctuation
'save-excursion' Keyword
'\n\t\t  '    Text
'('           Punctuation
'skip-syntax-backward' Name.Function
' '           Text
'"'           Literal.String
'w_'          Literal.String
'"'           Literal.String
')'           Punctuation
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'from'        Name.Variable
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'save-excursion' Keyword
'\n\t\t  '    Text
'('           Punctuation
'skip-syntax-forward' Name.Function
' '           Text
'"'           Literal.String
'w_'          Literal.String
'"'           Literal.String
')'           Punctuation
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'to'          Name.Variable
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'>'           Name.Function
' '           Text
'to'          Name.Variable
' '           Text
'from'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
";; Look between `line-beginning-position' and `point'." Comment.Single
'\n\t      '  Text
'('           Punctuation
'save-excursion' Keyword
'\n\t\t'      Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'bound'       Name.Variable
' '           Text
'('           Punctuation
'line-beginning-position' Name.Function
')'           Punctuation
')'           Punctuation
'\n\t\t     ' Text
'('           Punctuation
'skip-syntax-backward' Name.Function
' '           Text
'"'           Literal.String
'^w_'         Literal.String
'"'           Literal.String
' '           Text
'bound'       Name.Variable
')'           Punctuation
'\n\t\t     ' Text
'('           Punctuation
'>'           Name.Function
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'to'          Name.Variable
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
')'           Punctuation
' '           Text
'bound'       Name.Variable
')'           Punctuation
'\n\t\t     ' Text
'('           Punctuation
'skip-syntax-backward' Name.Function
' '           Text
'"'           Literal.String
'w_'          Literal.String
'"'           Literal.String
')'           Punctuation
'\n\t\t     ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'from'        Name.Variable
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
";; Look between `point' and `line-end-position'." Comment.Single
'\n\t      '  Text
'('           Punctuation
'save-excursion' Keyword
'\n\t\t'      Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'bound'       Name.Variable
' '           Text
'('           Punctuation
'line-end-position' Name.Function
')'           Punctuation
')'           Punctuation
'\n\t\t     ' Text
'('           Punctuation
'skip-syntax-forward' Name.Function
' '           Text
'"'           Literal.String
'^w_'         Literal.String
'"'           Literal.String
' '           Text
'bound'       Name.Variable
')'           Punctuation
'\n\t\t     ' Text
'('           Punctuation
'<'           Name.Function
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'from'        Name.Variable
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
')'           Punctuation
' '           Text
'bound'       Name.Variable
')'           Punctuation
'\n\t\t     ' Text
'('           Punctuation
'skip-syntax-forward' Name.Function
' '           Text
'"'           Literal.String
'w_'          Literal.String
'"'           Literal.String
')'           Punctuation
'\n\t\t     ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'to'          Name.Variable
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'from'        Name.Variable
' '           Text
'to'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'find-tag-default' Name.Variable
' '           Text
'('           Punctuation
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Determine default tag to search for, based on text at point.\nIf there is no plausible default, return nil.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'bounds'      Name.Variable
' '           Text
'('           Punctuation
'find-tag-default-bounds' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'bounds'      Name.Variable
'\n      '    Text
'('           Punctuation
'buffer-substring-no-properties' Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'bounds'      Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'bounds'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'find-tag-default-as-regexp' Name.Variable
' '           Text
'('           Punctuation
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return regexp that matches the default tag at point.\nIf there is no tag at point, return nil.\n\nWhen in a major mode that does not provide its own\n' Literal.String

"`find-tag-default-function'" Literal.String.Symbol
', return a regexp that matches the\nsymbol at point exactly.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'tag'         Name.Variable
' '           Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'find-tag-default-function' Name.Variable
'\n\t\t\t  '  Text
'('           Punctuation
'get'         Name.Function
' '           Text
'major-mode'  Name.Variable
' '           Text
"'find-tag-default-function" Literal.String.Symbol
')'           Punctuation
'\n\t\t\t  '  Text
"'find-tag-default" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'tag'         Name.Variable
' '           Text
'('           Punctuation
'regexp-quote' Name.Function
' '           Text
'tag'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'find-tag-default-as-symbol-regexp' Name.Variable
' '           Text
'('           Punctuation
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return regexp that matches the default tag at point as symbol.\nIf there is no tag at point, return nil.\n\nWhen in a major mode that does not provide its own\n' Literal.String

"`find-tag-default-function'" Literal.String.Symbol
', return a regexp that matches the\nsymbol at point exactly.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'tag-regexp'  Name.Variable
' '           Text
'('           Punctuation
'find-tag-default-as-regexp' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'tag-regexp'  Name.Variable
'\n\t     '   Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'find-tag-default-function' Name.Variable
'\n\t\t     ' Text
'('           Punctuation
'get'         Name.Function
' '           Text
'major-mode'  Name.Variable
' '           Text
"'find-tag-default-function" Literal.String.Symbol
')'           Punctuation
'\n\t\t     ' Text
"'find-tag-default" Literal.String.Symbol
')'           Punctuation
'\n\t\t '     Text
"'find-tag-default" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'format'      Name.Function
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'_<%s'        Literal.String
'\\\\'        Literal.String
'_>'          Literal.String
'"'           Literal.String
' '           Text
'tag-regexp'  Name.Variable
')'           Punctuation
'\n      '    Text
'tag-regexp'  Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'play-sound'  Name.Variable
' '           Text
'('           Punctuation
'sound'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'SOUND is a list of the form ' Literal.String
'`'           Literal.String
"(sound KEYWORD VALUE...)'.\nThe following keywords are recognized:\n\n  :file FILE - read sound data from FILE.  If FILE isn't an\nabsolute file name, it is searched in " Literal.String
"`data-directory'" Literal.String.Symbol
".\n\n  :data DATA - read sound data from string DATA.\n\nExactly one of :file or :data must be present.\n\n  :volume VOL - set volume to VOL.  VOL must an integer in the\nrange 0..100 or a float in the range 0..1.0.  If not specified,\ndon't change the volume setting of the sound device.\n\n  :device DEVICE - play sound on DEVICE.  If not specified,\na system-dependent default device name is used.\n\nNote: :data and :device are currently not supported on Windows." Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'fboundp'     Name.Function
' '           Text
"'play-sound-internal" Literal.String.Symbol
')'           Punctuation
'\n      '    Text
'('           Punctuation
'play-sound-internal' Name.Function
' '           Text
'sound'       Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'error'       Name.Exception
' '           Text
'"'           Literal.String
'This Emacs binary lacks sound support' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'declare-function' Name.Builtin
' '           Text
'w32-shell-dos-semantics' Name.Variable
' '           Text
'"'           Literal.String
'w32-fns'     Literal.String
'"'           Literal.String
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'shell-quote-argument' Name.Variable
' '           Text
'('           Punctuation
'argument'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Quote ARGUMENT for passing as argument to an inferior shell.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'cond'        Keyword
'\n   '       Text
'('           Punctuation
'('           Punctuation
'eq'          Name.Function
' '           Text
'system-type' Name.Variable
' '           Text
"'ms-dos"     Literal.String.Symbol
')'           Punctuation
'\n    '      Text
';; Quote using double quotes, but escape any existing quotes in' Comment.Single
'\n    '      Text
';; the argument with backslashes.' Comment.Single
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'result'      Name.Variable
' '           Text
'"'           Literal.String
'"'           Literal.String
')'           Punctuation
'\n          ' Text
'('           Punctuation
'start'       Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n          ' Text
'end'         Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'"'           Literal.String
'[^'          Literal.String
'\\"'         Literal.String
']'           Literal.String
'"'           Literal.String
' '           Text
'argument'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n              ' Text
'('           Punctuation
'<'           Name.Function
' '           Text
'('           Punctuation
'match-end'   Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'argument'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n          ' Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'"'           Literal.String
'['           Literal.String
'\\"'         Literal.String
']'           Literal.String
'"'           Literal.String
' '           Text
'argument'    Name.Variable
' '           Text
'start'       Name.Variable
')'           Punctuation
'\n            ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'end'         Name.Variable
' '           Text
'('           Punctuation
'match-beginning' Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n                  ' Text
'result'      Name.Variable
' '           Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'result'      Name.Variable
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'argument'    Name.Variable
' '           Text
'start'       Name.Variable
' '           Text
'end'         Name.Variable
')'           Punctuation
'\n                                 ' Text
'"'           Literal.String
'\\\\'        Literal.String
'"'           Literal.String
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'argument'    Name.Variable
' '           Text
'end'         Name.Variable
' '           Text
'('           Punctuation
'1+'          Name.Function
' '           Text
'end'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                  ' Text
'start'       Name.Variable
' '           Text
'('           Punctuation
'1+'          Name.Function
' '           Text
'end'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'"'           Literal.String
'\\"'         Literal.String
'"'           Literal.String
' '           Text
'result'      Name.Variable
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'argument'    Name.Variable
' '           Text
'start'       Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'\\"'         Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n   '     Text
'('           Punctuation
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'system-type' Name.Variable
' '           Text
"'windows-nt" Literal.String.Symbol
')'           Punctuation
' '           Text
'('           Punctuation
'w32-shell-dos-semantics' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n    '    Text
';; First, quote argument so that CommandLineToArgvW will' Comment.Single
'\n    '      Text
';; understand it.  See' Comment.Single
'\n    '      Text
';; http://msdn.microsoft.com/en-us/library/17w5ykft%28v=vs.85%29.aspx' Comment.Single
'\n    '      Text
';; After we perform that level of quoting, escape shell' Comment.Single
'\n    '      Text
";; metacharacters so that cmd won't mangle our argument.  If the" Comment.Single
'\n    '      Text
';; argument contains no double quote characters, we can just' Comment.Single
'\n    '      Text
';; surround it with double quotes.  Otherwise, we need to prefix' Comment.Single
'\n    '      Text
';; each shell metacharacter with a caret.' Comment.Single
'\n\n    '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'argument'    Name.Variable
'\n          ' Text
';; escape backslashes at end of string' Comment.Single
'\n          ' Text
'('           Punctuation
'replace-regexp-in-string' Name.Variable
'\n           ' Text
'"'           Literal.String
'\\\\'        Literal.String
'('           Literal.String
'\\\\'        Literal.String
'\\\\'        Literal.String
'*'           Literal.String
'\\\\'        Literal.String
')$'          Literal.String
'"'           Literal.String
'\n           ' Text
'"'           Literal.String
'\\\\'        Literal.String
'1'           Literal.String
'\\\\'        Literal.String
'1'           Literal.String
'"'           Literal.String
'\n           ' Text
';; escape backslashes and quotes in string body' Comment.Single
'\n           ' Text
'('           Punctuation
'replace-regexp-in-string' Name.Variable
'\n            ' Text
'"'           Literal.String
'\\\\'        Literal.String
'('           Literal.String
'\\\\'        Literal.String
'\\\\'        Literal.String
'*'           Literal.String
'\\\\'        Literal.String
')'           Literal.String
'\\"'         Literal.String
'"'           Literal.String
'\n            ' Text
'"'           Literal.String
'\\\\'        Literal.String
'1'           Literal.String
'\\\\'        Literal.String
'1'           Literal.String
'\\\\'        Literal.String
'\\\\'        Literal.String
'\\"'         Literal.String
'"'           Literal.String
'\n            ' Text
'argument'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n    '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'"'           Literal.String
'[%!'         Literal.String
'\\"'         Literal.String
']'           Literal.String
'"'           Literal.String
' '           Text
'argument'    Name.Variable
')'           Punctuation
'\n        '  Text
'('           Punctuation
'concat'      Name.Function
'\n         ' Text
'"'           Literal.String
'^'           Literal.String
'\\"'         Literal.String
'"'           Literal.String
'\n         ' Text
'('           Punctuation
'replace-regexp-in-string' Name.Variable
'\n          ' Text
'"'           Literal.String
'\\\\'        Literal.String
'([%!()'      Literal.String
'\\"'         Literal.String
'<>&|^]'      Literal.String
'\\\\'        Literal.String
')'           Literal.String
'"'           Literal.String
'\n          ' Text
'"'           Literal.String
'^'           Literal.String
'\\\\'        Literal.String
'1'           Literal.String
'"'           Literal.String
'\n          ' Text
'argument'    Name.Variable
')'           Punctuation
'\n         ' Text
'"'           Literal.String
'^'           Literal.String
'\\"'         Literal.String
'"'           Literal.String
')'           Punctuation
'\n      '    Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'"'           Literal.String
'\\"'         Literal.String
'"'           Literal.String
' '           Text
'argument'    Name.Variable
' '           Text
'"'           Literal.String
'\\"'         Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n   '     Text
'('           Punctuation
't'           Name.Constant
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'equal'       Name.Function
' '           Text
'argument'    Name.Variable
' '           Text
'"'           Literal.String
'"'           Literal.String
')'           Punctuation
'\n        '  Text
'"'           Literal.String
"''"          Literal.String
'"'           Literal.String
'\n      '    Text
';; Quote everything except POSIX filename characters.' Comment.Single
'\n      '    Text
';; This should be safe enough even for really weird shells.' Comment.Single
'\n      '    Text
'('           Punctuation
'replace-regexp-in-string' Name.Variable
'\n       '   Text
'"'           Literal.String
'\\n'         Literal.String
'"'           Literal.String
' '           Text
'"'           Literal.String
"'"           Literal.String
'\\n'         Literal.String
"'"           Literal.String
'"'           Literal.String
'\n       '   Text
'('           Punctuation
'replace-regexp-in-string' Name.Variable
' '           Text
'"'           Literal.String
'[^-0-9a-zA-Z_./' Literal.String
'\\n'         Literal.String
']'           Literal.String
'"'           Literal.String
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'\\\\'        Literal.String
'\\\\'        Literal.String
'&'           Literal.String
'"'           Literal.String
' '           Text
'argument'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n   '       Text
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'string-or-null-p' Name.Variable
' '           Text
'('           Punctuation
'object'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return t if OBJECT is a string or nil.\nOtherwise, return nil.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'object'      Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'object'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'booleanp'    Name.Variable
' '           Text
'('           Punctuation
'object'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return t if OBJECT is one of the two canonical boolean values: t or nil.\nOtherwise, return nil.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'object'      Name.Variable
' '           Text
"'"           Operator
'('           Punctuation
'nil'         Name.Constant
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'special-form-p' Name.Variable
' '           Text
'('           Punctuation
'object'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Non-nil if and only if OBJECT is a special form.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'symbolp'     Name.Function
' '           Text
'object'      Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'fboundp'     Name.Function
' '           Text
'object'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'object'      Name.Variable
' '           Text
'('           Punctuation
'indirect-function' Name.Function
' '           Text
'object'      Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'subrp'       Name.Function
' '           Text
'object'      Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'('           Punctuation
'subr-arity'  Keyword
' '           Text
'object'      Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
"'unevalled"  Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'macrop'      Name.Variable
' '           Text
'('           Punctuation
'object'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Non-nil if and only if OBJECT is a macro.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'def'         Name.Variable
' '           Text
'('           Punctuation
'indirect-function' Name.Function
' '           Text
'object'      Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'def'         Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
"'macro"      Literal.String.Symbol
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'def'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n          ' Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'autoloadp'   Name.Variable
' '           Text
'def'         Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'4'           Literal.Number.Integer
' '           Text
'def'         Name.Variable
')'           Punctuation
' '           Text
"'"           Operator
'('           Punctuation
'macro'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'field-at-pos' Name.Variable
' '           Text
'('           Punctuation
'pos'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the field at position POS, taking stickiness etc into account.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'raw-field'   Name.Variable
' '           Text
'('           Punctuation
'get-char-property' Name.Function
' '           Text
'('           Punctuation
'field-beginning' Name.Function
' '           Text
'pos'         Name.Variable
')'           Punctuation
' '           Text
"'field"      Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'raw-field'   Name.Variable
' '           Text
"'boundary"   Literal.String.Symbol
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'get-char-property' Name.Function
' '           Text
'('           Punctuation
'1-'          Name.Function
' '           Text
'('           Punctuation
'field-end'   Name.Function
' '           Text
'pos'         Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
"'field"      Literal.String.Symbol
')'           Punctuation
'\n      '    Text
'raw-field'   Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'sha1'        Name.Variable
' '           Text
'('           Punctuation
'object'      Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'start'       Name.Variable
' '           Text
'end'         Name.Variable
' '           Text
'binary'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the SHA1 (Secure Hash Algorithm) of an OBJECT.\nOBJECT is either a string or a buffer.  Optional arguments START and\nEND are character positions specifying which portion of OBJECT for\ncomputing the hash.  If BINARY is non-nil, return a string in binary\nform.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'secure-hash' Name.Function
' '           Text
"'sha1"       Literal.String.Symbol
' '           Text
'object'      Name.Variable
' '           Text
'start'       Name.Variable
' '           Text
'end'         Name.Variable
' '           Text
'binary'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'function-get' Name.Variable
' '           Text
'('           Punctuation
'f'           Name.Variable
' '           Text
'prop'        Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'autoload'    Name.Function
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the value of property PROP of function F.\nIf AUTOLOAD is non-nil and F is autoloaded, try to autoload it\nin the hope that it will set PROP.  If AUTOLOAD is ' Literal.String
"`macro'"     Literal.String.Symbol
", only do it\nif it's an autoloaded macro." Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'val'         Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'symbolp'     Name.Function
' '           Text
'f'           Name.Variable
')'           Punctuation
'\n                ' Text
'('           Punctuation
'null'        Name.Function
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'val'         Name.Variable
' '           Text
'('           Punctuation
'get'         Name.Function
' '           Text
'f'           Name.Variable
' '           Text
'prop'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text
'('           Punctuation
'fboundp'     Name.Function
' '           Text
'f'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'fundef'      Name.Variable
' '           Text
'('           Punctuation
'symbol-function' Name.Function
' '           Text
'f'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'autoload'    Name.Function
' '           Text
'('           Punctuation
'autoloadp'   Name.Variable
' '           Text
'fundef'      Name.Variable
')'           Punctuation
'\n                 ' Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'equal'       Name.Function
' '           Text
'fundef'      Name.Variable
'\n                             ' Text
'('           Punctuation
'autoload-do-load' Name.Function
' '           Text
'fundef'      Name.Variable
' '           Text
'f'           Name.Variable
'\n                                               ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'autoload'    Name.Function
' '           Text
"'macro"      Literal.String.Symbol
')'           Punctuation
'\n                                                   ' Text
"'macro"      Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n            ' Text
'nil'         Name.Constant
'                         ' Text
";Re-try `get' on the same `f'." Comment.Single
'\n          ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'f'           Name.Variable
' '           Text
'fundef'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'val'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\x0c\n'    Text

';;;; Support for yanking and text properties.' Comment.Single
'\n'          Text

';; Why here in subr.el rather than in simple.el?  --Stef' Comment.Single
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'yank-handled-properties' Name.Variable
')'           Punctuation
'\n'          Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'yank-excluded-properties' Name.Variable
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'remove-yank-excluded-properties' Name.Variable
' '           Text
'('           Punctuation
'start'       Name.Variable
' '           Text
'end'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Process text properties between START and END, inserted for a ' Literal.String
"`yank'"      Literal.String.Symbol
'.\nPerform the handling specified by ' Literal.String
"`yank-handled-properties'" Literal.String.Symbol
', then\nremove properties specified by ' Literal.String
"`yank-excluded-properties'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'inhibit-read-only' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'dolist'      Name.Builtin
' '           Text
'('           Punctuation
'handler'     Name.Variable
' '           Text
'yank-handled-properties' Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'prop'        Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'handler'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'fun'         Name.Variable
'  '          Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'handler'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'run-start'   Name.Variable
' '           Text
'start'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'run-start'   Name.Variable
' '           Text
'end'         Name.Variable
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'value'       Name.Variable
' '           Text
'('           Punctuation
'get-text-property' Name.Function
' '           Text
'run-start'   Name.Variable
' '           Text
'prop'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'run-end'     Name.Variable
' '           Text
'('           Punctuation
'next-single-property-change' Name.Function
'\n\t\t\t  '  Text
'run-start'   Name.Variable
' '           Text
'prop'        Name.Variable
' '           Text
'nil'         Name.Constant
' '           Text
'end'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'fun'         Name.Variable
' '           Text
'value'       Name.Variable
' '           Text
'run-start'   Name.Variable
' '           Text
'run-end'     Name.Variable
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'run-start'   Name.Variable
' '           Text
'run-end'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'yank-excluded-properties' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'set-text-properties' Name.Function
' '           Text
'start'       Name.Variable
' '           Text
'end'         Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n      '    Text
'('           Punctuation
'remove-list-of-text-properties' Name.Function
' '           Text
'start'       Name.Variable
' '           Text
'end'         Name.Variable
' '           Text
'yank-excluded-properties' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'yank-undo-function' Name.Variable
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'insert-for-yank' Name.Variable
' '           Text
'('           Punctuation
'string'      Name.Function
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Call '       Literal.String
"`insert-for-yank-1'" Literal.String.Symbol
' repetitively for each ' Literal.String
"`yank-handler'" Literal.String.Symbol
' segment.\n\nSee ' Literal.String
"`insert-for-yank-1'" Literal.String.Symbol
' for more details.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'to'          Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'to'          Name.Variable
' '           Text
'('           Punctuation
'next-single-property-change' Name.Function
' '           Text
'0'           Literal.Number.Integer
' '           Text
"'yank-handler" Literal.String.Symbol
' '           Text
'string'      Name.Function
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'insert-for-yank-1' Name.Variable
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'string'      Name.Function
' '           Text
'0'           Literal.Number.Integer
' '           Text
'to'          Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'string'      Name.Function
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'string'      Name.Function
' '           Text
'to'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'insert-for-yank-1' Name.Variable
' '           Text
'string'      Name.Function
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'insert-for-yank-1' Name.Variable
' '           Text
'('           Punctuation
'string'      Name.Function
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Insert STRING at point for the ' Literal.String
"`yank'"      Literal.String.Symbol
' command.\nThis function is like ' Literal.String
"`insert'"    Literal.String.Symbol
', except it honors the variables\n' Literal.String

"`yank-handled-properties'" Literal.String.Symbol
' and '       Literal.String
"`yank-excluded-properties'" Literal.String.Symbol
', and the\n' Literal.String

"`yank-handler'" Literal.String.Symbol
' text property.\n\nProperties listed in ' Literal.String
"`yank-handled-properties'" Literal.String.Symbol
' are processed,\nthen those listed in ' Literal.String
"`yank-excluded-properties'" Literal.String.Symbol
' are discarded.\n\nIf STRING has a non-nil ' Literal.String
"`yank-handler'" Literal.String.Symbol
' property on its first\ncharacter, the normal insert behavior is altered.  The value of\nthe ' Literal.String
"`yank-handler'" Literal.String.Symbol
' property must be a list of one to four\nelements, of the form (FUNCTION PARAM NOEXCLUDE UNDO).\nFUNCTION, if non-nil, should be a function of one argument, an\n object to insert; it is called instead of ' Literal.String
"`insert'"    Literal.String.Symbol
'.\nPARAM, if present and non-nil, replaces STRING as the argument to\n FUNCTION or ' Literal.String
"`insert'"    Literal.String.Symbol
'; e.g. if FUNCTION is ' Literal.String
"`yank-rectangle'" Literal.String.Symbol
', PARAM\n may be a list of strings to insert as a rectangle.\nIf NOEXCLUDE is present and non-nil, the normal removal of\n ' Literal.String
"`yank-excluded-properties'" Literal.String.Symbol
' is not performed; instead FUNCTION is\n responsible for the removal.  This may be necessary if FUNCTION\n adjusts point before or after inserting the object.\nUNDO, if present and non-nil, should be a function to be called\n by ' Literal.String
"`yank-pop'"  Literal.String.Symbol
' to undo the insertion of the current object.  It is\n given two arguments, the start and end of the region.  FUNCTION\n may set ' Literal.String
"`yank-undo-function'" Literal.String.Symbol
' to override UNDO.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'handler'     Name.Variable
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'string'      Name.Function
')'           Punctuation
'\n\t\t       ' Text
'('           Punctuation
'get-text-property' Name.Function
' '           Text
'0'           Literal.Number.Integer
' '           Text
"'yank-handler" Literal.String.Symbol
' '           Text
'string'      Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'param'       Name.Variable
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'1'           Literal.Number.Integer
' '           Text
'handler'     Name.Variable
')'           Punctuation
' '           Text
'string'      Name.Function
')'           Punctuation
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'opoint'      Name.Variable
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'inhibit-read-only' Name.Variable
' '           Text
'inhibit-read-only' Name.Variable
')'           Punctuation
'\n\t '       Text
'end'         Name.Variable
')'           Punctuation
'\n\n    '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'yank-undo-function' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'0'           Literal.Number.Integer
' '           Text
'handler'     Name.Variable
')'           Punctuation
' '           Text
'; FUNCTION'  Comment.Single
'\n\t'        Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'handler'     Name.Variable
')'           Punctuation
' '           Text
'param'       Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'insert'      Name.Function
' '           Text
'param'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'end'         Name.Variable
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
')'           Punctuation
'\n\n    '    Text
';; Prevent read-only properties from interfering with the' Comment.Single
'\n    '      Text
';; following text property changes.' Comment.Single
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'inhibit-read-only' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\n    '    Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'2'           Literal.Number.Integer
' '           Text
'handler'     Name.Variable
')'           Punctuation
' '           Text
'; NOEXCLUDE' Comment.Single
'\n      '    Text
'('           Punctuation
'remove-yank-excluded-properties' Name.Variable
' '           Text
'opoint'      Name.Variable
' '           Text
'end'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n    '    Text
';; If last inserted char has properties, mark them as rear-nonsticky.' Comment.Single
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'>'           Name.Function
' '           Text
'end'         Name.Variable
' '           Text
'opoint'      Name.Variable
')'           Punctuation
'\n\t     '   Text
'('           Punctuation
'text-properties-at' Name.Function
' '           Text
'('           Punctuation
'1-'          Name.Function
' '           Text
'end'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'put-text-property' Name.Function
' '           Text
'('           Punctuation
'1-'          Name.Function
' '           Text
'end'         Name.Variable
')'           Punctuation
' '           Text
'end'         Name.Variable
' '           Text
"'rear-nonsticky" Literal.String.Symbol
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n\n    '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'yank-undo-function' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\t\t   '     Text
'; not set by FUNCTION' Comment.Single
'\n\t'        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'yank-undo-function' Name.Variable
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'3'           Literal.Number.Integer
' '           Text
'handler'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
' '           Text
'; UNDO'      Comment.Single
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'4'           Literal.Number.Integer
' '           Text
'handler'     Name.Variable
')'           Punctuation
'\t\t\t\t   ' Text
'; COMMAND'   Comment.Single
'\n\t'        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'this-command' Name.Variable
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'4'           Literal.Number.Integer
' '           Text
'handler'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'insert-buffer-substring-no-properties' Name.Variable
' '           Text
'('           Punctuation
'buffer'      Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'start'       Name.Variable
' '           Text
'end'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Insert before point a substring of BUFFER, without text properties.\nBUFFER may be a buffer or a buffer name.\nArguments START and END are character positions specifying the substring.\nThey default to the values of (point-min) and (point-max) in BUFFER.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'opoint'      Name.Variable
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'insert-buffer-substring' Name.Function
' '           Text
'buffer'      Name.Variable
' '           Text
'start'       Name.Variable
' '           Text
'end'         Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'inhibit-read-only' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'set-text-properties' Name.Function
' '           Text
'opoint'      Name.Variable
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'insert-buffer-substring-as-yank' Name.Variable
' '           Text
'('           Punctuation
'buffer'      Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'start'       Name.Variable
' '           Text
'end'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Insert before point a part of BUFFER, stripping some text properties.\nBUFFER may be a buffer or a buffer name.\nArguments START and END are character positions specifying the substring.\nThey default to the values of (point-min) and (point-max) in BUFFER.\nBefore insertion, process text properties according to\n' Literal.String

"`yank-handled-properties'" Literal.String.Symbol
' and '       Literal.String
"`yank-excluded-properties'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
';; Since the buffer text should not normally have yank-handler properties,' Comment.Single
'\n  '        Text
';; there is no need to handle them here.' Comment.Single
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'opoint'      Name.Variable
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'insert-buffer-substring' Name.Function
' '           Text
'buffer'      Name.Variable
' '           Text
'start'       Name.Variable
' '           Text
'end'         Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'remove-yank-excluded-properties' Name.Variable
' '           Text
'opoint'      Name.Variable
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'yank-handle-font-lock-face-property' Name.Variable
' '           Text
'('           Punctuation
'face'        Name.Variable
' '           Text
'start'       Name.Variable
' '           Text
'end'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'If '         Literal.String
"`font-lock-defaults'" Literal.String.Symbol
' is nil, apply FACE as a ' Literal.String
"`face'"      Literal.String.Symbol
' property.\nSTART and END denote the start and end of the text to act on.\nDo nothing if FACE is nil.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'and'         Keyword
' '           Text
'face'        Name.Variable
'\n       '   Text
'('           Punctuation
'null'        Name.Function
' '           Text
'font-lock-defaults' Name.Variable
')'           Punctuation
'\n       '   Text
'('           Punctuation
'put-text-property' Name.Function
' '           Text
'start'       Name.Variable
' '           Text
'end'         Name.Variable
' '           Text
"'face"       Literal.String.Symbol
' '           Text
'face'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

";; This removes `mouse-face' properties in *Help* buffer buttons:" Comment.Single
'\n'          Text

';; http://lists.gnu.org/archive/html/emacs-devel/2002-04/msg00648.html' Comment.Single
'\n'          Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'yank-handle-category-property' Name.Variable
' '           Text
'('           Punctuation
'category'    Name.Variable
' '           Text
'start'       Name.Variable
' '           Text
'end'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Apply property category CATEGORY's properties between START and END." Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'category'    Name.Variable
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'start2'      Name.Variable
' '           Text
'start'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'start2'      Name.Variable
' '           Text
'end'         Name.Variable
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'end2'        Name.Variable
'     '       Text
'('           Punctuation
'next-property-change' Name.Function
' '           Text
'start2'      Name.Variable
' '           Text
'nil'         Name.Constant
' '           Text
'end'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'original'    Name.Variable
' '           Text
'('           Punctuation
'text-properties-at' Name.Function
' '           Text
'start2'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'set-text-properties' Name.Function
' '           Text
'start2'      Name.Variable
' '           Text
'end2'        Name.Variable
' '           Text
'('           Punctuation
'symbol-plist' Name.Function
' '           Text
'category'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'add-text-properties' Name.Function
' '           Text
'start2'      Name.Variable
' '           Text
'end2'        Name.Variable
' '           Text
'original'    Name.Variable
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'start2'      Name.Variable
' '           Text
'end2'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\x0c\n'  Text

';;;; Synchronous shell commands.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'start-process-shell-command' Name.Variable
' '           Text
'('           Punctuation
'name'        Name.Variable
' '           Text
'buffer'      Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'args'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Start a program in a subprocess.  Return the process object for it.\nNAME is name for process.  It is modified if necessary to make it unique.\nBUFFER is the buffer (or buffer name) to associate with the process.\n Process output goes at end of that buffer, unless you specify\n an output stream or filter function to handle the output.\n BUFFER may be also nil, meaning that this process is not associated\n with any buffer\nCOMMAND is the shell command to run.\n\nAn old calling convention accepted any number of arguments after COMMAND,\nwhich were just concatenated to COMMAND.  This is still supported but strongly\ndiscouraged.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'advertised-calling-convention' Name.Variable
' '           Text
'('           Punctuation
'name'        Name.Variable
' '           Text
'buffer'      Name.Variable
' '           Text
'command'     Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'23.1'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
";; We used to use `exec' to replace the shell with the command," Comment.Single
'\n  '        Text
';; but that failed to handle (...) and semicolon, etc.' Comment.Single
'\n  '        Text
'('           Punctuation
'start-process' Name.Function
' '           Text
'name'        Name.Variable
' '           Text
'buffer'      Name.Variable
' '           Text
'shell-file-name' Name.Variable
' '           Text
'shell-command-switch' Name.Variable
'\n\t\t '     Text
'('           Punctuation
'mapconcat'   Name.Function
' '           Text
"'identity"   Literal.String.Symbol
' '           Text
'args'        Name.Variable
' '           Text
'"'           Literal.String
' '           Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'start-file-process-shell-command' Name.Variable
' '           Text
'('           Punctuation
'name'        Name.Variable
' '           Text
'buffer'      Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'args'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Start a program in a subprocess.  Return the process object for it.\nSimilar to ' Literal.String
"`start-process-shell-command'" Literal.String.Symbol
', but calls ' Literal.String
"`start-file-process'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'advertised-calling-convention' Name.Variable
' '           Text
'('           Punctuation
'name'        Name.Variable
' '           Text
'buffer'      Name.Variable
' '           Text
'command'     Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'23.1'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'start-file-process' Name.Variable
'\n   '       Text
'name'        Name.Variable
' '           Text
'buffer'      Name.Variable
'\n   '       Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'file-remote-p' Name.Variable
' '           Text
'default-directory' Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'/bin/sh'     Literal.String
'"'           Literal.String
' '           Text
'shell-file-name' Name.Variable
')'           Punctuation
'\n   '       Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'file-remote-p' Name.Variable
' '           Text
'default-directory' Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'-c'          Literal.String
'"'           Literal.String
' '           Text
'shell-command-switch' Name.Variable
')'           Punctuation
'\n   '       Text
'('           Punctuation
'mapconcat'   Name.Function
' '           Text
"'identity"   Literal.String.Symbol
' '           Text
'args'        Name.Variable
' '           Text
'"'           Literal.String
' '           Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'call-process-shell-command' Name.Variable
' '           Text
'('           Punctuation
'command'     Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'infile'      Name.Variable
' '           Text
'buffer'      Name.Variable
' '           Text
'display'     Name.Variable
'\n\t\t\t\t\t   ' Text
'&rest'       Keyword.Pseudo
' '           Text
'args'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Execute the shell command COMMAND synchronously in separate process.\nThe remaining arguments are optional.\nThe program's input comes from file INFILE (nil means " Literal.String
"`/dev/null'" Literal.String.Symbol
").\nInsert output in BUFFER before point; t means current buffer;\n nil for BUFFER means discard it; 0 means discard and don't wait.\nBUFFER can also have the form (REAL-BUFFER STDERR-FILE); in that case,\nREAL-BUFFER says what to do with standard output, as above,\nwhile STDERR-FILE says what to do with standard error in the child.\nSTDERR-FILE may be nil (discard standard error output),\nt (mix it with ordinary output), or a file name string.\n\nFourth arg DISPLAY non-nil means redisplay buffer as output is inserted.\nWildcards and redirection are handled as usual in the shell.\n\nIf BUFFER is 0, " Literal.String
"`call-process-shell-command'" Literal.String.Symbol
' returns immediately with value nil.\nOtherwise it waits for COMMAND to terminate and returns a numeric exit\nstatus or a signal description string.\nIf you quit, the process is killed with SIGINT, or SIGKILL if you quit again.\n\nAn old calling convention accepted any number of arguments after DISPLAY,\nwhich were just concatenated to COMMAND.  This is still supported but strongly\ndiscouraged.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'advertised-calling-convention' Name.Variable
'\n            ' Text
'('           Punctuation
'command'     Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'infile'      Name.Variable
' '           Text
'buffer'      Name.Variable
' '           Text
'display'     Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'24.5'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
";; We used to use `exec' to replace the shell with the command," Comment.Single
'\n  '        Text
';; but that failed to handle (...) and semicolon, etc.' Comment.Single
'\n  '        Text
'('           Punctuation
'call-process' Name.Function
' '           Text
'shell-file-name' Name.Variable
'\n\t\t'      Text
'infile'      Name.Variable
' '           Text
'buffer'      Name.Variable
' '           Text
'display'     Name.Variable
'\n\t\t'      Text
'shell-command-switch' Name.Variable
'\n\t\t'      Text
'('           Punctuation
'mapconcat'   Name.Function
' '           Text
"'identity"   Literal.String.Symbol
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'command'     Name.Variable
' '           Text
'args'        Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
' '           Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'process-file-shell-command' Name.Variable
' '           Text
'('           Punctuation
'command'     Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'infile'      Name.Variable
' '           Text
'buffer'      Name.Variable
' '           Text
'display'     Name.Variable
'\n\t\t\t\t\t   ' Text
'&rest'       Keyword.Pseudo
' '           Text
'args'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Process files synchronously in a separate process.\nSimilar to ' Literal.String
"`call-process-shell-command'" Literal.String.Symbol
', but calls ' Literal.String
"`process-file'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'advertised-calling-convention' Name.Variable
'\n            ' Text
'('           Punctuation
'command'     Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'infile'      Name.Variable
' '           Text
'buffer'      Name.Variable
' '           Text
'display'     Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'24.5'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'process-file' Name.Variable
'\n   '       Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'file-remote-p' Name.Variable
' '           Text
'default-directory' Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'/bin/sh'     Literal.String
'"'           Literal.String
' '           Text
'shell-file-name' Name.Variable
')'           Punctuation
'\n   '       Text
'infile'      Name.Variable
' '           Text
'buffer'      Name.Variable
' '           Text
'display'     Name.Variable
'\n   '       Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'file-remote-p' Name.Variable
' '           Text
'default-directory' Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'-c'          Literal.String
'"'           Literal.String
' '           Text
'shell-command-switch' Name.Variable
')'           Punctuation
'\n   '       Text
'('           Punctuation
'mapconcat'   Name.Function
' '           Text
"'identity"   Literal.String.Symbol
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'command'     Name.Variable
' '           Text
'args'        Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
' '           Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\x0c\n'    Text

';;;; Lisp macros to do various things temporarily.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'track-mouse' Name.Builtin
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Evaluate BODY with mouse movement events enabled.\nWithin a ' Literal.String
"`track-mouse'" Literal.String.Symbol
' form, mouse motion generates input events that\n you can read with ' Literal.String
"`read-event'" Literal.String.Symbol
'.\nNormally, mouse motion is ignored.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n  '        Text
'`'           Operator
'('           Punctuation
'internal--track-mouse' Name.Function
' '           Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
')'           Punctuation
' '           Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'with-current-buffer' Name.Builtin
' '           Text
'('           Punctuation
'buffer-or-name' Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Execute the forms in BODY with BUFFER-OR-NAME temporarily current.\nBUFFER-OR-NAME must be a buffer or the name of an existing buffer.\nThe value returned is the value of the last form in BODY.  See\nalso ' Literal.String
"`with-temp-buffer'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'`'           Operator
'('           Punctuation
'save-current-buffer' Keyword
'\n     '     Text
'('           Punctuation
'set-buffer'  Name.Function
' '           Text
','           Operator
'buffer-or-name' Name.Variable
')'           Punctuation
'\n     '     Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'internal--before-with-selected-window' Name.Variable
' '           Text
'('           Punctuation
'window'      Name.Variable
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'other-frame' Name.Variable
' '           Text
'('           Punctuation
'window-frame' Name.Function
' '           Text
'window'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'list'        Name.Function
' '           Text
'window'      Name.Variable
' '           Text
'('           Punctuation
'selected-window' Name.Function
')'           Punctuation
'\n          ' Text
';; Selecting a window on another frame also changes that' Comment.Single
'\n          ' Text
";; frame's frame-selected-window.  We must save&restore it." Comment.Single
'\n          ' Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'selected-frame' Name.Function
')'           Punctuation
' '           Text
'other-frame' Name.Variable
')'           Punctuation
'\n            ' Text
'('           Punctuation
'frame-selected-window' Name.Function
' '           Text
'other-frame' Name.Variable
')'           Punctuation
')'           Punctuation
'\n          ' Text
';; Also remember the top-frame if on ttys.' Comment.Single
'\n          ' Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'selected-frame' Name.Function
')'           Punctuation
' '           Text
'other-frame' Name.Variable
')'           Punctuation
'\n            ' Text
'('           Punctuation
'tty-top-frame' Name.Function
' '           Text
'other-frame' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'internal--after-with-selected-window' Name.Variable
' '           Text
'('           Punctuation
'state'       Name.Variable
')'           Punctuation
'\n  '        Text
';; First reset frame-selected-window.' Comment.Single
'\n  '        Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'window-live-p' Name.Function
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'2'           Literal.Number.Integer
' '           Text
'state'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
";; We don't use set-frame-selected-window because it does not" Comment.Single
'\n    '      Text
";; pass the `norecord' argument to Fselect_window." Comment.Single
'\n    '      Text
'('           Punctuation
'select-window' Name.Function
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'2'           Literal.Number.Integer
' '           Text
'state'       Name.Variable
')'           Punctuation
' '           Text
"'norecord"   Literal.String.Symbol
')'           Punctuation
'\n    '      Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'frame-live-p' Name.Function
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'3'           Literal.Number.Integer
' '           Text
'state'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n         ' Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'tty-top-frame' Name.Function
')'           Punctuation
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'3'           Literal.Number.Integer
' '           Text
'state'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n         ' Text
'('           Punctuation
'select-frame' Name.Function
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'3'           Literal.Number.Integer
' '           Text
'state'       Name.Variable
')'           Punctuation
' '           Text
"'norecord"   Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
';; Then reset the actual selected-window.' Comment.Single
'\n  '        Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'window-live-p' Name.Function
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'1'           Literal.Number.Integer
' '           Text
'state'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'select-window' Name.Function
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'1'           Literal.Number.Integer
' '           Text
'state'       Name.Variable
')'           Punctuation
' '           Text
"'norecord"   Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'with-selected-window' Name.Builtin
' '           Text
'('           Punctuation
'window'      Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Execute the forms in BODY with WINDOW as the selected window.\nThe value returned is the value of the last form in BODY.\n\nThis macro saves and restores the selected window, as well as the\nselected window of each frame.  It does not change the order of\nrecently selected windows.  If the previously selected window of\nsome frame is no longer live at the end of BODY, that frame's\nselected window is left alone.  If the selected window is no\nlonger live, then whatever window is selected at the end of BODY\nremains selected.\n\nThis macro uses " Literal.String
"`save-current-buffer'" Literal.String.Symbol
' to save and restore the\ncurrent buffer, since otherwise its normal operation could\npotentially make a different buffer current.  It does not alter\nthe buffer list ordering.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'`'           Operator
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'save-selected-window--state' Name.Variable
'\n          ' Text
'('           Punctuation
'internal--before-with-selected-window' Name.Variable
' '           Text
','           Operator
'window'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n     '     Text
'('           Punctuation
'save-current-buffer' Keyword
'\n       '   Text
'('           Punctuation
'unwind-protect' Keyword
'\n           ' Text
'('           Punctuation
'progn'       Keyword
' '           Text
'('           Punctuation
'select-window' Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'save-selected-window--state' Name.Variable
')'           Punctuation
' '           Text
"'norecord"   Literal.String.Symbol
')'           Punctuation
'\n\t\t  '    Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
'\n         ' Text
'('           Punctuation
'internal--after-with-selected-window' Name.Variable
' '           Text
'save-selected-window--state' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'with-selected-frame' Name.Builtin
' '           Text
'('           Punctuation
'frame'       Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Execute the forms in BODY with FRAME as the selected frame.\nThe value returned is the value of the last form in BODY.\n\nThis macro saves and restores the selected frame, and changes the\norder of neither the recently selected windows nor the buffers in\nthe buffer list.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'old-frame'   Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'old-frame'   Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'old-buffer'  Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'old-buffer'  Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'`'           Operator
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'old-frame'   Name.Variable
' '           Text
'('           Punctuation
'selected-frame' Name.Function
')'           Punctuation
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
','           Operator
'old-buffer'  Name.Variable
' '           Text
'('           Punctuation
'current-buffer' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'unwind-protect' Keyword
'\n\t   '     Text
'('           Punctuation
'progn'       Keyword
' '           Text
'('           Punctuation
'select-frame' Name.Function
' '           Text
','           Operator
'frame'       Name.Variable
' '           Text
"'norecord"   Literal.String.Symbol
')'           Punctuation
'\n\t\t  '    Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'frame-live-p' Name.Function
' '           Text
','           Operator
'old-frame'   Name.Variable
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'select-frame' Name.Function
' '           Text
','           Operator
'old-frame'   Name.Variable
' '           Text
"'norecord"   Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'buffer-live-p' Name.Function
' '           Text
','           Operator
'old-buffer'  Name.Variable
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'set-buffer'  Name.Function
' '           Text
','           Operator
'old-buffer'  Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'save-window-excursion' Name.Builtin
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Execute BODY, then restore previous window configuration.\nThis macro saves the window configuration on the selected frame,\nexecutes BODY, then calls ' Literal.String
"`set-window-configuration'" Literal.String.Symbol
' to restore\nthe saved window configuration.  The return value is the last\nform in BODY.  The window configuration is also restored if BODY\nexits nonlocally.\n\nBEWARE: Most uses of this macro introduce bugs.\nE.g. it should not be used to try and prevent some code from opening\na new window, since that window may sometimes appear in another frame,\nin which case ' Literal.String
"`save-window-excursion'" Literal.String.Symbol
' cannot help.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'c'           Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'wconfig'     Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'`'           Operator
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'c'           Name.Variable
' '           Text
'('           Punctuation
'current-window-configuration' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'unwind-protect' Keyword
' '           Text
'('           Punctuation
'progn'       Keyword
' '           Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
'\n         ' Text
'('           Punctuation
'set-window-configuration' Name.Function
' '           Text
','           Operator
'c'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'internal-temp-output-buffer-show' Name.Variable
' '           Text
'('           Punctuation
'buffer'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Internal function for ' Literal.String
"`with-output-to-temp-buffer'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'with-current-buffer' Name.Builtin
' '           Text
'buffer'      Name.Variable
'\n    '      Text
'('           Punctuation
'set-buffer-modified-p' Name.Function
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n    '      Text
'('           Punctuation
'goto-char'   Name.Function
' '           Text
'('           Punctuation
'point-min'   Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n  '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'temp-buffer-show-function' Name.Variable
'\n      '    Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'temp-buffer-show-function' Name.Variable
' '           Text
'buffer'      Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'with-current-buffer' Name.Builtin
' '           Text
'buffer'      Name.Variable
'\n      '    Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'window'      Name.Variable
'\n\t      '  Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'window-combination-limit' Name.Function
'\n\t\t   '   Text
";; When `window-combination-limit' equals" Comment.Single
'\n\t\t   '   Text
";; `temp-buffer' or `temp-buffer-resize' and" Comment.Single
'\n\t\t   '   Text
";; `temp-buffer-resize-mode' is enabled in this" Comment.Single
'\n\t\t   '   Text
';; buffer bind it to t so resizing steals space' Comment.Single
'\n\t\t   '   Text
';; preferably from the window that was split.' Comment.Single
'\n\t\t   '   Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'window-combination-limit' Name.Function
' '           Text
"'temp-buffer" Literal.String.Symbol
')'           Punctuation
'\n\t\t\t   ' Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'window-combination-limit' Name.Function
'\n\t\t\t\t    ' Text
"'temp-buffer-resize" Literal.String.Symbol
')'           Punctuation
'\n\t\t\t\t'  Text
'temp-buffer-resize-mode' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t       ' Text
't'           Name.Constant
'\n\t\t     ' Text
'window-combination-limit' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'display-buffer' Name.Variable
' '           Text
'buffer'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t     '   Text
'('           Punctuation
'frame'       Name.Variable
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'window'      Name.Variable
' '           Text
'('           Punctuation
'window-frame' Name.Function
' '           Text
'window'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'window'      Name.Variable
'\n\t  '      Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'frame'       Name.Variable
' '           Text
'('           Punctuation
'selected-frame' Name.Function
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'make-frame-visible' Name.Function
' '           Text
'frame'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'minibuffer-scroll-window' Name.Variable
' '           Text
'window'      Name.Variable
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'set-window-hscroll' Name.Function
' '           Text
'window'      Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n\t  '      Text
";; Don't try this with NOFORCE non-nil!" Comment.Single
'\n\t  '      Text
'('           Punctuation
'set-window-start' Name.Function
' '           Text
'window'      Name.Variable
' '           Text
'('           Punctuation
'point-min'   Name.Function
')'           Punctuation
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\t  '      Text
';; This should not be necessary.' Comment.Single
'\n\t  '      Text
'('           Punctuation
'set-window-point' Name.Function
' '           Text
'window'      Name.Variable
' '           Text
'('           Punctuation
'point-min'   Name.Function
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
";; Run `temp-buffer-show-hook', with the chosen window selected." Comment.Single
'\n\t  '      Text
'('           Punctuation
'with-selected-window' Name.Builtin
' '           Text
'window'      Name.Variable
'\n\t    '    Text
'('           Punctuation
'run-hooks'   Name.Function
' '           Text
"'temp-buffer-show-hook" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
';; Return nil.' Comment.Single
'\n  '        Text
'nil'         Name.Constant
')'           Punctuation
'\n\n'        Text

';; Doc is very similar to with-temp-buffer-window.' Comment.Single
'\n'          Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'with-output-to-temp-buffer' Name.Builtin
' '           Text
'('           Punctuation
'bufname'     Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Bind '       Literal.String
"`standard-output'" Literal.String.Symbol
' to buffer BUFNAME, eval BODY, then show that buffer.\n\nThis construct makes buffer BUFNAME empty before running BODY.\nIt does not make the buffer current for BODY.\nInstead it binds ' Literal.String
"`standard-output'" Literal.String.Symbol
' to that buffer, so that output\ngenerated with ' Literal.String
"`prin1'"     Literal.String.Symbol
' and similar functions in BODY goes into\nthe buffer.\n\nAt the end of BODY, this marks buffer BUFNAME unmodified and displays\nit in a window, but does not select it.  The normal way to do this is\nby calling ' Literal.String
"`display-buffer'" Literal.String.Symbol
', then running ' Literal.String
"`temp-buffer-show-hook'" Literal.String.Symbol
'.\nHowever, if ' Literal.String
"`temp-buffer-show-function'" Literal.String.Symbol
' is non-nil, it calls that\nfunction instead (and does not run ' Literal.String
"`temp-buffer-show-hook'" Literal.String.Symbol
').  The\nfunction gets one argument, the buffer to display.\n\nThe return value of ' Literal.String
"`with-output-to-temp-buffer'" Literal.String.Symbol
' is the value of the\nlast form in BODY.  If BODY does not finish normally, the buffer\nBUFNAME is not displayed.\n\nThis runs the hook ' Literal.String
"`temp-buffer-setup-hook'" Literal.String.Symbol
' before BODY,\nwith the buffer BUFNAME temporarily current.  It runs the hook\n' Literal.String

"`temp-buffer-show-hook'" Literal.String.Symbol
" after displaying buffer BUFNAME, with that\nbuffer temporarily current, and the window that was used to display it\ntemporarily selected.  But it doesn't run " Literal.String
"`temp-buffer-show-hook'" Literal.String.Symbol
'\nif it uses ' Literal.String
"`temp-buffer-show-function'" Literal.String.Symbol
'.\n\nBy default, the setup hook puts the buffer into Help mode before running BODY.\nIf BODY does not change the major mode, the show hook makes the buffer\nread-only, and scans it for function and variable names to make them into\nclickable cross-references.\n\nSee the related form ' Literal.String
"`with-temp-buffer-window'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'old-dir'     Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'old-dir'     Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'buf'         Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'buf'         Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'`'           Operator
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'old-dir'     Name.Variable
' '           Text
'default-directory' Name.Variable
')'           Punctuation
'\n            ' Text
'('           Punctuation
','           Operator
'buf'         Name.Variable
'\n             ' Text
'('           Punctuation
'with-current-buffer' Name.Builtin
' '           Text
'('           Punctuation
'get-buffer-create' Name.Function
' '           Text
','           Operator
'bufname'     Name.Variable
')'           Punctuation
'\n               ' Text
'('           Punctuation
'prog1'       Keyword
' '           Text
'('           Punctuation
'current-buffer' Name.Function
')'           Punctuation
'\n                 ' Text
'('           Punctuation
'kill-all-local-variables' Name.Function
')'           Punctuation
'\n                 ' Text
';; FIXME: delete_all_overlays' Comment.Single
'\n                 ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'default-directory' Name.Variable
' '           Text
','           Operator
'old-dir'     Name.Variable
')'           Punctuation
'\n                 ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'buffer-read-only' Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n                 ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'buffer-file-name' Name.Function
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n                 ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'buffer-undo-list' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n                 ' Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'inhibit-read-only' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n                       ' Text
'('           Punctuation
'inhibit-modification-hooks' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n                   ' Text
'('           Punctuation
'erase-buffer' Name.Function
')'           Punctuation
'\n                   ' Text
'('           Punctuation
'run-hooks'   Name.Function
' '           Text
"'temp-buffer-setup-hook" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n            ' Text
'('           Punctuation
'standard-output' Name.Variable
' '           Text
','           Operator
'buf'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'prog1'       Keyword
' '           Text
'('           Punctuation
'progn'       Keyword
' '           Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
'\n         ' Text
'('           Punctuation
'internal-temp-output-buffer-show' Name.Variable
' '           Text
','           Operator
'buf'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'with-temp-file' Name.Builtin
' '           Text
'('           Punctuation
'file'        Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Create a new buffer, evaluate BODY there, and write the buffer to FILE.\nThe value returned is the value of the last form in BODY.\nSee also ' Literal.String
"`with-temp-buffer'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'temp-file'   Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'temp-file'   Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'temp-buffer' Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'temp-buffer' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'`'           Operator
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'temp-file'   Name.Variable
' '           Text
','           Operator
'file'        Name.Variable
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
','           Operator
'temp-buffer' Name.Variable
'\n\t    '    Text
'('           Punctuation
'get-buffer-create' Name.Function
' '           Text
'('           Punctuation
'generate-new-buffer-name' Name.Function
' '           Text
'"'           Literal.String
' *temp file*' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'unwind-protect' Keyword
'\n\t   '     Text
'('           Punctuation
'prog1'       Keyword
'\n\t       ' Text
'('           Punctuation
'with-current-buffer' Name.Builtin
' '           Text
','           Operator
'temp-buffer' Name.Variable
'\n\t\t '     Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
'\n\t     '   Text
'('           Punctuation
'with-current-buffer' Name.Builtin
' '           Text
','           Operator
'temp-buffer' Name.Variable
'\n\t       ' Text
'('           Punctuation
'write-region' Name.Function
' '           Text
'nil'         Name.Constant
' '           Text
'nil'         Name.Constant
' '           Text
','           Operator
'temp-file'   Name.Variable
' '           Text
'nil'         Name.Constant
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'buffer-name' Name.Function
' '           Text
','           Operator
'temp-buffer' Name.Variable
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'kill-buffer' Name.Function
' '           Text
','           Operator
'temp-buffer' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'with-temp-message' Name.Builtin
' '           Text
'('           Punctuation
'message'     Name.Function
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Display MESSAGE temporarily if non-nil while BODY is evaluated.\nThe original message is restored to the echo area after BODY has finished.\nThe value returned is the value of the last form in BODY.\nMESSAGE is written to the message log buffer if ' Literal.String
"`message-log-max'" Literal.String.Symbol
' is non-nil.\nIf MESSAGE is nil, the echo area and message log buffer are unchanged.\nUse a MESSAGE of ' Literal.String
'\\"'         Literal.String
'\\"'         Literal.String
' to temporarily clear the echo area.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'current-message' Name.Function
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'current-message' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'temp-message' Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'with-temp-message' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'`'           Operator
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'temp-message' Name.Variable
' '           Text
','           Operator
'message'     Name.Function
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
','           Operator
'current-message' Name.Function
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'unwind-protect' Keyword
'\n\t   '     Text
'('           Punctuation
'progn'       Keyword
'\n\t     '   Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
','           Operator
'temp-message' Name.Variable
'\n\t       ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
','           Operator
'current-message' Name.Function
' '           Text
'('           Punctuation
'current-message' Name.Function
')'           Punctuation
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'message'     Name.Function
' '           Text
'"'           Literal.String
'%s'          Literal.String
'"'           Literal.String
' '           Text
','           Operator
'temp-message' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t     '   Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'and'         Keyword
' '           Text
','           Operator
'temp-message' Name.Variable
'\n\t      '  Text
'('           Punctuation
'if'          Keyword
' '           Text
','           Operator
'current-message' Name.Function
'\n\t\t  '    Text
'('           Punctuation
'message'     Name.Function
' '           Text
'"'           Literal.String
'%s'          Literal.String
'"'           Literal.String
' '           Text
','           Operator
'current-message' Name.Function
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'message'     Name.Function
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'with-temp-buffer' Name.Builtin
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Create a temporary buffer, and evaluate BODY there like ' Literal.String
"`progn'"     Literal.String.Symbol
'.\nSee also ' Literal.String
"`with-temp-file'" Literal.String.Symbol
' and '       Literal.String
"`with-output-to-string'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'temp-buffer' Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'temp-buffer' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'`'           Operator
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'temp-buffer' Name.Variable
' '           Text
'('           Punctuation
'generate-new-buffer' Name.Variable
' '           Text
'"'           Literal.String
' *temp*'     Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n       '   Text
';; FIXME: kill-buffer can change current-buffer in some odd cases.' Comment.Single
'\n       '   Text
'('           Punctuation
'with-current-buffer' Name.Builtin
' '           Text
','           Operator
'temp-buffer' Name.Variable
'\n         ' Text
'('           Punctuation
'unwind-protect' Keyword
'\n\t     '   Text
'('           Punctuation
'progn'       Keyword
' '           Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
'\n           ' Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'buffer-name' Name.Function
' '           Text
','           Operator
'temp-buffer' Name.Variable
')'           Punctuation
'\n                ' Text
'('           Punctuation
'kill-buffer' Name.Function
' '           Text
','           Operator
'temp-buffer' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'with-silent-modifications' Name.Builtin
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Execute BODY, pretending it does not modify the buffer.\nIf BODY performs real modifications to the buffer's text, other\nthan cosmetic ones, undo data may become corrupted.\n\nThis macro will run BODY normally, but doesn't count its buffer\nmodifications as being buffer modifications.  This affects things\nlike " Literal.String
"`buffer-modified-p'" Literal.String.Symbol
", checking whether the file is locked by\nsomeone else, running buffer modification hooks, and other things\nof that nature.\n\nTypically used around modifications of text-properties which do\nnot really affect the buffer's content." Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'modified'    Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'modified'    Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'`'           Operator
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'modified'    Name.Variable
' '           Text
'('           Punctuation
'buffer-modified-p' Name.Function
')'           Punctuation
')'           Punctuation
'\n            ' Text
'('           Punctuation
'buffer-undo-list' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n            ' Text
'('           Punctuation
'inhibit-read-only' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n            ' Text
'('           Punctuation
'inhibit-modification-hooks' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'unwind-protect' Keyword
'\n           ' Text
'('           Punctuation
'progn'       Keyword
'\n             ' Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
'\n         ' Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
','           Operator
'modified'    Name.Variable
'\n           ' Text
'('           Punctuation
'restore-buffer-modified-p' Name.Function
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'with-output-to-string' Name.Builtin
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Execute BODY, return the text it sent to ' Literal.String
"`standard-output'" Literal.String.Symbol
', as a string.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'`'           Operator
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'standard-output' Name.Variable
'\n\t  '      Text
'('           Punctuation
'get-buffer-create' Name.Function
' '           Text
'('           Punctuation
'generate-new-buffer-name' Name.Function
' '           Text
'"'           Literal.String
' *string-output*' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n     '     Text
'('           Punctuation
'unwind-protect' Keyword
'\n\t '       Text
'('           Punctuation
'progn'       Keyword
'\n\t   '     Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'standard-output' Name.Variable
' '           Text
'standard-output' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t     '   Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'with-current-buffer' Name.Builtin
' '           Text
'standard-output' Name.Variable
'\n\t     '   Text
'('           Punctuation
'buffer-string' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'kill-buffer' Name.Function
' '           Text
'standard-output' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'with-local-quit' Name.Builtin
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Execute BODY, allowing quits to terminate BODY but not escape further.\nWhen a quit terminates BODY, ' Literal.String
"`with-local-quit'" Literal.String.Symbol
' returns nil but\nrequests another quit.  That quit will be processed as soon as quitting\nis allowed once again.  (Immediately, if ' Literal.String
"`inhibit-quit'" Literal.String.Symbol
' is nil.)'   Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n  '        Text
'`'           Operator
'('           Punctuation
'condition-case' Keyword
' '           Text
'nil'         Name.Constant
'\n       '   Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'inhibit-quit' Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n\t '       Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
'\n     '     Text
'('           Punctuation
'quit'        Name.Variable
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'quit-flag'   Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\t   '     Text
';; This call is to give a chance to handle quit-flag' Comment.Single
'\n\t   '     Text
';; in case inhibit-quit is nil.' Comment.Single
'\n\t   '     Text
';; Without this, it will not be handled until the next function' Comment.Single
'\n\t   '     Text
';; call, and that might allow it to exit thru a condition-case' Comment.Single
'\n\t   '     Text
';; that intends to handle the quit signal next time.' Comment.Single
'\n\t   '     Text
'('           Punctuation
'eval'        Name.Function
' '           Text
"'"           Operator
'('           Punctuation
'ignore'      Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'while-no-input' Name.Builtin
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Execute BODY only as long as there's no pending input.\nIf input arrives, that ends the execution of BODY,\nand " Literal.String
"`while-no-input'" Literal.String.Symbol
' returns t.  Quitting makes it return nil.\nIf BODY finishes, ' Literal.String
"`while-no-input'" Literal.String.Symbol
' returns whatever value BODY produced.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'catch-sym'   Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'input'       Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'`'           Operator
'('           Punctuation
'with-local-quit' Name.Builtin
'\n       '   Text
'('           Punctuation
'catch'       Keyword
' '           Text
"',catch-sym" Literal.String.Symbol
'\n\t '       Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'throw-on-input' Name.Variable
' '           Text
"',catch-sym" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'input-pending-p' Name.Function
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'progn'       Keyword
' '           Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'condition-case-unless-debug' Name.Builtin
' '           Text
'('           Punctuation
'var'         Name.Variable
' '           Text
'bodyform'    Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'handlers'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Like '       Literal.String
"`condition-case'" Literal.String.Symbol
' except that it does not prevent debugging.\nMore specifically if ' Literal.String
"`debug-on-error'" Literal.String.Symbol
' is set then the debugger will be invoked\neven if this catches the signal.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
'condition-case' Keyword
')'           Punctuation
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n  '        Text
'`'           Operator
'('           Punctuation
'condition-case' Keyword
' '           Text
','           Operator
'var'         Name.Variable
'\n       '   Text
','           Operator
'bodyform'    Name.Variable
'\n     '     Text
',@'          Operator
'('           Punctuation
'mapcar'      Name.Function
' '           Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'handler'     Name.Variable
')'           Punctuation
'\n                 ' Text
'`'           Operator
'('           Punctuation
'('           Punctuation
'debug'       Name.Variable
' '           Text
',@'          Operator
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'listp'       Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'handler'     Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'handler'     Name.Variable
')'           Punctuation
'\n                              ' Text
'('           Punctuation
'list'        Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'handler'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                   ' Text
',@'          Operator
'('           Punctuation
'cdr'         Name.Function
' '           Text
'handler'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n               ' Text
'handlers'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'define-obsolete-function-alias' Name.Builtin
' '           Text
"'condition-case-no-debug" Literal.String.Symbol
'\n  '        Text
"'condition-case-unless-debug" Literal.String.Symbol
' '           Text
'"'           Literal.String
'24.1'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'with-demoted-errors' Name.Builtin
' '           Text
'('           Punctuation
'format'      Name.Function
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Run BODY and demote any errors to simple messages.\nFORMAT is a string passed to ' Literal.String
"`message'"   Literal.String.Symbol
' to format any error message.\nIt should contain a single %-sequence; e.g., ' Literal.String
'\\"'         Literal.String
'Error: %S'   Literal.String
'\\"'         Literal.String
'.\n\nIf '    Literal.String
"`debug-on-error'" Literal.String.Symbol
' is non-nil, run BODY without catching its errors.\nThis is to be used around code which is not expected to signal an error\nbut which should be robust in the unexpected case that an error is signaled.\n\nFor backward compatibility, if FORMAT is not a constant string, it\nis assumed to be part of BODY, in which case the message format\nused is ' Literal.String
'\\"'         Literal.String
'Error: %S'   Literal.String
'\\"'         Literal.String
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'err'         Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'err'         Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'format'      Name.Function
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'format'      Name.Function
')'           Punctuation
' '           Text
'body'        Name.Variable
')'           Punctuation
' '           Text
'format'      Name.Function
'\n                  ' Text
'('           Punctuation
'prog1'       Keyword
' '           Text
'"'           Literal.String
'Error: %S'   Literal.String
'"'           Literal.String
'\n                    ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'format'      Name.Function
' '           Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'format'      Name.Function
' '           Text
'body'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'`'           Operator
'('           Punctuation
'condition-case-unless-debug' Name.Builtin
' '           Text
','           Operator
'err'         Name.Variable
'\n         ' Text
','           Operator
'('           Punctuation
'macroexp-progn' Name.Variable
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n       '   Text
'('           Punctuation
'error'       Name.Exception
' '           Text
'('           Punctuation
'message'     Name.Function
' '           Text
','           Operator
'format'      Name.Function
' '           Text
','           Operator
'err'         Name.Variable
')'           Punctuation
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'combine-after-change-calls' Name.Builtin
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Execute BODY, but don't call the after-change functions till the end.\nIf BODY makes changes in the buffer, they are recorded\nand the functions on " Literal.String
"`after-change-functions'" Literal.String.Symbol
' are called several times\nwhen BODY is finished.\nThe return value is the value of the last form in BODY.\n\nIf ' Literal.String
"`before-change-functions'" Literal.String.Symbol
" is non-nil, then calls to the after-change\nfunctions can't be deferred, so in that case this macro has no effect.\n\nDo not alter " Literal.String
"`after-change-functions'" Literal.String.Symbol
' or '        Literal.String
"`before-change-functions'" Literal.String.Symbol
'\nin BODY.'  Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'`'           Operator
'('           Punctuation
'unwind-protect' Keyword
'\n       '   Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'combine-after-change-calls' Name.Builtin
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n\t '       Text
'.'           Operator
' '           Text
','           Operator
'body'        Name.Variable
')'           Punctuation
'\n     '     Text
'('           Punctuation
'combine-after-change-execute' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'with-case-table' Name.Builtin
' '           Text
'('           Punctuation
'table'       Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Execute the forms in BODY with TABLE as the current case table.\nThe value returned is the value of the last form in BODY.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'old-case-table' Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'table'       Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'old-buffer'  Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'buffer'      Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'`'           Operator
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'old-case-table' Name.Variable
' '           Text
'('           Punctuation
'current-case-table' Name.Function
')'           Punctuation
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
','           Operator
'old-buffer'  Name.Variable
' '           Text
'('           Punctuation
'current-buffer' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'unwind-protect' Keyword
'\n\t   '     Text
'('           Punctuation
'progn'       Keyword
' '           Text
'('           Punctuation
'set-case-table' Name.Function
' '           Text
','           Operator
'table'       Name.Variable
')'           Punctuation
'\n\t\t  '    Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'with-current-buffer' Name.Builtin
' '           Text
','           Operator
'old-buffer'  Name.Variable
'\n\t   '     Text
'('           Punctuation
'set-case-table' Name.Function
' '           Text
','           Operator
'old-case-table' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'with-file-modes' Name.Builtin
' '           Text
'('           Punctuation
'modes'       Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Execute BODY with default file permissions temporarily set to MODES.\nMODES is as for ' Literal.String
"`set-default-file-modes'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'umask'       Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'umask'       Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'`'           Operator
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'umask'       Name.Variable
' '           Text
'('           Punctuation
'default-file-modes' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'unwind-protect' Keyword
'\n           ' Text
'('           Punctuation
'progn'       Keyword
'\n             ' Text
'('           Punctuation
'set-default-file-modes' Name.Function
' '           Text
','           Operator
'modes'       Name.Variable
')'           Punctuation
'\n             ' Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
'\n         ' Text
'('           Punctuation
'set-default-file-modes' Name.Function
' '           Text
','           Operator
'umask'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\x0c\n'  Text

';;; Matching and match data.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'save-match-data-internal' Name.Variable
')'           Punctuation
'\n\n'        Text

';; We use save-match-data-internal as the local variable because' Comment.Single
'\n'          Text

';; that works ok in practice (people should not use that variable elsewhere).' Comment.Single
'\n'          Text

';; We used to use an uninterned symbol; the compiler handles that properly' Comment.Single
'\n'          Text

';; now, but it generates slower code.' Comment.Single
'\n'          Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'save-match-data' Name.Builtin
' '           Text
'('           Punctuation
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Execute the BODY forms, restoring the global value of the match data.\nThe value returned is the value of the last form in BODY.' Literal.String
'"'           Literal.String
'\n  '        Text
';; It is better not to use backquote here,' Comment.Single
'\n  '        Text
';; because that makes a bootstrapping problem' Comment.Single
'\n  '        Text
';; if you need to recompile all the Lisp files using interpreted code.' Comment.Single
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'let"        Literal.String.Symbol
'\n\t'        Text
"'"           Operator
'('           Punctuation
'('           Punctuation
'save-match-data-internal' Name.Variable
' '           Text
'('           Punctuation
'match-data'  Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'unwind-protect" Literal.String.Symbol
'\n\t      '  Text
'('           Punctuation
'cons'        Name.Function
' '           Text
"'progn"      Literal.String.Symbol
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n\t      '  Text
';; It is safe to free (evaporate) markers immediately here,' Comment.Single
'\n\t      '  Text
';; as Lisp programs should not copy from save-match-data-internal.' Comment.Single
'\n\t      '  Text
"'"           Operator
'('           Punctuation
'set-match-data' Name.Function
' '           Text
'save-match-data-internal' Name.Variable
' '           Text
"'evaporate"  Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'match-string' Name.Variable
' '           Text
'('           Punctuation
'num'         Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'string'      Name.Function
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Return string of text matched by last search.\nNUM specifies which parenthesized expression in the last regexp.\n Value is nil if NUMth pair didn't match, or there were less than NUM pairs.\nZero means the entire text matched by the whole regexp or whole string.\nSTRING should be given if the last search was by " Literal.String
"`string-match'" Literal.String.Symbol
' on STRING.\nIf STRING is nil, the current buffer should be the same buffer\nthe search/match was performed in.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'match-beginning' Name.Function
' '           Text
'num'         Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'string'      Name.Function
'\n\t  '      Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'string'      Name.Function
' '           Text
'('           Punctuation
'match-beginning' Name.Function
' '           Text
'num'         Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'match-end'   Name.Function
' '           Text
'num'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'buffer-substring' Name.Function
' '           Text
'('           Punctuation
'match-beginning' Name.Function
' '           Text
'num'         Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'match-end'   Name.Function
' '           Text
'num'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'match-string-no-properties' Name.Variable
' '           Text
'('           Punctuation
'num'         Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'string'      Name.Function
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Return string of text matched by last search, without text properties.\nNUM specifies which parenthesized expression in the last regexp.\n Value is nil if NUMth pair didn't match, or there were less than NUM pairs.\nZero means the entire text matched by the whole regexp or whole string.\nSTRING should be given if the last search was by " Literal.String
"`string-match'" Literal.String.Symbol
' on STRING.\nIf STRING is nil, the current buffer should be the same buffer\nthe search/match was performed in.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'match-beginning' Name.Function
' '           Text
'num'         Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'string'      Name.Function
'\n\t  '      Text
'('           Punctuation
'substring-no-properties' Name.Function
' '           Text
'string'      Name.Function
' '           Text
'('           Punctuation
'match-beginning' Name.Function
' '           Text
'num'         Name.Variable
')'           Punctuation
'\n\t\t\t\t   ' Text
'('           Punctuation
'match-end'   Name.Function
' '           Text
'num'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'buffer-substring-no-properties' Name.Function
' '           Text
'('           Punctuation
'match-beginning' Name.Function
' '           Text
'num'         Name.Variable
')'           Punctuation
'\n\t\t\t\t\t' Text
'('           Punctuation
'match-end'   Name.Function
' '           Text
'num'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\n'      Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'match-substitute-replacement' Name.Variable
' '           Text
'('           Punctuation
'replacement' Name.Variable
'\n\t\t\t\t     ' Text
'&optional'   Keyword.Pseudo
' '           Text
'fixedcase'   Name.Variable
' '           Text
'literal'     Name.Variable
' '           Text
'string'      Name.Function
' '           Text
'subexp'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return REPLACEMENT as it will be inserted by ' Literal.String
"`replace-match'" Literal.String.Symbol
'.\nIn other words, all back-references in the form ' Literal.String
"`\\\\&'"     Literal.String.Symbol
' and '       Literal.String
"`\\\\N'"     Literal.String.Symbol
'\nare substituted with actual strings matched by the last search.\nOptional FIXEDCASE, LITERAL, STRING and SUBEXP have the same\nmeaning as for ' Literal.String
"`replace-match'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'match'       Name.Variable
' '           Text
'('           Punctuation
'match-string' Name.Variable
' '           Text
'0'           Literal.Number.Integer
' '           Text
'string'      Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'save-match-data' Name.Builtin
'\n      '    Text
'('           Punctuation
'set-match-data' Name.Function
' '           Text
'('           Punctuation
'mapcar'      Name.Function
' '           Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'x'           Name.Variable
')'           Punctuation
'\n\t\t\t\t'  Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'numberp'     Name.Function
' '           Text
'x'           Name.Variable
')'           Punctuation
'\n\t\t\t\t    ' Text
'('           Punctuation
'-'           Name.Function
' '           Text
'x'           Name.Variable
' '           Text
'('           Punctuation
'match-beginning' Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t\t\t\t  ' Text
'x'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t\t      ' Text
'('           Punctuation
'match-data'  Name.Function
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'replace-match' Name.Function
' '           Text
'replacement' Name.Variable
' '           Text
'fixedcase'   Name.Variable
' '           Text
'literal'     Name.Variable
' '           Text
'match'       Name.Variable
' '           Text
'subexp'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\n'      Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'looking-back' Name.Variable
' '           Text
'('           Punctuation
'regexp'      Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'limit'       Name.Variable
' '           Text
'greedy'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return non-nil if text before point matches regular expression REGEXP.\nLike ' Literal.String
"`looking-at'" Literal.String.Symbol
' except matches before point, and is slower.\nLIMIT if non-nil speeds up the search by specifying a minimum\nstarting position, to avoid checking matches that would start\nbefore LIMIT.\n\nIf GREEDY is non-nil, extend the match backwards as far as\npossible, stopping when a single additional previous character\ncannot be part of a match for REGEXP.  When the match is\nextended, its starting position is allowed to occur before\nLIMIT.\n\nAs a general recommendation, try to avoid using ' Literal.String
"`looking-back'" Literal.String.Symbol
'\nwherever possible, since it is slow.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'start'       Name.Variable
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'pos'         Name.Variable
'\n\t '       Text
'('           Punctuation
'save-excursion' Keyword
'\n\t   '     Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
're-search-backward' Name.Function
' '           Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'(?:'         Literal.String
'"'           Literal.String
' '           Text
'regexp'      Name.Variable
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
')'           Literal.String
'\\\\'        Literal.String
'='           Literal.String
'"'           Literal.String
')'           Punctuation
' '           Text
'limit'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'greedy'      Name.Variable
' '           Text
'pos'         Name.Variable
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'save-restriction' Keyword
'\n\t  '      Text
'('           Punctuation
'narrow-to-region' Name.Function
' '           Text
'('           Punctuation
'point-min'   Name.Function
')'           Punctuation
' '           Text
'start'       Name.Variable
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'>'           Name.Function
' '           Text
'pos'         Name.Variable
' '           Text
'('           Punctuation
'point-min'   Name.Function
')'           Punctuation
')'           Punctuation
'\n\t\t      ' Text
'('           Punctuation
'save-excursion' Keyword
'\n\t\t\t'    Text
'('           Punctuation
'goto-char'   Name.Function
' '           Text
'pos'         Name.Variable
')'           Punctuation
'\n\t\t\t'    Text
'('           Punctuation
'backward-char' Name.Function
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
'\n\t\t\t'    Text
'('           Punctuation
'looking-at'  Name.Function
' '           Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'(?:'         Literal.String
'"'           Literal.String
'  '          Text
'regexp'      Name.Variable
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
')'           Literal.String
'\\\\'        Literal.String
"'"           Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'pos'         Name.Variable
' '           Text
'('           Punctuation
'1-'          Name.Function
' '           Text
'pos'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'save-excursion' Keyword
'\n\t    '    Text
'('           Punctuation
'goto-char'   Name.Function
' '           Text
'pos'         Name.Variable
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'looking-at'  Name.Function
' '           Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'(?:'         Literal.String
'"'           Literal.String
'  '          Text
'regexp'      Name.Variable
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
')'           Literal.String
'\\\\'        Literal.String
"'"           Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'pos'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'looking-at-p' Name.Variable
' '           Text
'('           Punctuation
'regexp'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'\\\n'        Literal.String

'Same as '    Literal.String
"`looking-at'" Literal.String.Symbol
' except this function does not change the match data.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'inhibit-changing-match-data' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'looking-at'  Name.Function
' '           Text
'regexp'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'string-match-p' Name.Variable
' '           Text
'('           Punctuation
'regexp'      Name.Variable
' '           Text
'string'      Name.Function
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'start'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'\\\n'        Literal.String

'Same as '    Literal.String
"`string-match'" Literal.String.Symbol
' except this function does not change the match data.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'inhibit-changing-match-data' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'regexp'      Name.Variable
' '           Text
'string'      Name.Function
' '           Text
'start'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'subregexp-context-p' Name.Variable
' '           Text
'('           Punctuation
'regexp'      Name.Variable
' '           Text
'pos'         Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'start'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return non-nil if POS is in a normal subregexp context in REGEXP.\nA subregexp context is one where a sub-regexp can appear.\nA non-subregexp context is for example within brackets, or within a\nrepetition bounds operator ' Literal.String
"`\\\\=\\\\{...\\\\}'" Literal.String.Symbol
', or right after a ' Literal.String
"`\\\\'"      Literal.String.Symbol
'.\nIf START is non-nil, it should be a position in REGEXP, smaller\nthan POS, and known to be in a subregexp context.' Literal.String
'"'           Literal.String
'\n  '        Text
";; Here's one possible implementation, with the great benefit that it" Comment.Single
'\n  '        Text
";; reuses the regexp-matcher's own parser, so it understands all the" Comment.Single
'\n  '        Text
';; details of the syntax.  A disadvantage is that it needs to match the' Comment.Single
'\n  '        Text
';; error string.' Comment.Single
'\n  '        Text
'('           Punctuation
'condition-case' Keyword
' '           Text
'err'         Name.Variable
'\n      '    Text
'('           Punctuation
'progn'       Keyword
'\n        '  Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'regexp'      Name.Variable
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'start'       Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'pos'         Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'"'           Literal.String
')'           Punctuation
'\n        '  Text
't'           Name.Constant
')'           Punctuation
'\n    '      Text
'('           Punctuation
'invalid-regexp' Name.Variable
'\n     '     Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'member'      Name.Function
' '           Text
'('           Punctuation
'cadr'        Name.Variable
' '           Text
'err'         Name.Variable
')'           Punctuation
' '           Text
"'"           Operator
'('           Punctuation
'"'           Literal.String
'Unmatched [ or [^' Literal.String
'"'           Literal.String
'\n                               ' Text
'"'           Literal.String
'Unmatched '  Literal.String
'\\\\'        Literal.String
'{'           Literal.String
'"'           Literal.String
'\n                               ' Text
'"'           Literal.String
'Trailing backslash' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
';; An alternative implementation:' Comment.Single
'\n  '        Text
';; (defconst re-context-re' Comment.Single
'\n  '        Text
';;   (let* ((harmless-ch "[^\\\\[]")' Comment.Single
'\n  '        Text
';;          (harmless-esc "\\\\\\\\[^{]")' Comment.Single
'\n  '        Text
';;          (class-harmless-ch "[^][]")' Comment.Single
'\n  '        Text
';;          (class-lb-harmless "[^]:]")' Comment.Single
'\n  '        Text
';;          (class-lb-colon-maybe-charclass ":\\\\([a-z]+:]\\\\)?")' Comment.Single
'\n  '        Text
';;          (class-lb (concat "\\\\[\\\\(" class-lb-harmless' Comment.Single
'\n  '        Text
';;                            "\\\\|" class-lb-colon-maybe-charclass "\\\\)"))' Comment.Single
'\n  '        Text
';;          (class' Comment.Single
'\n  '        Text
';;           (concat "\\\\[^?]?"' Comment.Single
'\n  '        Text
';;                   "\\\\(" class-harmless-ch' Comment.Single
'\n  '        Text
';;                   "\\\\|" class-lb "\\\\)*"' Comment.Single
'\n  '        Text
';;                   "\\\\[?]"))     ; special handling for bare [ at end of re' Comment.Single
'\n  '        Text
';;          (braces "\\\\\\\\{[0-9,]+\\\\\\\\}"))' Comment.Single
'\n  '        Text
';;     (concat "\\\\`\\\\(" harmless-ch "\\\\|" harmless-esc' Comment.Single
'\n  '        Text
';;             "\\\\|" class "\\\\|" braces "\\\\)*\\\\\'"))' Comment.Single
'\n  '        Text
';;   "Matches any prefix that corresponds to a normal subregexp context.")' Comment.Single
'\n  '        Text
';; (string-match re-context-re (substring regexp (or start 0) pos))' Comment.Single
'\n  '        Text
')'           Punctuation
'\n\x0c\n'    Text

';;;; split-string' Comment.Single
'\n\n'        Text

'('           Punctuation
'defconst'    Keyword
' '           Text
'split-string-default-separators' Name.Variable
' '           Text
'"'           Literal.String
'[ '          Literal.String
'\\f'         Literal.String
'\\t'         Literal.String
'\\n'         Literal.String
'\\r'         Literal.String
'\\v'         Literal.String
']+'          Literal.String
'"'           Literal.String
'\n  '        Text
'"'           Literal.String
'The default value of separators for ' Literal.String
"`split-string'" Literal.String.Symbol
'.\n\nA regexp matching strings of whitespace.  May be locale-dependent\n' Literal.String

'\\('         Literal.String
'as yet unimplemented).  Should not match non-breaking spaces.\n\nWarning: binding this to a different value and using it as default is\nlikely to have undesired semantics.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

';; The specification says that if both SEPARATORS and OMIT-NULLS are' Comment.Single
'\n'          Text

';; defaulted, OMIT-NULLS should be treated as t.  Simplifying the logical' Comment.Single
'\n'          Text

';; expression leads to the equivalent implementation that if SEPARATORS' Comment.Single
'\n'          Text

';; is defaulted, OMIT-NULLS is treated as t.' Comment.Single
'\n'          Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'split-string' Name.Variable
' '           Text
'('           Punctuation
'string'      Name.Function
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'separators'  Name.Variable
' '           Text
'omit-nulls'  Name.Variable
' '           Text
'trim'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Split STRING into substrings bounded by matches for SEPARATORS.\n\nThe beginning and end of STRING, and each match for SEPARATORS, are\nsplitting points.  The substrings matching SEPARATORS are removed, and\nthe substrings between the splitting points are collected as a list,\nwhich is returned.\n\nIf SEPARATORS is non-nil, it should be a regular expression matching text\nwhich separates, but is not part of, the substrings.  If nil it defaults to\n' Literal.String

"`split-string-default-separators'" Literal.String.Symbol
', normally ' Literal.String
'\\"'         Literal.String
'[ '          Literal.String
'\\\\'        Literal.String
'f'           Literal.String
'\\\\'        Literal.String
't'           Literal.String
'\\\\'        Literal.String
'n'           Literal.String
'\\\\'        Literal.String
'r'           Literal.String
'\\\\'        Literal.String
'v]+'         Literal.String
'\\"'         Literal.String
', and\nOMIT-NULLS is forced to t.\n\nIf OMIT-NULLS is t, zero-length substrings are omitted from the list (so\nthat for the default value of SEPARATORS leading and trailing whitespace\nare effectively trimmed).  If nil, all zero-length substrings are retained,\nwhich correctly parses CSV format, for example.\n\nIf TRIM is non-nil, it should be a regular expression to match\ntext to trim from the beginning and end of each substring.  If trimming\nmakes the substring empty, it is treated as null.\n\nIf you want to trim whitespace from the substrings, the reliably correct\nway is using TRIM.  Making SEPARATORS match that whitespace gives incorrect\nresults when there is whitespace at the start or end of STRING.  If you\nsee such calls to ' Literal.String
"`split-string'" Literal.String.Symbol
', please fix them.\n\nNote that the effect of ' Literal.String
'`'           Literal.String
"(split-string STRING)' is the same as\n" Literal.String

'`'           Literal.String
"(split-string STRING split-string-default-separators t)'.  In the rare\ncase that you wish to retain zero-length substrings when splitting on\nwhitespace, use " Literal.String
'`'           Literal.String
"(split-string STRING split-string-default-separators)'.\n\nModifies the match data; use " Literal.String
"`save-match-data'" Literal.String.Symbol
' if necessary.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'keep-nulls'  Name.Variable
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'separators'  Name.Variable
' '           Text
'omit-nulls'  Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'rexp'        Name.Variable
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'separators'  Name.Variable
' '           Text
'split-string-default-separators' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'start'       Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n\t '       Text
'this-start'  Name.Variable
' '           Text
'this-end'    Name.Variable
'\n\t '       Text
'notfirst'    Name.Variable
'\n\t '       Text
'('           Punctuation
'list'        Name.Function
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'push-one'    Name.Variable
'\n\t  '      Text
';; Push the substring in range THIS-START to THIS-END' Comment.Single
'\n\t  '      Text
';; onto LIST, trimming it and perhaps discarding it.' Comment.Single
'\n\t  '      Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'trim'        Name.Variable
'\n\t      '  Text
';; Discard the trim from start of this substring.' Comment.Single
'\n\t      '  Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'tem'         Name.Variable
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'trim'        Name.Variable
' '           Text
'string'      Name.Function
' '           Text
'this-start'  Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'tem'         Name.Variable
' '           Text
'this-start'  Name.Variable
')'           Punctuation
'\n\t\t     ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'this-start'  Name.Variable
' '           Text
'('           Punctuation
'match-end'   Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\t    '  Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'keep-nulls'  Name.Variable
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'this-start'  Name.Variable
' '           Text
'this-end'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'this'        Name.Variable
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'string'      Name.Function
' '           Text
'this-start'  Name.Variable
' '           Text
'this-end'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\t\t'    Text
';; Discard the trim from end of this substring.' Comment.Single
'\n\t\t'      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'trim'        Name.Variable
'\n\t\t  '    Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'tem'         Name.Variable
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'trim'        Name.Variable
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
"'"           Literal.String
'"'           Literal.String
')'           Punctuation
' '           Text
'this'        Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t    '  Text
'('           Punctuation
'and'         Keyword
' '           Text
'tem'         Name.Variable
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'tem'         Name.Variable
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'this'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t\t '   Text
'('           Punctuation
'setq'        Keyword
' '           Text
'this'        Name.Variable
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'this'        Name.Variable
' '           Text
'0'           Literal.Number.Integer
' '           Text
'tem'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\t\t'    Text
';; Trimming could make it empty; check again.' Comment.Single
'\n\t\t'      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'keep-nulls'  Name.Variable
' '           Text
'('           Punctuation
'>'           Name.Function
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'this'        Name.Variable
')'           Punctuation
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t\t  '    Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'this'        Name.Variable
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n    '    Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'rexp'        Name.Variable
' '           Text
'string'      Name.Function
'\n\t\t\t      ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'notfirst'    Name.Variable
'\n\t\t\t\t       ' Text
'('           Punctuation
'='           Name.Function
' '           Text
'start'       Name.Variable
' '           Text
'('           Punctuation
'match-beginning' Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t\t\t\t       ' Text
'('           Punctuation
'<'           Name.Function
' '           Text
'start'       Name.Variable
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'string'      Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t\t\t  ' Text
'('           Punctuation
'1+'          Name.Function
' '           Text
'start'       Name.Variable
')'           Punctuation
' '           Text
'start'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'<'           Name.Function
' '           Text
'start'       Name.Variable
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'string'      Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'notfirst'    Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'this-start'  Name.Variable
' '           Text
'start'       Name.Variable
' '           Text
'this-end'    Name.Variable
' '           Text
'('           Punctuation
'match-beginning' Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n\t    '    Text
'start'       Name.Variable
' '           Text
'('           Punctuation
'match-end'   Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\n      '  Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'push-one'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n    '    Text
';; Handle the substring at the end of STRING.' Comment.Single
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'this-start'  Name.Variable
' '           Text
'start'       Name.Variable
' '           Text
'this-end'    Name.Variable
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'string'      Name.Function
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'push-one'    Name.Variable
')'           Punctuation
'\n\n    '    Text
'('           Punctuation
'nreverse'    Name.Function
' '           Text
'list'        Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'combine-and-quote-strings' Name.Variable
' '           Text
'('           Punctuation
'strings'     Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'separator'   Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Concatenate the STRINGS, adding the SEPARATOR (default ' Literal.String
'\\"'         Literal.String
' '           Literal.String
'\\"'         Literal.String
').\nThis tries to quote the strings to avoid ambiguity such that\n  (split-string-and-unquote (combine-and-quote-strings strs)) == strs\nOnly some SEPARATORs will work properly.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'sep'         Name.Variable
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'separator'   Name.Variable
' '           Text
'"'           Literal.String
' '           Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n         ' Text
'('           Punctuation
're'          Name.Variable
' '           Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'"'           Literal.String
'['           Literal.String
'\\\\'        Literal.String
'\\"'         Literal.String
']'           Literal.String
'"'           Literal.String
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'|'           Literal.String
'"'           Literal.String
' '           Text
'('           Punctuation
'regexp-quote' Name.Function
' '           Text
'sep'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'mapconcat'   Name.Function
'\n     '     Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'str'         Name.Variable
')'           Punctuation
'\n       '   Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
're'          Name.Variable
' '           Text
'str'         Name.Variable
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'"'           Literal.String
'\\"'         Literal.String
'"'           Literal.String
' '           Text
'('           Punctuation
'replace-regexp-in-string' Name.Variable
' '           Text
'"'           Literal.String
'['           Literal.String
'\\\\'        Literal.String
'\\"'         Literal.String
']'           Literal.String
'"'           Literal.String
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'\\\\'        Literal.String
'\\\\'        Literal.String
'&'           Literal.String
'"'           Literal.String
' '           Text
'str'         Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'\\"'         Literal.String
'"'           Literal.String
')'           Punctuation
'\n\t '       Text
'str'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n     '     Text
'strings'     Name.Variable
' '           Text
'sep'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'split-string-and-unquote' Name.Variable
' '           Text
'('           Punctuation
'string'      Name.Function
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'separator'   Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Split the STRING into a list of strings.\nIt understands Emacs Lisp quoting within STRING, such that\n  (split-string-and-unquote (combine-and-quote-strings strs)) == strs\nThe SEPARATOR regexp defaults to ' Literal.String
'\\"'         Literal.String
'\\\\'        Literal.String
's-+'         Literal.String
'\\"'         Literal.String
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'sep'         Name.Variable
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'separator'   Name.Variable
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
's-+'         Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'i'           Name.Variable
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'"'           Literal.String
'\\"'         Literal.String
'"'           Literal.String
' '           Text
'string'      Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'i'           Name.Variable
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'split-string' Name.Variable
' '           Text
'string'      Name.Function
' '           Text
'sep'         Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\t'          Text
'; no quoting:  easy' Comment.Single
'\n      '    Text
'('           Punctuation
'append'      Name.Function
' '           Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'i'           Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'split-string' Name.Variable
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'string'      Name.Function
' '           Text
'0'           Literal.Number.Integer
' '           Text
'i'           Name.Variable
')'           Punctuation
' '           Text
'sep'         Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'rfs'         Name.Variable
' '           Text
'('           Punctuation
'read-from-string' Name.Function
' '           Text
'string'      Name.Function
' '           Text
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'rfs'         Name.Variable
')'           Punctuation
'\n\t\t      ' Text
'('           Punctuation
'split-string-and-unquote' Name.Variable
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'string'      Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'rfs'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t\t\t\t\t' Text
'sep'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\x0c\n'  Text

';;;; Replacement in strings.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'subst-char-in-string' Name.Variable
' '           Text
'('           Punctuation
'fromchar'    Name.Variable
' '           Text
'tochar'      Name.Variable
' '           Text
'string'      Name.Function
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'inplace'     Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Replace FROMCHAR with TOCHAR in STRING each time it occurs.\nUnless optional argument INPLACE is non-nil, return a new string.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'i'           Name.Variable
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'string'      Name.Function
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'newstr'      Name.Variable
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'inplace'     Name.Variable
' '           Text
'string'      Name.Function
' '           Text
'('           Punctuation
'copy-sequence' Name.Function
' '           Text
'string'      Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'>'           Name.Function
' '           Text
'i'           Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'i'           Name.Variable
' '           Text
'('           Punctuation
'1-'          Name.Function
' '           Text
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'newstr'      Name.Variable
' '           Text
'i'           Name.Variable
')'           Punctuation
' '           Text
'fromchar'    Name.Variable
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'aset'        Name.Function
' '           Text
'newstr'      Name.Variable
' '           Text
'i'           Name.Variable
' '           Text
'tochar'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'newstr'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'replace-regexp-in-string' Name.Variable
' '           Text
'('           Punctuation
'regexp'      Name.Variable
' '           Text
'rep'         Name.Variable
' '           Text
'string'      Name.Function
' '           Text
'&optional'   Keyword.Pseudo
'\n\t\t\t\t\t' Text
'fixedcase'   Name.Variable
' '           Text
'literal'     Name.Variable
' '           Text
'subexp'      Name.Variable
' '           Text
'start'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Replace all matches for REGEXP with REP in STRING.\n\nReturn a new string containing the replacements.\n\nOptional arguments FIXEDCASE, LITERAL and SUBEXP are like the\narguments with the same names of function ' Literal.String
"`replace-match'" Literal.String.Symbol
'.  If START\nis non-nil, start replacements at that index in STRING.\n\nREP is either a string used as the NEWTEXT arg of ' Literal.String
"`replace-match'" Literal.String.Symbol
' or a\nfunction.  If it is a function, it is called with the actual text of each\nmatch, and its value is used as the replacement text.  When REP is called,\nthe match data are the result of matching REGEXP against a substring\nof STRING.\n\nTo replace only the first match (if any), make REGEXP match up to ' Literal.String
'\\\\'        Literal.String
"'\nand replace a sub-expression, e.g.\n  (replace-regexp-in-string " Literal.String
'\\"'         Literal.String
'\\\\'        Literal.String
'\\\\'        Literal.String
'(foo'        Literal.String
'\\\\'        Literal.String
'\\\\'        Literal.String
').*'         Literal.String
'\\\\'        Literal.String
'\\\\'        Literal.String
"'"           Literal.String
'\\"'         Literal.String
' '           Literal.String
'\\"'         Literal.String
'bar'         Literal.String
'\\"'         Literal.String
' '           Literal.String
'\\"'         Literal.String
' foo foo'    Literal.String
'\\"'         Literal.String
' nil nil 1)\n    => ' Literal.String
'\\"'         Literal.String
' bar foo'    Literal.String
'\\"'         Literal.String
'"'           Literal.String
'\n\n  '      Text
';; To avoid excessive consing from multiple matches in long strings,' Comment.Single
'\n  '        Text
";; don't just call `replace-match' continually.  Walk down the" Comment.Single
'\n  '        Text
';; string looking for matches of REGEXP and building up a (reversed)' Comment.Single
'\n  '        Text
";; list MATCHES.  This comprises segments of STRING which weren't" Comment.Single
'\n  '        Text
';; matched interspersed with replacements for segments that were.' Comment.Single
'\n  '        Text
";; [For a `large' number of replacements it's more efficient to" Comment.Single
'\n  '        Text
";; operate in a temporary buffer; we can't tell from the function's" Comment.Single
'\n  '        Text
';; args whether to choose the buffer-based implementation, though it' Comment.Single
'\n  '        Text
';; might be reasonable to do so for long enough STRING.]' Comment.Single
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'l'           Name.Variable
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'string'      Name.Function
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'start'       Name.Variable
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'start'       Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'matches'     Name.Variable
' '           Text
'str'         Name.Variable
' '           Text
'mb'          Name.Variable
' '           Text
'me'          Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'save-match-data' Name.Builtin
'\n      '    Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'start'       Name.Variable
' '           Text
'l'           Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'regexp'      Name.Variable
' '           Text
'string'      Name.Function
' '           Text
'start'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'mb'          Name.Variable
' '           Text
'('           Punctuation
'match-beginning' Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n\t      '  Text
'me'          Name.Variable
' '           Text
'('           Punctuation
'match-end'   Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t'        Text
';; If we matched the empty string, make sure we advance by one char' Comment.Single
'\n\t'        Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'='           Name.Function
' '           Text
'me'          Name.Variable
' '           Text
'mb'          Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'me'          Name.Variable
' '           Text
'('           Punctuation
'min'         Name.Function
' '           Text
'l'           Name.Variable
' '           Text
'('           Punctuation
'1+'          Name.Function
' '           Text
'mb'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text
';; Generate a replacement for the matched substring.' Comment.Single
'\n\t'        Text
';; Operate only on the substring to minimize string consing.' Comment.Single
'\n\t'        Text
';; Set up match data for the substring for replacement;' Comment.Single
'\n\t'        Text
';; presumably this is likely to be faster than munging the' Comment.Single
'\n\t'        Text
';; match data directly in Lisp.' Comment.Single
'\n\t'        Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'regexp'      Name.Variable
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'str'         Name.Variable
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'string'      Name.Function
' '           Text
'mb'          Name.Variable
' '           Text
'me'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'matches'     Name.Variable
'\n\t      '  Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'('           Punctuation
'replace-match' Name.Function
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'rep'         Name.Variable
')'           Punctuation
'\n\t\t\t\t       ' Text
'rep'         Name.Variable
'\n\t\t\t\t     ' Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'rep'         Name.Variable
' '           Text
'('           Punctuation
'match-string' Name.Variable
' '           Text
'0'           Literal.Number.Integer
' '           Text
'str'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t\t\t   ' Text
'fixedcase'   Name.Variable
' '           Text
'literal'     Name.Variable
' '           Text
'str'         Name.Variable
' '           Text
'subexp'      Name.Variable
')'           Punctuation
'\n\t\t    '  Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'string'      Name.Function
' '           Text
'start'       Name.Variable
' '           Text
'mb'          Name.Variable
')'           Punctuation
' '           Text
'; unmatched prefix' Comment.Single
'\n\t\t\t  '  Text
'matches'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'start'       Name.Variable
' '           Text
'me'          Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
';; Reconstruct a string from the pieces.' Comment.Single
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'matches'     Name.Variable
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'string'      Name.Function
' '           Text
'start'       Name.Variable
' '           Text
'l'           Name.Variable
')'           Punctuation
' '           Text
'matches'     Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'; leftover'  Comment.Single
'\n      '    Text
'('           Punctuation
'apply'       Name.Function
' '           Text
"#'"          Name.Function
'concat'      Name.Function
' '           Text
'('           Punctuation
'nreverse'    Name.Function
' '           Text
'matches'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\x0c\n'    Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'string-prefix-p' Name.Variable
' '           Text
'('           Punctuation
'prefix'      Name.Variable
' '           Text
'string'      Name.Function
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'ignore-case' Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return non-nil if PREFIX is a prefix of STRING.\nIf IGNORE-CASE is non-nil, the comparison is done without paying attention\nto case differences.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'prefix-length' Name.Variable
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'prefix'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'>'           Name.Function
' '           Text
'prefix-length' Name.Variable
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'string'      Name.Function
')'           Punctuation
')'           Punctuation
' '           Text
'nil'         Name.Constant
'\n      '    Text
'('           Punctuation
'eq'          Name.Function
' '           Text
't'           Name.Constant
' '           Text
'('           Punctuation
'compare-strings' Name.Function
' '           Text
'prefix'      Name.Variable
' '           Text
'0'           Literal.Number.Integer
' '           Text
'prefix-length' Name.Variable
' '           Text
'string'      Name.Function
'\n\t\t\t     ' Text
'0'           Literal.Number.Integer
' '           Text
'prefix-length' Name.Variable
' '           Text
'ignore-case' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'string-suffix-p' Name.Variable
' '           Text
'('           Punctuation
'suffix'      Name.Variable
' '           Text
'string'      Name.Function
'  '          Text
'&optional'   Keyword.Pseudo
' '           Text
'ignore-case' Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return non-nil if SUFFIX is a suffix of STRING.\nIf IGNORE-CASE is non-nil, the comparison is done without paying\nattention to case differences.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'start-pos'   Name.Variable
' '           Text
'('           Punctuation
'-'           Name.Function
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'string'      Name.Function
')'           Punctuation
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'suffix'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'>='          Name.Function
' '           Text
'start-pos'   Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n         ' Text
'('           Punctuation
'eq'          Name.Function
' '           Text
't'           Name.Constant
' '           Text
'('           Punctuation
'compare-strings' Name.Function
' '           Text
'suffix'      Name.Variable
' '           Text
'nil'         Name.Constant
' '           Text
'nil'         Name.Constant
'\n                                ' Text
'string'      Name.Function
' '           Text
'start-pos'   Name.Variable
' '           Text
'nil'         Name.Constant
' '           Text
'ignore-case' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'bidi-string-mark-left-to-right' Name.Variable
' '           Text
'('           Punctuation
'str'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return a string that can be safely inserted in left-to-right text.\n\nNormally, inserting a string with right-to-left (RTL) script into\na buffer may cause some subsequent text to be displayed as part\nof the RTL segment (usually this affects punctuation characters).\nThis function returns a string which displays as STR but forces\nsubsequent text to be displayed as left-to-right.\n\nIf STR contains any RTL character, this function returns a string\nconsisting of STR followed by an invisible left-to-right mark\n' Literal.String

'\\('         Literal.String
'LRM) character.  Otherwise, it returns STR.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'str'         Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'signal'      Name.Function
' '           Text
"'wrong-type-argument" Literal.String.Symbol
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
"'stringp"    Literal.String.Symbol
' '           Text
'str'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'cR'          Literal.String
'"'           Literal.String
' '           Text
'str'         Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'str'         Name.Variable
' '           Text
'('           Punctuation
'propertize'  Name.Function
' '           Text
'('           Punctuation
'string'      Name.Function
' '           Text
'?\\x'        Literal.String.Char
'200e'        Name.Variable
')'           Punctuation
' '           Text
"'invisible"  Literal.String.Symbol
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n    '      Text
'str'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\x0c\n'    Text

';;;; Specifying things to do later.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'load-history-regexp' Name.Variable
' '           Text
'('           Punctuation
'file'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Form a regexp to find FILE in ' Literal.String
"`load-history'" Literal.String.Symbol
'.\nFILE, a string, is described in the function ' Literal.String
"`eval-after-load'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'file-name-absolute-p' Name.Function
' '           Text
'file'        Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'file'        Name.Variable
' '           Text
'('           Punctuation
'file-truename' Name.Variable
' '           Text
'file'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'file-name-absolute-p' Name.Function
' '           Text
'file'        Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'`'           Literal.String
'"'           Literal.String
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'('           Literal.String
'\\\\'        Literal.String
'`'           Literal.String
'\\\\'        Literal.String
'|/'          Literal.String
'\\\\'        Literal.String
')'           Literal.String
'"'           Literal.String
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'regexp-quote' Name.Function
' '           Text
'file'        Name.Variable
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'file-name-extension' Name.Variable
' '           Text
'file'        Name.Variable
')'           Punctuation
'\n\t      '  Text
'"'           Literal.String
'"'           Literal.String
'\n\t    '    Text
";; Note: regexp-opt can't be used here, since we need to call" Comment.Single
'\n\t    '    Text
';; this before Emacs has been fully started.  2006-05-21' Comment.Single
'\n\t    '    Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'('           Literal.String
'"'           Literal.String
' '           Text
'('           Punctuation
'mapconcat'   Name.Function
' '           Text
"'regexp-quote" Literal.String.Symbol
' '           Text
'load-suffixes' Name.Variable
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'|'           Literal.String
'"'           Literal.String
')'           Punctuation
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
')?'          Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'"'           Literal.String
'\\\\'        Literal.String
'('           Literal.String
'"'           Literal.String
' '           Text
'('           Punctuation
'mapconcat'   Name.Function
' '           Text
"'regexp-quote" Literal.String.Symbol
' '           Text
'jka-compr-load-suffixes' Name.Variable
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'|'           Literal.String
'"'           Literal.String
')'           Punctuation
'\n\t  '      Text
'"'           Literal.String
'\\\\'        Literal.String
')?'          Literal.String
'\\\\'        Literal.String
"'"           Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'load-history-filename-element' Name.Variable
' '           Text
'('           Punctuation
'file-regexp' Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Get the first elt of ' Literal.String
"`load-history'" Literal.String.Symbol
" whose car matches FILE-REGEXP.\nReturn nil if there isn't one." Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'loads'       Name.Variable
' '           Text
'load-history' Name.Variable
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'load-elt'    Name.Variable
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'loads'       Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'loads'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'save-match-data' Name.Builtin
'\n      '    Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'loads'       Name.Variable
'\n\t\t  '    Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'load-elt'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t      ' Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'file-regexp' Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'load-elt'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'loads'       Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'loads'       Name.Variable
')'           Punctuation
'\n\t      '  Text
'load-elt'    Name.Variable
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'loads'       Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'loads'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'load-elt'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'put'         Name.Function
' '           Text
"'eval-after-load" Literal.String.Symbol
' '           Text
"'lisp-indent-function" Literal.String.Symbol
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
'\n'          Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'eval-after-load' Name.Variable
' '           Text
'('           Punctuation
'file'        Name.Variable
' '           Text
'form'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Arrange that if FILE is loaded, FORM will be run immediately afterwards.\nIf FILE is already loaded, evaluate FORM right now.\nFORM can be an Elisp expression (in which case it's passed to " Literal.String
"`eval'"      Literal.String.Symbol
"),\nor a function (in which case it's passed to " Literal.String
"`funcall'"   Literal.String.Symbol
' with no argument).\n\nIf a matching file is loaded again, FORM will be evaluated again.\n\nIf FILE is a string, it may be either an absolute or a relative file\nname, and may have an extension (e.g. ' Literal.String
'\\"'         Literal.String
'.el'         Literal.String
'\\"'         Literal.String
') or may lack one, and\nadditionally may or may not have an extension denoting a compressed\nformat (e.g. ' Literal.String
'\\"'         Literal.String
'.gz'         Literal.String
'\\"'         Literal.String
").\n\nWhen FILE is absolute, this first converts it to a true name by chasing\nsymbolic links.  Only a file of this name (see next paragraph regarding\nextensions) will trigger the evaluation of FORM.  When FILE is relative,\na file whose absolute true name ends in FILE will trigger evaluation.\n\nWhen FILE lacks an extension, a file name with any extension will trigger\nevaluation.  Otherwise, its extension must match FILE's.  A further\nextension for a compressed format (e.g. " Literal.String
'\\"'         Literal.String
'.gz'         Literal.String
'\\"'         Literal.String
') on FILE will not affect\nthis name matching.\n\nAlternatively, FILE can be a feature (i.e. a symbol), in which case FORM\nis evaluated at the end of any file that ' Literal.String
"`provide'"   Literal.String.Symbol
's this feature.\nIf the feature is provided when evaluating code not associated with a\nfile, FORM is evaluated immediately after the provide statement.\n\nUsually FILE is just a library name like ' Literal.String
'\\"'         Literal.String
'font-lock'   Literal.String
'\\"'         Literal.String
" or a feature name\nlike 'font-lock.\n\nThis function makes or adds to an entry on " Literal.String
"`after-load-alist'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'compiler-macro' Name.Variable
'\n            ' Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'whole'       Name.Variable
')'           Punctuation
'\n              ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
"'quote"      Literal.String.Symbol
' '           Text
'('           Punctuation
'car-safe'    Name.Function
' '           Text
'form'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n                  ' Text
';; Quote with lambda so the compiler can look inside.' Comment.Single
'\n                  ' Text
'`'           Operator
'('           Punctuation
'eval-after-load' Name.Variable
' '           Text
','           Operator
'file'        Name.Variable
' '           Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
')'           Punctuation
' '           Text
','           Operator
'('           Punctuation
'nth'         Name.Function
' '           Text
'1'           Literal.Number.Integer
' '           Text
'form'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text
'whole'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
";; Add this FORM into after-load-alist (regardless of whether we'll be" Comment.Single
'\n  '        Text
';; evaluating it now).' Comment.Single
'\n  '        Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'regexp-or-feature' Name.Variable
'\n\t  '      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'file'        Name.Variable
')'           Punctuation
'\n              ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'file'        Name.Variable
' '           Text
'('           Punctuation
'purecopy'    Name.Function
' '           Text
'('           Punctuation
'load-history-regexp' Name.Variable
' '           Text
'file'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n            ' Text
'file'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'elt'         Name.Function
' '           Text
'('           Punctuation
'assoc'       Name.Function
' '           Text
'regexp-or-feature' Name.Variable
' '           Text
'after-load-alist' Name.Variable
')'           Punctuation
')'           Punctuation
'\n         ' Text
'('           Punctuation
'func'        Name.Variable
'\n          ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'functionp'   Name.Function
' '           Text
'form'        Name.Variable
')'           Punctuation
' '           Text
'form'        Name.Variable
'\n            ' Text
';; Try to use the "current" lexical/dynamic mode for `form\'.' Comment.Single
'\n            ' Text
'('           Punctuation
'eval'        Name.Function
' '           Text
'`'           Operator
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
')'           Punctuation
' '           Text
','           Operator
'form'        Name.Variable
')'           Punctuation
' '           Text
'lexical-binding' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'elt'         Name.Function
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'elt'         Name.Function
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'regexp-or-feature' Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'elt'         Name.Function
' '           Text
'after-load-alist' Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
";; Is there an already loaded file whose name (or `provide' name)" Comment.Single
'\n    '      Text
';; matches FILE?' Comment.Single
'\n    '      Text
'('           Punctuation
'prog1'       Keyword
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'file'        Name.Variable
')'           Punctuation
'\n\t\t   '   Text
'('           Punctuation
'load-history-filename-element' Name.Variable
' '           Text
'regexp-or-feature' Name.Variable
')'           Punctuation
'\n\t\t '     Text
'('           Punctuation
'featurep'    Name.Builtin
' '           Text
'file'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'func'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'delayed-func' Name.Variable
'\n             ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'symbolp'     Name.Function
' '           Text
'regexp-or-feature' Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'func'        Name.Variable
'\n               ' Text
';; For features, the after-load-alist elements get run when' Comment.Single
'\n               ' Text
";; `provide' is called rather than at the end of the file." Comment.Single
'\n               ' Text
";; So add an indirection to make sure that `func' is really run" Comment.Single
'\n               ' Text
';; "after-load" in case the provide call happens early.' Comment.Single
'\n               ' Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
')'           Punctuation
'\n                 ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'load-file-name' Name.Variable
')'           Punctuation
'\n                     ' Text
';; Not being provided from a file, run func right now.' Comment.Single
'\n                     ' Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'func'        Name.Variable
')'           Punctuation
'\n                   ' Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'lfn'         Name.Variable
' '           Text
'load-file-name' Name.Variable
')'           Punctuation
'\n                         ' Text
";; Don't use letrec, because equal (in" Comment.Single
'\n                         ' Text
';; add/remove-hook) would get trapped in a cycle.' Comment.Single
'\n                         ' Text
'('           Punctuation
'fun'         Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'eval-after-load-helper' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                     ' Text
'('           Punctuation
'fset'        Name.Function
' '           Text
'fun'         Name.Variable
' '           Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'file'        Name.Variable
')'           Punctuation
'\n                                 ' Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'equal'       Name.Function
' '           Text
'file'        Name.Variable
' '           Text
'lfn'         Name.Variable
')'           Punctuation
'\n                                   ' Text
'('           Punctuation
'remove-hook' Name.Variable
' '           Text
"'after-load-functions" Literal.String.Symbol
' '           Text
'fun'         Name.Variable
')'           Punctuation
'\n                                   ' Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'func'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                     ' Text
'('           Punctuation
'add-hook'    Name.Variable
' '           Text
"'after-load-functions" Literal.String.Symbol
' '           Text
'fun'         Name.Variable
' '           Text
"'append"     Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n        '  Text
";; Add FORM to the element unless it's already there." Comment.Single
'\n        '  Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'member'      Name.Function
' '           Text
'delayed-func' Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'elt'         Name.Function
')'           Punctuation
')'           Punctuation
'\n          ' Text
'('           Punctuation
'nconc'       Name.Function
' '           Text
'elt'         Name.Function
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'delayed-func' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'with-eval-after-load' Name.Builtin
' '           Text
'('           Punctuation
'file'        Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Execute BODY after FILE is loaded.\nFILE is normally a feature name, but it can also be a file name,\nin case that file does not provide any feature.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  '        Text
'`'           Operator
'('           Punctuation
'eval-after-load' Name.Variable
' '           Text
','           Operator
'file'        Name.Variable
' '           Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
')'           Punctuation
' '           Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'after-load-functions' Name.Variable
' '           Text
'nil'         Name.Constant
'\n  '        Text
'"'           Literal.String
'Special hook run after loading a file.\nEach function there is called with a single argument, the absolute\nname of the file just loaded.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'do-after-load-evaluation' Name.Variable
' '           Text
'('           Punctuation
'abs-file'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Evaluate all ' Literal.String
"`eval-after-load'" Literal.String.Symbol
' forms, if any, for ABS-FILE.\nABS-FILE, a string, should be the absolute true name of a file just loaded.\nThis function is called directly from the C code.' Literal.String
'"'           Literal.String
'\n  '        Text
';; Run the relevant eval-after-load forms.' Comment.Single
'\n  '        Text
'('           Punctuation
'dolist'      Name.Builtin
' '           Text
'('           Punctuation
'a-l-element' Name.Variable
' '           Text
'after-load-alist' Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'a-l-element' Name.Variable
')'           Punctuation
')'           Punctuation
'\n               ' Text
'('           Punctuation
'string-match-p' Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'a-l-element' Name.Variable
')'           Punctuation
' '           Text
'abs-file'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
';; discard the file name regexp' Comment.Single
'\n      '    Text
'('           Punctuation
'mapc'        Name.Function
' '           Text
"#'"          Name.Function
'funcall'     Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'a-l-element' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
';; Complain when the user uses obsolete files.' Comment.Single
'\n  '        Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'save-match-data' Name.Builtin
'\n          ' Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'"'           Literal.String
'/obsolete/'  Literal.String
'\\\\'        Literal.String
'([^/]*'      Literal.String
'\\\\'        Literal.String
')'           Literal.String
'\\\\'        Literal.String
"'"           Literal.String
'"'           Literal.String
' '           Text
'abs-file'    Name.Variable
')'           Punctuation
'\n               ' Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'equal'       Name.Function
' '           Text
'"'           Literal.String
'loaddefs.el' Literal.String
'"'           Literal.String
' '           Text
'('           Punctuation
'match-string' Name.Variable
' '           Text
'1'           Literal.Number.Integer
' '           Text
'abs-file'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
';; Maybe we should just use display-warning?  This seems yucky...' Comment.Single
'\n    '      Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'file'        Name.Variable
' '           Text
'('           Punctuation
'file-name-nondirectory' Name.Function
' '           Text
'abs-file'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'msg'         Name.Variable
' '           Text
'('           Punctuation
'format'      Name.Function
' '           Text
'"'           Literal.String
'Package %s is obsolete!' Literal.String
'"'           Literal.String
'\n\t\t\t'    Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'file'        Name.Variable
' '           Text
'0'           Literal.Number.Integer
'\n\t\t\t\t   ' Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'.elc?'       Literal.String
'\\\\'        Literal.String
'>'           Literal.String
'"'           Literal.String
' '           Text
'file'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
';; Cribbed from cl--compiling-file.' Comment.Single
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'boundp'      Name.Function
' '           Text
"'byte-compile--outbuffer" Literal.String.Symbol
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'bufferp'     Name.Function
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
"'byte-compile--outbuffer" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'equal'       Name.Function
' '           Text
'('           Punctuation
'buffer-name' Name.Function
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
"'byte-compile--outbuffer" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n\t\t      ' Text
'"'           Literal.String
' *Compiler Output*' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
";; Don't warn about obsolete files using other obsolete files." Comment.Single
'\n\t  '      Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'byte-compile-current-file' Name.Variable
')'           Punctuation
'\n\t\t       ' Text
'('           Punctuation
'string-match-p' Name.Variable
' '           Text
'"'           Literal.String
'/obsolete/[^/]*' Literal.String
'\\\\'        Literal.String
"'"           Literal.String
'"'           Literal.String
'\n\t\t\t\t       ' Text
'('           Punctuation
'expand-file-name' Name.Function
'\n\t\t\t\t\t' Text
'byte-compile-current-file' Name.Variable
'\n\t\t\t\t\t' Text
'byte-compile-root-dir' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'byte-compile-log-warning' Name.Variable
' '           Text
'msg'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'run-with-timer' Name.Variable
' '           Text
'0'           Literal.Number.Integer
' '           Text
'nil'         Name.Constant
'\n\t\t\t'    Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'msg'         Name.Variable
')'           Punctuation
'\n\t\t\t  '  Text
'('           Punctuation
'message'     Name.Function
' '           Text
'"'           Literal.String
'%s'          Literal.String
'"'           Literal.String
' '           Text
'msg'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n                        ' Text
'msg'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n  '      Text
';; Finally, run any other hook.' Comment.Single
'\n  '        Text
'('           Punctuation
'run-hook-with-args' Name.Function
' '           Text
"'after-load-functions" Literal.String.Symbol
' '           Text
'abs-file'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'eval-next-after-load' Name.Variable
' '           Text
'('           Punctuation
'file'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Read the following input sexp, and run it whenever FILE is loaded.\nThis makes or adds to an entry on ' Literal.String
"`after-load-alist'" Literal.String.Symbol
'.\nFILE should be the name of a library, with no directory name.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'obsolete'    Name.Variable
' '           Text
'eval-after-load' Name.Variable
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'eval-after-load' Name.Variable
' '           Text
'file'        Name.Variable
' '           Text
'('           Punctuation
'read'        Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\x0c\n'  Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'display-delayed-warnings' Name.Variable
' '           Text
'('           Punctuation
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Display delayed warnings from ' Literal.String
"`delayed-warnings-list'" Literal.String.Symbol
'.\nUsed from ' Literal.String
"`delayed-warnings-hook'" Literal.String.Symbol
' (which see).' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'dolist'      Name.Builtin
' '           Text
'('           Punctuation
'warning'     Name.Variable
' '           Text
'('           Punctuation
'nreverse'    Name.Function
' '           Text
'delayed-warnings-list' Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'apply'       Name.Function
' '           Text
"'display-warning" Literal.String.Symbol
' '           Text
'warning'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'delayed-warnings-list' Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'collapse-delayed-warnings' Name.Variable
' '           Text
'('           Punctuation
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Remove duplicates from ' Literal.String
"`delayed-warnings-list'" Literal.String.Symbol
'.\nCollapse identical adjacent warnings into one (plus count).\nUsed from ' Literal.String
"`delayed-warnings-hook'" Literal.String.Symbol
' (which see).' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'count'       Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
'\n        '  Text
'collapsed'   Name.Variable
' '           Text
'warning'     Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'delayed-warnings-list' Name.Variable
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'warning'     Name.Variable
' '           Text
'('           Punctuation
'pop'         Name.Builtin
' '           Text
'delayed-warnings-list' Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'equal'       Name.Function
' '           Text
'warning'     Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'delayed-warnings-list' Name.Variable
')'           Punctuation
')'           Punctuation
'\n          ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'count'       Name.Variable
' '           Text
'('           Punctuation
'1+'          Name.Function
' '           Text
'count'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'>'           Name.Function
' '           Text
'count'       Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
'\n          ' Text
'('           Punctuation
'setcdr'      Name.Function
' '           Text
'warning'     Name.Variable
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'('           Punctuation
'format'      Name.Function
' '           Text
'"'           Literal.String
'%s [%d times]' Literal.String
'"'           Literal.String
' '           Text
'('           Punctuation
'cadr'        Name.Variable
' '           Text
'warning'     Name.Variable
')'           Punctuation
' '           Text
'count'       Name.Variable
')'           Punctuation
'\n                                ' Text
'('           Punctuation
'cddr'        Name.Variable
' '           Text
'warning'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n          ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'count'       Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'warning'     Name.Variable
' '           Text
'collapsed'   Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'delayed-warnings-list' Name.Variable
' '           Text
'('           Punctuation
'nreverse'    Name.Function
' '           Text
'collapsed'   Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

';; At present this is only used for Emacs internals.' Comment.Single
'\n'          Text

';; Ref http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00085.html' Comment.Single
'\n'          Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'delayed-warnings-hook' Name.Variable
' '           Text
"'"           Operator
'('           Punctuation
'collapse-delayed-warnings' Name.Variable
'\n                                ' Text
'display-delayed-warnings' Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Normal hook run to process and display delayed warnings.\nBy default, this hook contains functions to consolidate the\nwarnings listed in ' Literal.String
"`delayed-warnings-list'" Literal.String.Symbol
', display them, and set\n' Literal.String

"`delayed-warnings-list'" Literal.String.Symbol
' back to nil.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'delay-warning' Name.Variable
' '           Text
'('           Punctuation
'type'        Name.Variable
' '           Text
'message'     Name.Function
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'level'       Name.Variable
' '           Text
'buffer-name' Name.Function
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Display a delayed warning.\nAside from going through ' Literal.String
"`delayed-warnings-list'" Literal.String.Symbol
', this is equivalent\nto ' Literal.String
"`display-warning'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'type'        Name.Variable
' '           Text
'message'     Name.Function
' '           Text
'level'       Name.Variable
' '           Text
'buffer-name' Name.Function
')'           Punctuation
' '           Text
'delayed-warnings-list' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n\x0c\n'  Text

';;;; invisibility specs' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'add-to-invisibility-spec' Name.Variable
' '           Text
'('           Punctuation
'element'     Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Add ELEMENT to ' Literal.String
"`buffer-invisibility-spec'" Literal.String.Symbol
'.\nSee documentation for ' Literal.String
"`buffer-invisibility-spec'" Literal.String.Symbol
' for the kind of elements\nthat can be added.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'buffer-invisibility-spec' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'buffer-invisibility-spec' Name.Variable
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'buffer-invisibility-spec' Name.Variable
'\n\t'        Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'element'     Name.Variable
' '           Text
'buffer-invisibility-spec' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'remove-from-invisibility-spec' Name.Variable
' '           Text
'('           Punctuation
'element'     Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Remove ELEMENT from ' Literal.String
"`buffer-invisibility-spec'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'buffer-invisibility-spec' Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'buffer-invisibility-spec' Name.Variable
'\n\t    '    Text
'('           Punctuation
'delete'      Name.Function
' '           Text
'element'     Name.Variable
' '           Text
'buffer-invisibility-spec' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\x0c\n'    Text

';;;; Syntax tables.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'with-syntax-table' Name.Builtin
' '           Text
'('           Punctuation
'table'       Name.Variable
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Evaluate BODY with syntax table of current buffer set to TABLE.\nThe syntax table of the current buffer is saved, BODY is evaluated, and the\nsaved table is restored, even in case of an abnormal exit.\nValue is what BODY returns.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'old-table'   Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'table'       Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'old-buffer'  Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'buffer'      Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'`'           Operator
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'old-table'   Name.Variable
' '           Text
'('           Punctuation
'syntax-table' Name.Function
')'           Punctuation
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
','           Operator
'old-buffer'  Name.Variable
' '           Text
'('           Punctuation
'current-buffer' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'unwind-protect' Keyword
'\n\t   '     Text
'('           Punctuation
'progn'       Keyword
'\n\t     '   Text
'('           Punctuation
'set-syntax-table' Name.Function
' '           Text
','           Operator
'table'       Name.Variable
')'           Punctuation
'\n\t     '   Text
',@'          Operator
'body'        Name.Variable
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'save-current-buffer' Keyword
'\n\t   '     Text
'('           Punctuation
'set-buffer'  Name.Function
' '           Text
','           Operator
'old-buffer'  Name.Variable
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'set-syntax-table' Name.Function
' '           Text
','           Operator
'old-table'   Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'make-syntax-table' Name.Variable
' '           Text
'('           Punctuation
'&optional'   Keyword.Pseudo
' '           Text
'oldtable'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return a new syntax table.\nCreate a syntax table which inherits from OLDTABLE (if non-nil) or\nfrom ' Literal.String
"`standard-syntax-table'" Literal.String.Symbol
' otherwise.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'table'       Name.Variable
' '           Text
'('           Punctuation
'make-char-table' Name.Function
' '           Text
"'syntax-table" Literal.String.Symbol
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'set-char-table-parent' Name.Function
' '           Text
'table'       Name.Variable
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'oldtable'    Name.Variable
' '           Text
'('           Punctuation
'standard-syntax-table' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'table'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'syntax-after' Name.Variable
' '           Text
'('           Punctuation
'pos'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Return the raw syntax descriptor for the char after POS.\nIf POS is outside the buffer's accessible portion, return nil." Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'pos'         Name.Variable
' '           Text
'('           Punctuation
'point-min'   Name.Function
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'>='          Name.Function
' '           Text
'pos'         Name.Variable
' '           Text
'('           Punctuation
'point-max'   Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'st'          Name.Variable
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'parse-sexp-lookup-properties' Name.Variable
'\n\t\t  '    Text
'('           Punctuation
'get-char-property' Name.Function
' '           Text
'pos'         Name.Variable
' '           Text
"'syntax-table" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'consp'       Name.Function
' '           Text
'st'          Name.Variable
')'           Punctuation
' '           Text
'st'          Name.Variable
'\n\t'        Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'st'          Name.Variable
' '           Text
'('           Punctuation
'syntax-table' Name.Function
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'char-after'  Name.Function
' '           Text
'pos'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'syntax-class' Name.Variable
' '           Text
'('           Punctuation
'syntax'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the code for the syntax class described by SYNTAX.\n\nSYNTAX should be a raw syntax descriptor; the return value is a\ninteger which encodes the corresponding syntax class.  See Info\nnode ' Literal.String
'`'           Literal.String
"(elisp)Syntax Table Internals' for a list of codes.\n\nIf SYNTAX is nil, return nil." Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'and'         Keyword
' '           Text
'syntax'      Name.Variable
' '           Text
'('           Punctuation
'logand'      Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'syntax'      Name.Variable
')'           Punctuation
' '           Text
'65535'       Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\x0c\n'    Text

';; Utility motion commands' Comment.Single
'\n\n'        Text

';;  Whitespace' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'forward-whitespace' Name.Variable
' '           Text
'('           Punctuation
'arg'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Move point to the end of the next sequence of whitespace chars.\nEach such sequence may be a single newline, or a sequence of\nconsecutive space and/or tab characters.\nWith prefix argument ARG, do it ARG times if positive, or move\nbackwards ARG times if negative.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'interactive' Keyword
' '           Text
'"'           Literal.String
'^p'          Literal.String
'"'           Literal.String
')'           Punctuation
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'natnump'     Name.Function
' '           Text
'arg'         Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
're-search-forward' Name.Function
' '           Text
'"'           Literal.String
'[ '          Literal.String
'\\t'         Literal.String
']+'          Literal.String
'\\\\'        Literal.String
'|'           Literal.String
'\\n'         Literal.String
'"'           Literal.String
' '           Text
'nil'         Name.Constant
' '           Text
"'move"       Literal.String.Symbol
' '           Text
'arg'         Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'arg'         Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
're-search-backward' Name.Function
' '           Text
'"'           Literal.String
'[ '          Literal.String
'\\t'         Literal.String
']+'          Literal.String
'\\\\'        Literal.String
'|'           Literal.String
'\\n'         Literal.String
'"'           Literal.String
' '           Text
'nil'         Name.Constant
' '           Text
"'move"       Literal.String.Symbol
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'('           Punctuation
'char-after'  Name.Function
' '           Text
'('           Punctuation
'match-beginning' Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
' '           Text
'?\\n'        Literal.String.Char
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'skip-chars-backward' Name.Function
' '           Text
'"'           Literal.String
' '           Literal.String
'\\t'         Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'arg'         Name.Variable
' '           Text
'('           Punctuation
'1+'          Name.Function
' '           Text
'arg'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

';;  Symbols' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'forward-symbol' Name.Variable
' '           Text
'('           Punctuation
'arg'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Move point to the next position that is the end of a symbol.\nA symbol is any sequence of characters that are in either the\nword constituent or symbol constituent syntax class.\nWith prefix argument ARG, do it ARG times if positive, or move\nbackwards ARG times if negative.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'interactive' Keyword
' '           Text
'"'           Literal.String
'^p'          Literal.String
'"'           Literal.String
')'           Punctuation
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'natnump'     Name.Function
' '           Text
'arg'         Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
're-search-forward' Name.Function
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'('           Literal.String
'\\\\'        Literal.String
'sw'          Literal.String
'\\\\'        Literal.String
'|'           Literal.String
'\\\\'        Literal.String
's_'          Literal.String
'\\\\'        Literal.String
')+'          Literal.String
'"'           Literal.String
' '           Text
'nil'         Name.Constant
' '           Text
"'move"       Literal.String.Symbol
' '           Text
'arg'         Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'arg'         Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
're-search-backward' Name.Function
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'('           Literal.String
'\\\\'        Literal.String
'sw'          Literal.String
'\\\\'        Literal.String
'|'           Literal.String
'\\\\'        Literal.String
's_'          Literal.String
'\\\\'        Literal.String
')+'          Literal.String
'"'           Literal.String
' '           Text
'nil'         Name.Constant
' '           Text
"'move"       Literal.String.Symbol
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'skip-syntax-backward' Name.Function
' '           Text
'"'           Literal.String
'w_'          Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'arg'         Name.Variable
' '           Text
'('           Punctuation
'1+'          Name.Function
' '           Text
'arg'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

';;  Syntax blocks' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'forward-same-syntax' Name.Variable
' '           Text
'('           Punctuation
'&optional'   Keyword.Pseudo
' '           Text
'arg'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Move point past all characters with the same syntax class.\nWith prefix argument ARG, do it ARG times if positive, or move\nbackwards ARG times if negative.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'interactive' Keyword
' '           Text
'"'           Literal.String
'^p'          Literal.String
'"'           Literal.String
')'           Punctuation
'\n  '        Text
'('           Punctuation
'or'          Keyword
' '           Text
'arg'         Name.Variable
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'arg'         Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'arg'         Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n    '      Text
'('           Punctuation
'skip-syntax-backward' Name.Function
'\n     '     Text
'('           Punctuation
'char-to-string' Name.Function
' '           Text
'('           Punctuation
'char-syntax' Name.Function
' '           Text
'('           Punctuation
'char-before' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'arg'         Name.Variable
' '           Text
'('           Punctuation
'1+'          Name.Function
' '           Text
'arg'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'>'           Name.Function
' '           Text
'arg'         Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n    '      Text
'('           Punctuation
'skip-syntax-forward' Name.Function
' '           Text
'('           Punctuation
'char-to-string' Name.Function
' '           Text
'('           Punctuation
'char-syntax' Name.Function
' '           Text
'('           Punctuation
'char-after'  Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'arg'         Name.Variable
' '           Text
'('           Punctuation
'1-'          Name.Function
' '           Text
'arg'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\x0c\n'  Text

';;;; Text clones' Comment.Single
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'text-clone--maintaining' Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'text-clone--maintain' Name.Variable
' '           Text
'('           Punctuation
'ol1'         Name.Variable
' '           Text
'after'       Name.Variable
' '           Text
'beg'         Name.Variable
' '           Text
'end'         Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'_len'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Propagate the changes made under the overlay OL1 to the other clones.\nThis is used on the ' Literal.String
"`modification-hooks'" Literal.String.Symbol
' property of text clones.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'after'       Name.Variable
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'undo-in-progress' Name.Variable
')'           Punctuation
'\n             ' Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'text-clone--maintaining' Name.Variable
')'           Punctuation
'\n             ' Text
'('           Punctuation
'overlay-start' Name.Function
' '           Text
'ol1'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'margin'      Name.Variable
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'overlay-get' Name.Function
' '           Text
'ol1'         Name.Variable
' '           Text
"'text-clone-spreadp" Literal.String.Symbol
')'           Punctuation
' '           Text
'1'           Literal.Number.Integer
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'beg'         Name.Variable
' '           Text
'('           Punctuation
'max'         Name.Function
' '           Text
'beg'         Name.Variable
' '           Text
'('           Punctuation
'+'           Name.Function
' '           Text
'('           Punctuation
'overlay-start' Name.Function
' '           Text
'ol1'         Name.Variable
')'           Punctuation
' '           Text
'margin'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'end'         Name.Variable
' '           Text
'('           Punctuation
'min'         Name.Function
' '           Text
'end'         Name.Variable
' '           Text
'('           Punctuation
'-'           Name.Function
' '           Text
'('           Punctuation
'overlay-end' Name.Function
' '           Text
'ol1'         Name.Variable
')'           Punctuation
' '           Text
'margin'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'<='          Name.Function
' '           Text
'beg'         Name.Variable
' '           Text
'end'         Name.Variable
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'save-excursion' Keyword
'\n\t  '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'overlay-get' Name.Function
' '           Text
'ol1'         Name.Variable
' '           Text
"'text-clone-syntax" Literal.String.Symbol
')'           Punctuation
'\n\t    '    Text
";; Check content of the clone's text." Comment.Single
'\n\t    '    Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'cbeg'        Name.Variable
' '           Text
'('           Punctuation
'+'           Name.Function
' '           Text
'('           Punctuation
'overlay-start' Name.Function
' '           Text
'ol1'         Name.Variable
')'           Punctuation
' '           Text
'margin'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t  '    Text
'('           Punctuation
'cend'        Name.Variable
' '           Text
'('           Punctuation
'-'           Name.Function
' '           Text
'('           Punctuation
'overlay-end' Name.Function
' '           Text
'ol1'         Name.Variable
')'           Punctuation
' '           Text
'margin'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'goto-char'   Name.Function
' '           Text
'cbeg'        Name.Variable
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'save-match-data' Name.Builtin
'\n\t\t'      Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
're-search-forward' Name.Function
'\n\t\t\t  '  Text
'('           Punctuation
'overlay-get' Name.Function
' '           Text
'ol1'         Name.Variable
' '           Text
"'text-clone-syntax" Literal.String.Symbol
')'           Punctuation
' '           Text
'cend'        Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n\t\t    '  Text
';; Mark the overlay for deletion.' Comment.Single
'\n\t\t    '  Text
'('           Punctuation
'setq'        Keyword
' '           Text
'end'         Name.Variable
' '           Text
'cbeg'        Name.Variable
')'           Punctuation
'\n\t\t  '    Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'('           Punctuation
'match-end'   Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'cend'        Name.Variable
')'           Punctuation
'\n\t\t    '  Text
';; Shrink the clone at its end.' Comment.Single
'\n\t\t    '  Text
'('           Punctuation
'setq'        Keyword
' '           Text
'end'         Name.Variable
' '           Text
'('           Punctuation
'min'         Name.Function
' '           Text
'end'         Name.Variable
' '           Text
'('           Punctuation
'match-end'   Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t    '  Text
'('           Punctuation
'move-overlay' Name.Function
' '           Text
'ol1'         Name.Variable
' '           Text
'('           Punctuation
'overlay-start' Name.Function
' '           Text
'ol1'         Name.Variable
')'           Punctuation
'\n\t\t\t\t  ' Text
'('           Punctuation
'+'           Name.Function
' '           Text
'('           Punctuation
'match-end'   Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'margin'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t  '    Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'>'           Name.Function
' '           Text
'('           Punctuation
'match-beginning' Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'cbeg'        Name.Variable
')'           Punctuation
'\n\t\t    '  Text
';; Shrink the clone at its beginning.' Comment.Single
'\n\t\t    '  Text
'('           Punctuation
'setq'        Keyword
' '           Text
'beg'         Name.Variable
' '           Text
'('           Punctuation
'max'         Name.Function
' '           Text
'('           Punctuation
'match-beginning' Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'beg'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t    '  Text
'('           Punctuation
'move-overlay' Name.Function
' '           Text
'ol1'         Name.Variable
' '           Text
'('           Punctuation
'-'           Name.Function
' '           Text
'('           Punctuation
'match-beginning' Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'margin'      Name.Variable
')'           Punctuation
'\n\t\t\t\t  ' Text
'('           Punctuation
'overlay-end' Name.Function
' '           Text
'ol1'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
';; Now go ahead and update the clones.' Comment.Single
'\n\t  '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'head'        Name.Variable
' '           Text
'('           Punctuation
'-'           Name.Function
' '           Text
'beg'         Name.Variable
' '           Text
'('           Punctuation
'overlay-start' Name.Function
' '           Text
'ol1'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'tail'        Name.Variable
' '           Text
'('           Punctuation
'-'           Name.Function
' '           Text
'('           Punctuation
'overlay-end' Name.Function
' '           Text
'ol1'         Name.Variable
')'           Punctuation
' '           Text
'end'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'str'         Name.Variable
' '           Text
'('           Punctuation
'buffer-substring' Name.Function
' '           Text
'beg'         Name.Variable
' '           Text
'end'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'nothing-left' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'text-clone--maintaining' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'dolist'      Name.Builtin
' '           Text
'('           Punctuation
'ol2'         Name.Variable
' '           Text
'('           Punctuation
'overlay-get' Name.Function
' '           Text
'ol1'         Name.Variable
' '           Text
"'text-clones" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'oe'          Name.Variable
' '           Text
'('           Punctuation
'overlay-end' Name.Function
' '           Text
'ol2'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'ol1'         Name.Variable
' '           Text
'ol2'         Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'oe'          Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t  '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'nothing-left' Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n\t\t  '    Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'mod-beg'     Name.Variable
' '           Text
'('           Punctuation
'+'           Name.Function
' '           Text
'('           Punctuation
'overlay-start' Name.Function
' '           Text
'ol2'         Name.Variable
')'           Punctuation
' '           Text
'head'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t    '  Text
";;(overlay-put ol2 'modification-hooks nil)" Comment.Single
'\n\t\t    '  Text
'('           Punctuation
'goto-char'   Name.Function
' '           Text
'('           Punctuation
'-'           Name.Function
' '           Text
'('           Punctuation
'overlay-end' Name.Function
' '           Text
'ol2'         Name.Variable
')'           Punctuation
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t    '  Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'>'           Name.Function
' '           Text
'mod-beg'     Name.Variable
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
')'           Punctuation
'\n\t\t      ' Text
'('           Punctuation
'save-excursion' Keyword
' '           Text
'('           Punctuation
'insert'      Name.Function
' '           Text
'str'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t      ' Text
'('           Punctuation
'delete-region' Name.Function
' '           Text
'mod-beg'     Name.Variable
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t    '  Text
";;(overlay-put ol2 'modification-hooks '(text-clone--maintain))" Comment.Single
'\n\t\t    '  Text
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'nothing-left' Name.Variable
' '           Text
'('           Punctuation
'delete-overlay' Name.Function
' '           Text
'ol1'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'text-clone-create' Name.Variable
' '           Text
'('           Punctuation
'start'       Name.Variable
' '           Text
'end'         Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'spreadp'     Name.Variable
' '           Text
'syntax'      Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Create a text clone of START...END at point.\nText clones are chunks of text that are automatically kept identical:\nchanges done to one of the clones will be immediately propagated to the other.\n\nThe buffer's content at point is assumed to be already identical to\nthe one between START and END.\nIf SYNTAX is provided it's a regexp that describes the possible text of\nthe clones; the clone will be shrunk or killed if necessary to ensure that\nits text matches the regexp.\nIf SPREADP is non-nil it indicates that text inserted before/after the\nclone should be incorporated in the clone." Literal.String
'"'           Literal.String
'\n  '        Text
";; To deal with SPREADP we can either use an overlay with `nil t' along" Comment.Single
'\n  '        Text
';; with insert-(behind|in-front-of)-hooks or use a slightly larger overlay' Comment.Single
'\n  '        Text
";; (with a one-char margin at each end) with `t nil'." Comment.Single
'\n  '        Text
';; We opted for a larger overlay because it behaves better in the case' Comment.Single
'\n  '        Text
';; where the clone is reduced to the empty string (we want the overlay to' Comment.Single
'\n  '        Text
";; stay when the clone's content is the empty string and we want to use" Comment.Single
'\n  '        Text
";; `evaporate' to make sure those overlays get deleted when needed)." Comment.Single
'\n  '        Text
';;'          Comment.Single
'\n  '        Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'pt-end'      Name.Variable
' '           Text
'('           Punctuation
'+'           Name.Function
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
' '           Text
'('           Punctuation
'-'           Name.Function
' '           Text
'end'         Name.Variable
' '           Text
'start'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  \t '     Text
'('           Punctuation
'start-margin' Name.Variable
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'spreadp'     Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'bobp'        Name.Function
')'           Punctuation
' '           Text
'('           Punctuation
'<='          Name.Function
' '           Text
'start'       Name.Variable
' '           Text
'('           Punctuation
'point-min'   Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t\t   ' Text
'0'           Literal.Number.Integer
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n  \t '     Text
'('           Punctuation
'end-margin'  Name.Variable
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'spreadp'     Name.Variable
')'           Punctuation
'\n\t\t\t     ' Text
'('           Punctuation
'>='          Name.Function
' '           Text
'pt-end'      Name.Variable
' '           Text
'('           Punctuation
'point-max'   Name.Function
')'           Punctuation
')'           Punctuation
'\n  \t\t\t     ' Text
'('           Punctuation
'>='          Name.Function
' '           Text
'start'       Name.Variable
' '           Text
'('           Punctuation
'point-max'   Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  \t\t\t ' Text
'0'           Literal.Number.Integer
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n         ' Text
';; FIXME: Reuse overlays at point to extend dups!' Comment.Single
'\n  \t '     Text
'('           Punctuation
'ol1'         Name.Variable
' '           Text
'('           Punctuation
'make-overlay' Name.Function
' '           Text
'('           Punctuation
'-'           Name.Function
' '           Text
'start'       Name.Variable
' '           Text
'start-margin' Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'+'           Name.Function
' '           Text
'end'         Name.Variable
' '           Text
'end-margin'  Name.Variable
')'           Punctuation
' '           Text
'nil'         Name.Constant
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n  \t '     Text
'('           Punctuation
'ol2'         Name.Variable
' '           Text
'('           Punctuation
'make-overlay' Name.Function
' '           Text
'('           Punctuation
'-'           Name.Function
' '           Text
'('           Punctuation
'point'       Name.Function
')'           Punctuation
' '           Text
'start-margin' Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'+'           Name.Function
' '           Text
'pt-end'      Name.Variable
' '           Text
'end-margin'  Name.Variable
')'           Punctuation
' '           Text
'nil'         Name.Constant
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'dups'        Name.Variable
' '           Text
'('           Punctuation
'list'        Name.Function
' '           Text
'ol1'         Name.Variable
' '           Text
'ol2'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'overlay-put' Name.Function
' '           Text
'ol1'         Name.Variable
' '           Text
"'modification-hooks" Literal.String.Symbol
' '           Text
"'"           Operator
'('           Punctuation
'text-clone--maintain' Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'spreadp'     Name.Variable
' '           Text
'('           Punctuation
'overlay-put' Name.Function
' '           Text
'ol1'         Name.Variable
' '           Text
"'text-clone-spreadp" Literal.String.Symbol
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'syntax'      Name.Variable
' '           Text
'('           Punctuation
'overlay-put' Name.Function
' '           Text
'ol1'         Name.Variable
' '           Text
"'text-clone-syntax" Literal.String.Symbol
' '           Text
'syntax'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
";;(overlay-put ol1 'face 'underline)" Comment.Single
'\n    '      Text
'('           Punctuation
'overlay-put' Name.Function
' '           Text
'ol1'         Name.Variable
' '           Text
"'evaporate"  Literal.String.Symbol
' '           Text
't'           Name.Constant
')'           Punctuation
'\n    '      Text
'('           Punctuation
'overlay-put' Name.Function
' '           Text
'ol1'         Name.Variable
' '           Text
"'text-clones" Literal.String.Symbol
' '           Text
'dups'        Name.Variable
')'           Punctuation
'\n    '      Text
';;'          Comment.Single
'\n    '      Text
'('           Punctuation
'overlay-put' Name.Function
' '           Text
'ol2'         Name.Variable
' '           Text
"'modification-hooks" Literal.String.Symbol
' '           Text
"'"           Operator
'('           Punctuation
'text-clone--maintain' Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'spreadp'     Name.Variable
' '           Text
'('           Punctuation
'overlay-put' Name.Function
' '           Text
'ol2'         Name.Variable
' '           Text
"'text-clone-spreadp" Literal.String.Symbol
' '           Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'syntax'      Name.Variable
' '           Text
'('           Punctuation
'overlay-put' Name.Function
' '           Text
'ol2'         Name.Variable
' '           Text
"'text-clone-syntax" Literal.String.Symbol
' '           Text
'syntax'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
";;(overlay-put ol2 'face 'underline)" Comment.Single
'\n    '      Text
'('           Punctuation
'overlay-put' Name.Function
' '           Text
'ol2'         Name.Variable
' '           Text
"'evaporate"  Literal.String.Symbol
' '           Text
't'           Name.Constant
')'           Punctuation
'\n    '      Text
'('           Punctuation
'overlay-put' Name.Function
' '           Text
'ol2'         Name.Variable
' '           Text
"'text-clones" Literal.String.Symbol
' '           Text
'dups'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\x0c\n'    Text

';;;; Mail user agents.' Comment.Single
'\n\n'        Text

';; Here we include just enough for other packages to be able' Comment.Single
'\n'          Text

';; to define them.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'define-mail-user-agent' Name.Variable
' '           Text
'('           Punctuation
'symbol'      Name.Variable
' '           Text
'composefunc' Name.Variable
' '           Text
'sendfunc'    Name.Variable
'\n\t\t\t\t      ' Text
'&optional'   Keyword.Pseudo
' '           Text
'abortfunc'   Name.Variable
' '           Text
'hookvar'     Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Define a symbol to identify a mail-sending package for ' Literal.String
"`mail-user-agent'" Literal.String.Symbol
'.\n\nSYMBOL can be any Lisp symbol.  Its function definition and/or\nvalue as a variable do not matter for this usage; we use only certain\nproperties on its property list, to encode the rest of the arguments.\n\nCOMPOSEFUNC is program callable function that composes an outgoing\nmail message buffer.  This function should set up the basics of the\nbuffer without requiring user interaction.  It should populate the\nstandard mail headers, leaving the ' Literal.String
"`to:'"       Literal.String.Symbol
' and '       Literal.String
"`subject:'"  Literal.String.Symbol
' headers blank\nby default.\n\nCOMPOSEFUNC should accept several optional arguments--the same\narguments that ' Literal.String
"`compose-mail'" Literal.String.Symbol
" takes.  See that function's documentation.\n\nSENDFUNC is the command a user would run to send the message.\n\nOptional ABORTFUNC is the command a user would run to abort the\nmessage.  For mail packages that don't have a separate abort function,\nthis can be " Literal.String
"`kill-buffer'" Literal.String.Symbol
' (the equivalent of omitting this argument).\n\nOptional HOOKVAR is a hook variable that gets run before the message\nis actually sent.  Callers that use the ' Literal.String
"`mail-user-agent'" Literal.String.Symbol
' may\ninstall a hook function temporarily on this hook variable.\nIf HOOKVAR is nil, ' Literal.String
"`mail-send-hook'" Literal.String.Symbol
' is used.\n\nThe properties used on SYMBOL are ' Literal.String
"`composefunc'" Literal.String.Symbol
', '          Literal.String
"`sendfunc'"  Literal.String.Symbol
',\n'         Literal.String

"`abortfunc'" Literal.String.Symbol
', and '      Literal.String
"`hookvar'"   Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'put'         Name.Function
' '           Text
'symbol'      Name.Variable
' '           Text
"'composefunc" Literal.String.Symbol
' '           Text
'composefunc' Name.Variable
')'           Punctuation
'\n  '        Text
'('           Punctuation
'put'         Name.Function
' '           Text
'symbol'      Name.Variable
' '           Text
"'sendfunc"   Literal.String.Symbol
' '           Text
'sendfunc'    Name.Variable
')'           Punctuation
'\n  '        Text
'('           Punctuation
'put'         Name.Function
' '           Text
'symbol'      Name.Variable
' '           Text
"'abortfunc"  Literal.String.Symbol
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'abortfunc'   Name.Variable
' '           Text
"'kill-buffer" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'put'         Name.Function
' '           Text
'symbol'      Name.Variable
' '           Text
"'hookvar"    Literal.String.Symbol
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'hookvar'     Name.Variable
' '           Text
"'mail-send-hook" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\x0c\n'    Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'called-interactively-p-functions' Name.Variable
' '           Text
'nil'         Name.Constant
'\n  '        Text
'"'           Literal.String
'Special hook called to skip special frames in ' Literal.String
"`called-interactively-p'" Literal.String.Symbol
'.\nThe functions are called with 3 arguments: (I FRAME1 FRAME2),\nwhere FRAME1 is a ' Literal.String
'\\"'         Literal.String
'current frame' Literal.String
'\\"'         Literal.String
", FRAME2 is the next frame,\nI is the index of the frame after FRAME2.  It should return nil\nif those frames don't seem special and otherwise, it should return\nthe number of frames to skip (minus 1)." Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defconst'    Keyword
' '           Text
'internal--funcall-interactively' Name.Variable
'\n  '        Text
'('           Punctuation
'symbol-function' Name.Function
' '           Text
"'funcall-interactively" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'called-interactively-p' Name.Variable
' '           Text
'('           Punctuation
'&optional'   Keyword.Pseudo
' '           Text
'kind'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return t if the containing function was called by ' Literal.String
"`call-interactively'" Literal.String.Symbol
'.\nIf KIND is ' Literal.String
"`interactive'" Literal.String.Symbol
', then only return t if the call was made\ninteractively by the user, i.e. not in ' Literal.String
"`noninteractive'" Literal.String.Symbol
' mode nor\nwhen ' Literal.String
"`executing-kbd-macro'" Literal.String.Symbol
'.\nIf KIND is ' Literal.String
"`any'"       Literal.String.Symbol
', on the other hand, it will return t for any kind of\ninteractive call, including being called as the binding of a key or\nfrom a keyboard macro, even in ' Literal.String
"`noninteractive'" Literal.String.Symbol
' mode.\n\nThis function is very brittle, it may fail to return the intended result when\nthe code is debugged, advised, or instrumented in some form.  Some macros and\nspecial forms (such as ' Literal.String
"`condition-case'" Literal.String.Symbol
') may also sometimes wrap their bodies\nin a ' Literal.String
"`lambda'"    Literal.String.Symbol
', so any call to ' Literal.String
"`called-interactively-p'" Literal.String.Symbol
' from those bodies will\nindicate whether that lambda (rather than the surrounding function) was called\ninteractively.\n\nInstead of using this function, it is cleaner and more reliable to give your\nfunction an extra optional argument whose ' Literal.String
"`interactive'" Literal.String.Symbol
' spec specifies\nnon-nil unconditionally (' Literal.String
'\\"'         Literal.String
'p'           Literal.String
'\\"'         Literal.String
' is a good way to do this), or via\n' Literal.String

'\\('         Literal.String
'not (or executing-kbd-macro noninteractive)).\n\nThe only known proper use of ' Literal.String
"`interactive'" Literal.String.Symbol
" for KIND is in deciding\nwhether to display a helpful message, or how to display it.  If you're\nthinking of using it for any other purpose, it is quite likely that\nyou're making a mistake.  Think: what do you want to do when the\ncommand is called from a keyboard macro?" Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'advertised-calling-convention' Name.Variable
' '           Text
'('           Punctuation
'kind'        Name.Variable
')'           Punctuation
' '           Text
'"'           Literal.String
'23.1'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'kind'        Name.Variable
' '           Text
"'interactive" Literal.String.Symbol
')'           Punctuation
'\n                  ' Text
'('           Punctuation
'or'          Keyword
' '           Text
'executing-kbd-macro' Name.Variable
' '           Text
'noninteractive' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'i'           Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text
';; 0 is the called-interactively-p frame.' Comment.Single
'\n           ' Text
'frame'       Name.Variable
' '           Text
'nextframe'   Name.Variable
'\n           ' Text
'('           Punctuation
'get-next-frame' Name.Variable
'\n            ' Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
')'           Punctuation
'\n              ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'frame'       Name.Variable
' '           Text
'nextframe'   Name.Variable
')'           Punctuation
'\n              ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'nextframe'   Name.Variable
' '           Text
'('           Punctuation
'backtrace-frame' Name.Function
' '           Text
'i'           Name.Variable
' '           Text
"'called-interactively-p" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n              ' Text
';; (message "Frame %d = %S" i nextframe)' Comment.Single
'\n              ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
'i'           Name.Variable
' '           Text
'('           Punctuation
'1+'          Name.Function
' '           Text
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'get-next-frame' Name.Variable
')'           Punctuation
' '           Text
';; Get the first frame.' Comment.Single
'\n      '    Text
'('           Punctuation
'while'       Keyword
'\n          ' Text
';; FIXME: The edebug and advice handling should be made modular and' Comment.Single
'\n          ' Text
';; provided directly by edebug.el and nadvice.el.' Comment.Single
'\n          ' Text
'('           Punctuation
'progn'       Keyword
'\n            ' Text
';; frame    =(backtrace-frame i-2)' Comment.Single
'\n            ' Text
';; nextframe=(backtrace-frame i-1)' Comment.Single
'\n            ' Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'get-next-frame' Name.Variable
')'           Punctuation
'\n            ' Text
";; `pcase' would be a fairly good fit here, but it sometimes moves" Comment.Single
'\n            ' Text
';; branches within local functions, which then messes up the' Comment.Single
'\n            ' Text
";; `backtrace-frame' data we get," Comment.Single
'\n            ' Text
'('           Punctuation
'or'          Keyword
'\n             ' Text
';; Skip special forms (from non-compiled code).' Comment.Single
'\n             ' Text
'('           Punctuation
'and'         Keyword
' '           Text
'frame'       Name.Variable
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'frame'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n             ' Text
";; Skip also `interactive-p' (because we don't want to know if" Comment.Single
'\n             ' Text
";; interactive-p was called interactively but if it's caller was)" Comment.Single
'\n             ' Text
";; and `byte-code' (idem; this appears in subexpressions of things" Comment.Single
'\n             ' Text
';; like condition-case, which are wrapped in a separate bytecode' Comment.Single
'\n             ' Text
';; chunk).'  Comment.Single
'\n             ' Text
';; FIXME: For lexical-binding code, this is much worse,' Comment.Single
'\n             ' Text
';; because the frames look like "byte-code -> funcall -> #[...]",' Comment.Single
'\n             ' Text
';; which is not a reliable signature.' Comment.Single
'\n             ' Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'1'           Literal.Number.Integer
' '           Text
'frame'       Name.Variable
')'           Punctuation
' '           Text
"'"           Operator
'('           Punctuation
'interactive-p' Name.Variable
' '           Text
"'byte-code"  Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n             ' Text
';; Skip package-specific stack-frames.' Comment.Single
'\n             ' Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'skip'        Name.Variable
' '           Text
'('           Punctuation
'run-hook-with-args-until-success' Name.Function
'\n                          ' Text
"'called-interactively-p-functions" Literal.String.Symbol
'\n                          ' Text
'i'           Name.Variable
' '           Text
'frame'       Name.Variable
' '           Text
'nextframe'   Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n               ' Text
'('           Punctuation
'pcase'       Name.Builtin
' '           Text
'skip'        Name.Variable
'\n                 ' Text
'('           Punctuation
'`'           Operator
'nil'         Name.Constant
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n                 ' Text
'('           Punctuation
'`'           Operator
'0'           Literal.Number.Integer
' '           Text
't'           Name.Constant
')'           Punctuation
'\n                 ' Text
'('           Punctuation
'_'           Name.Variable
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
'i'           Name.Variable
' '           Text
'('           Punctuation
'+'           Name.Function
' '           Text
'i'           Name.Variable
' '           Text
'skip'        Name.Variable
' '           Text
'-1'          Literal.Number.Integer
')'           Punctuation
')'           Punctuation
' '           Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'get-next-frame' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
';; Now `frame\' should be "the function from which we were called".' Comment.Single
'\n      '    Text
'('           Punctuation
'pcase'       Name.Builtin
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'frame'       Name.Variable
' '           Text
'nextframe'   Name.Variable
')'           Punctuation
'\n        '  Text
";; No subr calls `interactive-p', so we can rule that out." Comment.Single
'\n        '  Text
'('           Punctuation
'`'           Operator
'('           Punctuation
'('           Punctuation
','           Operator
'_'           Name.Variable
' '           Text
','           Operator
'('           Punctuation
'pred'        Name.Variable
' '           Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'f'           Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'subrp'       Name.Function
' '           Text
'('           Punctuation
'indirect-function' Name.Function
' '           Text
'f'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
' '           Text
'.'           Operator
' '           Text
','           Operator
'_'           Name.Variable
')'           Punctuation
' '           Text
'.'           Operator
' '           Text
','           Operator
'_'           Name.Variable
')'           Punctuation
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n        '  Text
';; In case #<subr funcall-interactively> without going through the' Comment.Single
'\n        '  Text
";; `funcall-interactively' symbol (bug#3984)." Comment.Single
'\n        '  Text
'('           Punctuation
'`'           Operator
'('           Punctuation
','           Operator
'_'           Name.Variable
' '           Text
'.'           Operator
' '           Text
'('           Punctuation
't'           Name.Constant
' '           Text
','           Operator
'('           Punctuation
'pred'        Name.Variable
' '           Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
'f'           Name.Variable
')'           Punctuation
'\n                            ' Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'internal--funcall-interactively' Name.Variable
'\n                                ' Text
'('           Punctuation
'indirect-function' Name.Function
' '           Text
'f'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                   ' Text
'.'           Operator
' '           Text
','           Operator
'_'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n         ' Text
't'           Name.Constant
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'interactive-p' Name.Variable
' '           Text
'('           Punctuation
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return t if the containing function was run directly by user input.\nThis means that the function was called with ' Literal.String
"`call-interactively'" Literal.String.Symbol
'\n'          Literal.String

'\\('         Literal.String
'which includes being called as the binding of a key)\nand input is currently coming from the keyboard (not a keyboard macro),\nand Emacs is not running in batch mode (' Literal.String
"`noninteractive'" Literal.String.Symbol
' is nil).\n\nThe only known proper use of ' Literal.String
"`interactive-p'" Literal.String.Symbol
" is in deciding whether to\ndisplay a helpful message, or how to display it.  If you're thinking\nof using it for any other purpose, it is quite likely that you're\nmaking a mistake.  Think: what do you want to do when the command is\ncalled from a keyboard macro or in batch mode?\n\nTo test whether your function was called with " Literal.String
"`call-interactively'" Literal.String.Symbol
',\neither (i) add an extra optional argument and give it an ' Literal.String
"`interactive'" Literal.String.Symbol
'\nspec that specifies non-nil unconditionally (such as ' Literal.String
'\\"'         Literal.String
'p'           Literal.String
'\\"'         Literal.String
'); or (ii)\nuse ' Literal.String
"`called-interactively-p'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'obsolete'    Name.Variable
' '           Text
'called-interactively-p' Name.Variable
' '           Text
'"'           Literal.String
'23.2'        Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'called-interactively-p' Name.Variable
' '           Text
"'interactive" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'internal-push-keymap' Name.Variable
' '           Text
'('           Punctuation
'keymap'      Name.Variable
' '           Text
'symbol'      Name.Variable
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'map'         Name.Variable
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'symbol'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'keymap'      Name.Variable
' '           Text
'map'         Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'memq'        Name.Function
' '           Text
"'add-keymap-witness" Literal.String.Symbol
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'symbol'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'setq'        Keyword
' '           Text
'map'         Name.Variable
' '           Text
'('           Punctuation
'make-composed-keymap' Name.Variable
' '           Text
'nil'         Name.Constant
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'symbol'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
"'add-keymap-witness" Literal.String.Symbol
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'map'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n        '  Text
'('           Punctuation
'set'         Name.Function
' '           Text
'symbol'      Name.Variable
' '           Text
'map'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'keymap'      Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'map'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'internal-pop-keymap' Name.Variable
' '           Text
'('           Punctuation
'keymap'      Name.Variable
' '           Text
'symbol'      Name.Variable
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'map'         Name.Variable
' '           Text
'('           Punctuation
'symbol-value' Name.Function
' '           Text
'symbol'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'memq'        Name.Function
' '           Text
'keymap'      Name.Variable
' '           Text
'map'         Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setf'        Name.Builtin
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'map'         Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'delq'        Name.Function
' '           Text
'keymap'      Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'map'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'tail'        Name.Variable
' '           Text
'('           Punctuation
'cddr'        Name.Variable
' '           Text
'map'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'keymapp'     Name.Function
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n           ' Text
'('           Punctuation
'eq'          Name.Function
' '           Text
"'add-keymap-witness" Literal.String.Symbol
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'1'           Literal.Number.Integer
' '           Text
'map'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n           ' Text
'('           Punctuation
'set'         Name.Function
' '           Text
'symbol'      Name.Variable
' '           Text
'tail'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'define-obsolete-function-alias' Name.Builtin
'\n  '        Text
"'set-temporary-overlay-map" Literal.String.Symbol
' '           Text
"'set-transient-map" Literal.String.Symbol
' '           Text
'"'           Literal.String
'24.4'        Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'set-transient-map' Name.Variable
' '           Text
'('           Punctuation
'map'         Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'keep-pred'   Name.Variable
' '           Text
'on-exit'     Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Set MAP as a temporary keymap taking precedence over other keymaps.\nNormally, MAP is used only once, to look up the very next key.\nHowever, if the optional argument KEEP-PRED is t, MAP stays\nactive if a key from MAP is used.  KEEP-PRED can also be a\nfunction of no arguments: it is called from ' Literal.String
"`pre-command-hook'" Literal.String.Symbol
' and\nif it returns non-nil, then MAP stays active.\n\nOptional arg ON-EXIT, if non-nil, specifies a function that is\ncalled, with no arguments, after MAP is deactivated.\n\nThis uses ' Literal.String
"`overriding-terminal-local-map'" Literal.String.Symbol
' which takes precedence over all other\nkeymaps.  As usual, if no match for a key is found in MAP, the normal key\nlookup sequence then continues.\n\nThis returns an ' Literal.String
'\\"'         Literal.String
'exit function' Literal.String
'\\"'         Literal.String
', which can be called with no argument\nto deactivate this transient map, regardless of KEEP-PRED.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'clearfun'    Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'clear-transient-map' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n         ' Text
'('           Punctuation
'exitfun'     Name.Variable
'\n          ' Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
')'           Punctuation
'\n            ' Text
'('           Punctuation
'internal-pop-keymap' Name.Variable
' '           Text
'map'         Name.Variable
' '           Text
"'overriding-terminal-local-map" Literal.String.Symbol
')'           Punctuation
'\n            ' Text
'('           Punctuation
'remove-hook' Name.Variable
' '           Text
"'pre-command-hook" Literal.String.Symbol
' '           Text
'clearfun'    Name.Variable
')'           Punctuation
'\n            ' Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'on-exit'     Name.Variable
' '           Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'on-exit'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
";; Don't use letrec, because equal (in add/remove-hook) would get trapped" Comment.Single
'\n    '      Text
';; in a cycle.' Comment.Single
'\n    '      Text
'('           Punctuation
'fset'        Name.Function
' '           Text
'clearfun'    Name.Variable
'\n          ' Text
'('           Punctuation
'lambda'      Name.Builtin
' '           Text
'('           Punctuation
')'           Punctuation
'\n            ' Text
'('           Punctuation
'with-demoted-errors' Name.Builtin
' '           Text
'"'           Literal.String
'set-transient-map PCH: %S' Literal.String
'"'           Literal.String
'\n              ' Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'cond'        Keyword
'\n                       ' Text
'('           Punctuation
'('           Punctuation
'null'        Name.Function
' '           Text
'keep-pred'   Name.Variable
')'           Punctuation
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n                       ' Text
'('           Punctuation
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'map'         Name.Variable
' '           Text
'('           Punctuation
'cadr'        Name.Variable
' '           Text
'overriding-terminal-local-map' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                        ' Text
";; There's presumably some other transient-map in" Comment.Single
'\n                        ' Text
';; effect.  Wait for that one to terminate before we' Comment.Single
'\n                        ' Text
';; remove ourselves.' Comment.Single
'\n                        ' Text
';; For example, if isearch and C-u both use transient' Comment.Single
'\n                        ' Text
';; maps, then the lifetime of the C-u should be nested' Comment.Single
'\n                        ' Text
";; within isearch's, so the pre-command-hook of" Comment.Single
'\n                        ' Text
';; isearch should be suspended during the C-u one so' Comment.Single
'\n                        ' Text
";; we don't exit isearch just because we hit 1 after" Comment.Single
'\n                        ' Text
";; C-u and that 1 exits isearch whereas it doesn't" Comment.Single
'\n                        ' Text
';; exit C-u.' Comment.Single
'\n                        ' Text
't'           Name.Constant
')'           Punctuation
'\n                       ' Text
'('           Punctuation
'('           Punctuation
'eq'          Name.Function
' '           Text
't'           Name.Constant
' '           Text
'keep-pred'   Name.Variable
')'           Punctuation
'\n                        ' Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'this-command' Name.Variable
'\n                            ' Text
'('           Punctuation
'lookup-key'  Name.Function
' '           Text
'map'         Name.Variable
' '           Text
'('           Punctuation
'this-command-keys-vector' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                       ' Text
'('           Punctuation
't'           Name.Constant
' '           Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'keep-pred'   Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text
'('           Punctuation
'funcall'     Name.Function
' '           Text
'exitfun'     Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'add-hook'    Name.Variable
' '           Text
"'pre-command-hook" Literal.String.Symbol
' '           Text
'clearfun'    Name.Variable
')'           Punctuation
'\n    '      Text
'('           Punctuation
'internal-push-keymap' Name.Variable
' '           Text
'map'         Name.Variable
' '           Text
"'overriding-terminal-local-map" Literal.String.Symbol
')'           Punctuation
'\n    '      Text
'exitfun'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

';;;; Progress reporters.' Comment.Single
'\n\n'        Text

';; Progress reporter has the following structure:' Comment.Single
'\n'          Text

';;'          Comment.Single
'\n'          Text

';;\t(NEXT-UPDATE-VALUE . [NEXT-UPDATE-TIME' Comment.Single
'\n'          Text

';;\t\t\t      MIN-VALUE' Comment.Single
'\n'          Text

';;\t\t\t      MAX-VALUE' Comment.Single
'\n'          Text

';;\t\t\t      MESSAGE' Comment.Single
'\n'          Text

';;\t\t\t      MIN-CHANGE' Comment.Single
'\n'          Text

';;\t\t\t      MIN-TIME])' Comment.Single
'\n'          Text

';;'          Comment.Single
'\n'          Text

';; This weirdness is for optimization reasons: we want' Comment.Single
'\n'          Text

";; `progress-reporter-update' to be as fast as possible, so" Comment.Single
'\n'          Text

";; `(car reporter)' is better than `(aref reporter 0)'." Comment.Single
'\n'          Text

';;'          Comment.Single
'\n'          Text

";; NEXT-UPDATE-TIME is a float.  While `float-time' loses a couple" Comment.Single
'\n'          Text

";; digits of precision, it doesn't really matter here.  On the other" Comment.Single
'\n'          Text

';; hand, it greatly simplifies the code.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defsubst'    Name.Builtin
' '           Text
'progress-reporter-update' Name.Variable
' '           Text
'('           Punctuation
'reporter'    Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'value'       Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Report progress of an operation in the echo area.\nREPORTER should be the result of a call to ' Literal.String
"`make-progress-reporter'" Literal.String.Symbol
'.\n\nIf REPORTER is a numerical progress reporter---i.e. if it was\n made using non-nil MIN-VALUE and MAX-VALUE arguments to\n ' Literal.String
"`make-progress-reporter'" Literal.String.Symbol
'---then VALUE should be a number between\n MIN-VALUE and MAX-VALUE.\n\nIf REPORTER is a non-numerical reporter, VALUE should be nil.\n\nThis function is relatively inexpensive.  If the change since\nlast update is too small or insufficient time has passed, it does\nnothing.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'numberp'     Name.Function
' '           Text
'value'       Name.Variable
')'           Punctuation
')'           Punctuation
'      '      Text
'; For pulsing reporter' Comment.Single
'\n\t    '    Text
'('           Punctuation
'>='          Name.Function
' '           Text
'value'       Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'reporter'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
' '           Text
'; For numerical reporter' Comment.Single
'\n    '      Text
'('           Punctuation
'progress-reporter-do-update' Name.Variable
' '           Text
'reporter'    Name.Variable
' '           Text
'value'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'make-progress-reporter' Name.Variable
' '           Text
'('           Punctuation
'message'     Name.Function
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'min-value'   Name.Variable
' '           Text
'max-value'   Name.Variable
'\n\t\t\t\t       ' Text
'current-value' Name.Variable
' '           Text
'min-change'  Name.Variable
' '           Text
'min-time'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return progress reporter object for use with ' Literal.String
"`progress-reporter-update'" Literal.String.Symbol
'.\n\nMESSAGE is shown in the echo area, with a status indicator\nappended to the end.  When you call ' Literal.String
"`progress-reporter-done'" Literal.String.Symbol
', the\nword ' Literal.String
'\\"'         Literal.String
'done'        Literal.String
'\\"'         Literal.String
' is printed after the MESSAGE.  You can change the\nMESSAGE of an existing progress reporter by calling\n' Literal.String

"`progress-reporter-force-update'" Literal.String.Symbol
'.\n\nMIN-VALUE and MAX-VALUE, if non-nil, are starting (0% complete)\nand final (100% complete) states of operation; the latter should\nbe larger.  In this case, the status message shows the percentage\nprogress.\n\nIf MIN-VALUE and/or MAX-VALUE is omitted or nil, the status\nmessage shows a ' Literal.String
'\\"'         Literal.String
'spinning'    Literal.String
'\\"'         Literal.String
', non-numeric indicator.\n\nOptional CURRENT-VALUE is the initial progress; the default is\nMIN-VALUE.\nOptional MIN-CHANGE is the minimal change in percents to report;\nthe default is 1%.\nCURRENT-VALUE and MIN-CHANGE do not have any effect if MIN-VALUE\nand/or MAX-VALUE are nil.\n\nOptional MIN-TIME specifies the minimum interval time between\necho area updates (default is 0.2 seconds.)  If the function\n' Literal.String

"`float-time'" Literal.String.Symbol
' is not present, time is not tracked at all.  If the\nOS is not capable of measuring fractions of seconds, this\nparameter is effectively rounded up.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'"'           Literal.String
'[[:alnum:]]' Literal.String
'\\\\'        Literal.String
"'"           Literal.String
'"'           Literal.String
' '           Text
'message'     Name.Function
')'           Punctuation
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'message'     Name.Function
' '           Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'message'     Name.Function
' '           Text
'"'           Literal.String
'...'         Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'min-time'    Name.Variable
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'min-time'    Name.Variable
' '           Text
'0.2'         Literal.Number.Float
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'reporter'    Name.Variable
'\n\t '       Text
";; Force a call to `message' now" Comment.Single
'\n\t '       Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'min-value'   Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'vector'      Name.Function
' '           Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'fboundp'     Name.Function
' '           Text
"'float-time" Literal.String.Symbol
')'           Punctuation
'\n\t\t\t\t'  Text
'('           Punctuation
'>='          Name.Function
' '           Text
'min-time'    Name.Variable
' '           Text
'0.02'        Literal.Number.Float
')'           Punctuation
')'           Punctuation
'\n\t\t\t   ' Text
'('           Punctuation
'float-time'  Name.Function
')'           Punctuation
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n\t\t       ' Text
'min-value'   Name.Variable
'\n\t\t       ' Text
'max-value'   Name.Variable
'\n\t\t       ' Text
'message'     Name.Function
'\n\t\t       ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'min-change'  Name.Variable
' '           Text
'('           Punctuation
'max'         Name.Function
' '           Text
'('           Punctuation
'min'         Name.Function
' '           Text
'min-change'  Name.Variable
' '           Text
'50'          Literal.Number.Integer
')'           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
'\n\t\t       ' Text
'min-time'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'progress-reporter-update' Name.Variable
' '           Text
'reporter'    Name.Variable
' '           Text
'('           Punctuation
'or'          Keyword
' '           Text
'current-value' Name.Variable
' '           Text
'min-value'   Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'reporter'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'progress-reporter-force-update' Name.Variable
' '           Text
'('           Punctuation
'reporter'    Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'value'       Name.Variable
' '           Text
'new-message' Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Report progress of an operation in the echo area unconditionally.\n\nThe first two arguments are the same as in ' Literal.String
"`progress-reporter-update'" Literal.String.Symbol
'.\nNEW-MESSAGE, if non-nil, sets a new message for the reporter.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'parameters'  Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'reporter'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'new-message' Name.Variable
'\n      '    Text
'('           Punctuation
'aset'        Name.Function
' '           Text
'parameters'  Name.Variable
' '           Text
'3'           Literal.Number.Integer
' '           Text
'new-message' Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'parameters'  Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n      '    Text
'('           Punctuation
'aset'        Name.Function
' '           Text
'parameters'  Name.Variable
' '           Text
'0'           Literal.Number.Integer
' '           Text
'('           Punctuation
'float-time'  Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'progress-reporter-do-update' Name.Variable
' '           Text
'reporter'    Name.Variable
' '           Text
'value'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'progress-reporter--pulse-characters' Name.Variable
' '           Text
'['           Punctuation
'"'           Literal.String
'-'           Literal.String
'"'           Literal.String
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'"'           Literal.String
' '           Text
'"'           Literal.String
'|'           Literal.String
'"'           Literal.String
' '           Text
'"'           Literal.String
'/'           Literal.String
'"'           Literal.String
']'           Punctuation
'\n  '        Text
'"'           Literal.String
'Characters to use for pulsing progress reporters.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'progress-reporter-do-update' Name.Variable
' '           Text
'('           Punctuation
'reporter'    Name.Variable
' '           Text
'value'       Name.Variable
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'parameters'  Name.Variable
'   '         Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'reporter'    Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'update-time' Name.Variable
'  '          Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'parameters'  Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'min-value'   Name.Variable
'    '        Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'parameters'  Name.Variable
' '           Text
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'max-value'   Name.Variable
'    '        Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'parameters'  Name.Variable
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'text'        Name.Variable
'         '   Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'parameters'  Name.Variable
' '           Text
'3'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t '       Text
'('           Punctuation
'enough-time-passed' Name.Variable
'\n\t  '      Text
';; See if enough time has passed since the last update.' Comment.Single
'\n\t  '      Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'update-time' Name.Variable
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'>='          Name.Function
' '           Text
'('           Punctuation
'float-time'  Name.Function
')'           Punctuation
' '           Text
'update-time' Name.Variable
')'           Punctuation
'\n\t\t'      Text
';; Calculate time for the next update' Comment.Single
'\n\t\t'      Text
'('           Punctuation
'aset'        Name.Function
' '           Text
'parameters'  Name.Variable
' '           Text
'0'           Literal.Number.Integer
' '           Text
'('           Punctuation
'+'           Name.Function
' '           Text
'update-time' Name.Variable
' '           Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'parameters'  Name.Variable
' '           Text
'5'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'cond'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'and'         Keyword
' '           Text
'min-value'   Name.Variable
' '           Text
'max-value'   Name.Variable
')'           Punctuation
'\n\t   '     Text
';; Numerical indicator' Comment.Single
'\n\t   '     Text
'('           Punctuation
'let*'        Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'one-percent' Name.Variable
' '           Text
'('           Punctuation
'/'           Name.Function
' '           Text
'('           Punctuation
'-'           Name.Function
' '           Text
'max-value'   Name.Variable
' '           Text
'min-value'   Name.Variable
')'           Punctuation
' '           Text
'100.0'       Literal.Number.Float
')'           Punctuation
')'           Punctuation
'\n\t\t  '    Text
'('           Punctuation
'percentage'  Name.Variable
'  '          Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'='           Name.Function
' '           Text
'max-value'   Name.Variable
' '           Text
'min-value'   Name.Variable
')'           Punctuation
'\n\t\t\t\t   ' Text
'0'           Literal.Number.Integer
'\n\t\t\t\t ' Text
'('           Punctuation
'truncate'    Name.Function
' '           Text
'('           Punctuation
'/'           Name.Function
' '           Text
'('           Punctuation
'-'           Name.Function
' '           Text
'value'       Name.Variable
' '           Text
'min-value'   Name.Variable
')'           Punctuation
'\n\t\t\t\t\t      ' Text
'one-percent' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t     '   Text
';; Calculate NEXT-UPDATE-VALUE.  If we are not printing' Comment.Single
'\n\t     '   Text
';; message because not enough time has passed, use 1' Comment.Single
'\n\t     '   Text
';; instead of MIN-CHANGE.  This makes delays between echo' Comment.Single
'\n\t     '   Text
';; area updates closer to MIN-TIME.' Comment.Single
'\n\t     '   Text
'('           Punctuation
'setcar'      Name.Function
' '           Text
'reporter'    Name.Variable
'\n\t\t     ' Text
'('           Punctuation
'min'         Name.Function
' '           Text
'('           Punctuation
'+'           Name.Function
' '           Text
'min-value'   Name.Variable
' '           Text
'('           Punctuation
'*'           Name.Function
' '           Text
'('           Punctuation
'+'           Name.Function
' '           Text
'percentage'  Name.Variable
'\n\t\t\t\t\t     ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'enough-time-passed' Name.Variable
'\n\t\t\t\t\t\t ' Text
';; MIN-CHANGE' Comment.Single
'\n\t\t\t\t\t\t ' Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'parameters'  Name.Variable
' '           Text
'4'           Literal.Number.Integer
')'           Punctuation
'\n\t\t\t\t\t       ' Text
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t\t\t\t\t  ' Text
'one-percent' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t\t  '  Text
'max-value'   Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t     '   Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'integerp'    Name.Function
' '           Text
'value'       Name.Variable
')'           Punctuation
'\n\t       ' Text
'('           Punctuation
'setcar'      Name.Function
' '           Text
'reporter'    Name.Variable
' '           Text
'('           Punctuation
'ceiling'     Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'reporter'    Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t     '   Text
';; Only print message if enough time has passed' Comment.Single
'\n\t     '   Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'enough-time-passed' Name.Variable
'\n\t       ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'>'           Name.Function
' '           Text
'percentage'  Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n\t\t   '   Text
'('           Punctuation
'message'     Name.Function
' '           Text
'"'           Literal.String
'%s%d%%'      Literal.String
'"'           Literal.String
' '           Text
'text'        Name.Variable
' '           Text
'percentage'  Name.Variable
')'           Punctuation
'\n\t\t '     Text
'('           Punctuation
'message'     Name.Function
' '           Text
'"'           Literal.String
'%s'          Literal.String
'"'           Literal.String
' '           Text
'text'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
';; Pulsing indicator' Comment.Single
'\n\t  '      Text
'('           Punctuation
'enough-time-passed' Name.Variable
'\n\t   '     Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'index'       Name.Variable
' '           Text
'('           Punctuation
'mod'         Name.Function
' '           Text
'('           Punctuation
'1+'          Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'reporter'    Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'4'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t\t '     Text
'('           Punctuation
'message-log-max' Name.Variable
' '           Text
'nil'         Name.Constant
')'           Punctuation
')'           Punctuation
'\n\t     '   Text
'('           Punctuation
'setcar'      Name.Function
' '           Text
'reporter'    Name.Variable
' '           Text
'index'       Name.Variable
')'           Punctuation
'\n\t     '   Text
'('           Punctuation
'message'     Name.Function
' '           Text
'"'           Literal.String
'%s %s'       Literal.String
'"'           Literal.String
'\n\t\t      ' Text
'text'        Name.Variable
'\n\t\t      ' Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'progress-reporter--pulse-characters' Name.Variable
'\n\t\t\t    ' Text
'index'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'progress-reporter-done' Name.Variable
' '           Text
'('           Punctuation
'reporter'    Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
"Print reporter's message followed by word " Literal.String
'\\"'         Literal.String
'done'        Literal.String
'\\"'         Literal.String
' in echo area.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'message'     Name.Function
' '           Text
'"'           Literal.String
'%sdone'      Literal.String
'"'           Literal.String
' '           Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'reporter'    Name.Variable
')'           Punctuation
' '           Text
'3'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defmacro'    Name.Builtin
' '           Text
'dotimes-with-progress-reporter' Name.Builtin
' '           Text
'('           Punctuation
'spec'        Name.Variable
' '           Text
'message'     Name.Function
' '           Text
'&rest'       Keyword.Pseudo
' '           Text
'body'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Loop a certain number of times and report progress in the echo area.\nEvaluate BODY with VAR bound to successive integers running from\n0, inclusive, to COUNT, exclusive.  Then evaluate RESULT to get\nthe return value (nil if RESULT is omitted).\n\nAt each iteration MESSAGE followed by progress percentage is\nprinted in the echo area.  After the loop is finished, MESSAGE\nfollowed by word ' Literal.String
'\\"'         Literal.String
'done'        Literal.String
'\\"'         Literal.String
' is printed.  This macro is a\nconvenience wrapper around ' Literal.String
"`make-progress-reporter'" Literal.String.Symbol
' and friends.\n\n' Literal.String

'\\('         Literal.String
'fn (VAR COUNT [RESULT]) MESSAGE BODY...)' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'declare'     Name.Builtin
' '           Text
'('           Punctuation
'indent'      Name.Variable
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
' '           Text
'('           Punctuation
'debug'       Name.Variable
' '           Text
'('           Punctuation
'('           Punctuation
'symbolp'     Name.Function
' '           Text
'form'        Name.Variable
' '           Text
'&optional'   Keyword.Pseudo
' '           Text
'form'        Name.Variable
')'           Punctuation
' '           Text
'form'        Name.Variable
' '           Text
'body'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'temp'        Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'--dotimes-temp--' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'temp2'       Name.Variable
' '           Text
'('           Punctuation
'make-symbol' Name.Function
' '           Text
'"'           Literal.String
'--dotimes-temp2--' Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'start'       Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'end'         Name.Variable
' '           Text
'('           Punctuation
'nth'         Name.Function
' '           Text
'1'           Literal.Number.Integer
' '           Text
'spec'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'`'           Operator
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
','           Operator
'temp'        Name.Variable
' '           Text
','           Operator
'end'         Name.Variable
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
','           Operator
'('           Punctuation
'car'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
' '           Text
','           Operator
'start'       Name.Variable
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
','           Operator
'temp2'       Name.Variable
' '           Text
'('           Punctuation
'make-progress-reporter' Name.Variable
' '           Text
','           Operator
'message'     Name.Function
' '           Text
','           Operator
'start'       Name.Variable
' '           Text
','           Operator
'end'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
','           Operator
'('           Punctuation
'car'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
' '           Text
','           Operator
'temp'        Name.Variable
')'           Punctuation
'\n\t '       Text
',@'          Operator
'body'        Name.Variable
'\n\t '       Text
'('           Punctuation
'progress-reporter-update' Name.Variable
' '           Text
','           Operator
'temp2'       Name.Variable
'\n\t\t\t\t   ' Text
'('           Punctuation
'setq'        Keyword
' '           Text
','           Operator
'('           Punctuation
'car'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'1+'          Name.Function
' '           Text
','           Operator
'('           Punctuation
'car'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n       '   Text
'('           Punctuation
'progress-reporter-done' Name.Variable
' '           Text
','           Operator
'temp2'       Name.Variable
')'           Punctuation
'\n       '   Text
'nil'         Name.Constant
' '           Text
',@'          Operator
'('           Punctuation
'cdr'         Name.Function
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'spec'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\x0c\n'  Text

';;;; Comparing version strings.' Comment.Single
'\n\n'        Text

'('           Punctuation
'defconst'    Keyword
' '           Text
'version-separator' Name.Variable
' '           Text
'"'           Literal.String
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'"'           Literal.String
'Specify the string used to separate the version elements.\n\nUsually the separator is ' Literal.String
'\\"'         Literal.String
'.'           Literal.String
'\\"'         Literal.String
', but it can be any other string.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n\n'      Text

'('           Punctuation
'defconst'    Keyword
' '           Text
'version-regexp-alist' Name.Variable
'\n  '        Text
"'"           Operator
'('           Punctuation
'('           Punctuation
'"'           Literal.String
'^[-_+ ]?snapshot$' Literal.String
'"'           Literal.String
'                                 ' Text
'.'           Operator
' '           Text
'-4'          Literal.Number.Integer
')'           Punctuation
'\n    '      Text
';; treat "1.2.3-20050920" and "1.2-3" as snapshot releases' Comment.Single
'\n    '      Text
'('           Punctuation
'"'           Literal.String
'^[-_+]$'     Literal.String
'"'           Literal.String
'                                           ' Text
'.'           Operator
' '           Text
'-4'          Literal.Number.Integer
')'           Punctuation
'\n    '      Text
';; treat "1.2.3-CVS" as snapshot release' Comment.Single
'\n    '      Text
'('           Punctuation
'"'           Literal.String
'^[-_+ ]?'    Literal.String
'\\\\'        Literal.String
'(cvs'        Literal.String
'\\\\'        Literal.String
'|git'        Literal.String
'\\\\'        Literal.String
'|bzr'        Literal.String
'\\\\'        Literal.String
'|svn'        Literal.String
'\\\\'        Literal.String
'|hg'         Literal.String
'\\\\'        Literal.String
'|darcs'      Literal.String
'\\\\'        Literal.String
')$'          Literal.String
'"'           Literal.String
' '           Text
'.'           Operator
' '           Text
'-4'          Literal.Number.Integer
')'           Punctuation
'\n    '      Text
'('           Punctuation
'"'           Literal.String
'^[-_+ ]?alpha$' Literal.String
'"'           Literal.String
'                                    ' Text
'.'           Operator
' '           Text
'-3'          Literal.Number.Integer
')'           Punctuation
'\n    '      Text
'('           Punctuation
'"'           Literal.String
'^[-_+ ]?beta$' Literal.String
'"'           Literal.String
'                                     ' Text
'.'           Operator
' '           Text
'-2'          Literal.Number.Integer
')'           Punctuation
'\n    '      Text
'('           Punctuation
'"'           Literal.String
'^[-_+ ]?'    Literal.String
'\\\\'        Literal.String
'(pre'        Literal.String
'\\\\'        Literal.String
'|rc'         Literal.String
'\\\\'        Literal.String
')$'          Literal.String
'"'           Literal.String
'                           ' Text
'.'           Operator
' '           Text
'-1'          Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Specify association between non-numeric version and its priority.\n\nThis association is used to handle version string like ' Literal.String
'\\"'         Literal.String
'1.0pre2'     Literal.String
'\\"'         Literal.String
',\n'         Literal.String

'\\"'         Literal.String
'0.9alpha1'   Literal.String
'\\"'         Literal.String
", etc.  It's used by " Literal.String
"`version-to-list'" Literal.String.Symbol
' (which see) to convert the\nnon-numeric part of a version string to an integer.  For example:\n\n   String Version    Integer List Version\n   ' Literal.String
'\\"'         Literal.String
'0.9snapshot' Literal.String
'\\"'         Literal.String
'     (0  9 -4)\n   ' Literal.String
'\\"'         Literal.String
'1.0-git'     Literal.String
'\\"'         Literal.String
'         (1  0 -4)\n   ' Literal.String
'\\"'         Literal.String
'1.0pre2'     Literal.String
'\\"'         Literal.String
'         (1  0 -1 2)\n   ' Literal.String
'\\"'         Literal.String
'1.0PRE2'     Literal.String
'\\"'         Literal.String
'         (1  0 -1 2)\n   ' Literal.String
'\\"'         Literal.String
'22.8beta3'   Literal.String
'\\"'         Literal.String
'       (22 8 -2 3)\n   ' Literal.String
'\\"'         Literal.String
'22.8 Beta3'  Literal.String
'\\"'         Literal.String
'      (22 8 -2 3)\n   ' Literal.String
'\\"'         Literal.String
'0.9alpha1'   Literal.String
'\\"'         Literal.String
'       (0  9 -3 1)\n   ' Literal.String
'\\"'         Literal.String
'0.9AlphA1'   Literal.String
'\\"'         Literal.String
'       (0  9 -3 1)\n   ' Literal.String
'\\"'         Literal.String
'0.9 alpha'   Literal.String
'\\"'         Literal.String
'       (0  9 -3)\n\nEach element has the following form:\n\n   (REGEXP . PRIORITY)\n\nWhere:\n\nREGEXP\t\tregexp used to match non-numeric part of a version string.\n\t\tIt should begin with the ' Literal.String
"`^'"         Literal.String.Symbol
' anchor and end with a ' Literal.String
"`$'"         Literal.String.Symbol
' to\n\t\tprevent false hits.  Letter-case is ignored while matching\n\t\tREGEXP.\n\nPRIORITY\ta negative integer specifying non-numeric priority of REGEXP.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n\n'      Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'version-to-list' Name.Variable
' '           Text
'('           Punctuation
'ver'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Convert version string VER into a list of integers.\n\nThe version syntax is given by the following EBNF:\n\n   VERSION ::= NUMBER ( SEPARATOR NUMBER )*.\n\n   NUMBER ::= (0|1|2|3|4|5|6|7|8|9)+.\n\n   SEPARATOR ::= ' Literal.String
"`version-separator'" Literal.String.Symbol
' (which see)\n\t       | ' Literal.String
"`version-regexp-alist'" Literal.String.Symbol
' (which see).\n\nThe NUMBER part is optional if SEPARATOR is a match for an element\nin ' Literal.String
"`version-regexp-alist'" Literal.String.Symbol
'.\n\nExamples of valid version syntax:\n\n   1.0pre2   1.0.7.5   22.8beta3   0.9alpha1   6.9.30Beta\n\nExamples of invalid version syntax:\n\n   1.0prepre2   1.0..7.5   22.8X3   alpha3.2   .5\n\nExamples of version conversion:\n\n   Version String    Version as a List of Integers\n   ' Literal.String
'\\"'         Literal.String
'1.0.7.5'     Literal.String
'\\"'         Literal.String
'         (1  0  7 5)\n   ' Literal.String
'\\"'         Literal.String
'1.0pre2'     Literal.String
'\\"'         Literal.String
'         (1  0 -1 2)\n   ' Literal.String
'\\"'         Literal.String
'1.0PRE2'     Literal.String
'\\"'         Literal.String
'         (1  0 -1 2)\n   ' Literal.String
'\\"'         Literal.String
'22.8beta3'   Literal.String
'\\"'         Literal.String
'       (22 8 -2 3)\n   ' Literal.String
'\\"'         Literal.String
'22.8Beta3'   Literal.String
'\\"'         Literal.String
'       (22 8 -2 3)\n   ' Literal.String
'\\"'         Literal.String
'0.9alpha1'   Literal.String
'\\"'         Literal.String
'       (0  9 -3 1)\n   ' Literal.String
'\\"'         Literal.String
'0.9AlphA1'   Literal.String
'\\"'         Literal.String
'       (0  9 -3 1)\n   ' Literal.String
'\\"'         Literal.String
'0.9alpha'    Literal.String
'\\"'         Literal.String
'        (0  9 -3)\n   ' Literal.String
'\\"'         Literal.String
'0.9snapshot' Literal.String
'\\"'         Literal.String
'     (0  9 -4)\n   ' Literal.String
'\\"'         Literal.String
'1.0-git'     Literal.String
'\\"'         Literal.String
'         (1  0 -4)\n\nSee documentation for ' Literal.String
"`version-separator'" Literal.String.Symbol
' and '       Literal.String
"`version-regexp-alist'" Literal.String.Symbol
'.'           Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'or'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'stringp'     Name.Function
' '           Text
'ver'         Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'>'           Name.Function
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'ver'         Name.Variable
')'           Punctuation
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'error'       Name.Exception
' '           Text
'"'           Literal.String
"Invalid version string: '%s'" Literal.String
'"'           Literal.String
' '           Text
'ver'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n  '        Text
';; Change .x.y to 0.x.y' Comment.Single
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'>='          Name.Function
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'ver'         Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'version-separator' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t   '     Text
'('           Punctuation
'string-equal' Name.Function
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'ver'         Name.Variable
' '           Text
'0'           Literal.Number.Integer
' '           Text
'('           Punctuation
'length'      Name.Function
' '           Text
'version-separator' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t\t '   Text
'version-separator' Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'ver'         Name.Variable
' '           Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'"'           Literal.String
'0'           Literal.String
'"'           Literal.String
' '           Text
'ver'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'save-match-data' Name.Builtin
'\n    '      Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'i'           Name.Variable
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'case-fold-search' Name.Variable
' '           Text
't'           Name.Constant
')'           Punctuation
'\t\t'        Text
'; ignore case in matching' Comment.Single
'\n\t  '      Text
'lst'         Name.Variable
' '           Text
's'           Name.Variable
' '           Text
'al'          Name.Variable
')'           Punctuation
'\n      '    Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
's'           Name.Variable
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'"'           Literal.String
'[0-9]+'      Literal.String
'"'           Literal.String
' '           Text
'ver'         Name.Variable
' '           Text
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t  '    Text
'('           Punctuation
'='           Name.Function
' '           Text
's'           Name.Variable
' '           Text
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t'        Text
';; handle numeric part' Comment.Single
'\n\t'        Text
'('           Punctuation
'setq'        Keyword
' '           Text
'lst'         Name.Variable
' '           Text
'('           Punctuation
'cons'        Name.Function
' '           Text
'('           Punctuation
'string-to-number' Name.Function
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'ver'         Name.Variable
' '           Text
'i'           Name.Variable
' '           Text
'('           Punctuation
'match-end'   Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t\t'    Text
'lst'         Name.Variable
')'           Punctuation
'\n\t      '  Text
'i'           Name.Variable
'   '         Text
'('           Punctuation
'match-end'   Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t'        Text
';; handle non-numeric part' Comment.Single
'\n\t'        Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'setq'        Keyword
' '           Text
's'           Name.Variable
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'"'           Literal.String
'[^0-9]+'     Literal.String
'"'           Literal.String
' '           Text
'ver'         Name.Variable
' '           Text
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t   '   Text
'('           Punctuation
'='           Name.Function
' '           Text
's'           Name.Variable
' '           Text
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
's'           Name.Variable
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'ver'         Name.Variable
' '           Text
'i'           Name.Variable
' '           Text
'('           Punctuation
'match-end'   Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t\t'      Text
'i'           Name.Variable
' '           Text
'('           Punctuation
'match-end'   Name.Function
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t  '      Text
';; handle alpha, beta, pre, etc. separator' Comment.Single
'\n\t  '      Text
'('           Punctuation
'unless'      Name.Builtin
' '           Text
'('           Punctuation
'string='     Name.Function
' '           Text
's'           Name.Variable
' '           Text
'version-separator' Name.Variable
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'setq'        Keyword
' '           Text
'al'          Name.Variable
' '           Text
'version-regexp-alist' Name.Variable
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'al'          Name.Variable
' '           Text
'('           Punctuation
'not'         Name.Variable
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'('           Punctuation
'caar'        Name.Variable
' '           Text
'al'          Name.Variable
')'           Punctuation
' '           Text
's'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t      '  Text
'('           Punctuation
'setq'        Keyword
' '           Text
'al'          Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'al'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t    '    Text
'('           Punctuation
'cond'        Keyword
' '           Text
'('           Punctuation
'al'          Name.Variable
'\n\t\t   '   Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'('           Punctuation
'cdar'        Name.Variable
' '           Text
'al'          Name.Variable
')'           Punctuation
' '           Text
'lst'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t  '    Text
';; Convert 22.3a to 22.3.1, 22.3b to 22.3.2, etc.' Comment.Single
'\n\t\t  '    Text
'('           Punctuation
'('           Punctuation
'string-match' Name.Function
' '           Text
'"'           Literal.String
'^[-_+ ]?'    Literal.String
'\\\\'        Literal.String
'([a-zA-Z]'   Literal.String
'\\\\'        Literal.String
')$'          Literal.String
'"'           Literal.String
' '           Text
's'           Name.Variable
')'           Punctuation
'\n\t\t   '   Text
'('           Punctuation
'push'        Name.Builtin
' '           Text
'('           Punctuation
'-'           Name.Function
' '           Text
'('           Punctuation
'aref'        Name.Function
' '           Text
'('           Punctuation
'downcase'    Name.Function
' '           Text
'('           Punctuation
'match-string' Name.Variable
' '           Text
'1'           Literal.Number.Integer
' '           Text
's'           Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text
'?a'          Literal.String.Char
' '           Text
'-1'          Literal.Number.Integer
')'           Punctuation
'\n\t\t\t '   Text
'lst'         Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t  '    Text
'('           Punctuation
't'           Name.Constant
' '           Text
'('           Punctuation
'error'       Name.Exception
' '           Text
'"'           Literal.String
"Invalid version syntax: '%s'" Literal.String
'"'           Literal.String
' '           Text
'ver'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'lst'         Name.Variable
')'           Punctuation
'\n\t  '      Text
'('           Punctuation
'error'       Name.Exception
' '           Text
'"'           Literal.String
"Invalid version syntax: '%s'" Literal.String
'"'           Literal.String
' '           Text
'ver'         Name.Variable
')'           Punctuation
'\n\t'        Text
'('           Punctuation
'nreverse'    Name.Function
' '           Text
'lst'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\n'      Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'version-list-<' Name.Variable
' '           Text
'('           Punctuation
'l1'          Name.Variable
' '           Text
'l2'          Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return t if L1, a list specification of a version, is lower than L2.\n\nNote that a version specified by the list (1) is equal to (1 0),\n' Literal.String

'\\('         Literal.String
'1 0 0), (1 0 0 0), etc.  That is, the trailing zeros are insignificant.\nAlso, a version given by the list (1) is higher than (1 -1), which in\nturn is higher than (1 -2), which is higher than (1 -3).' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'l1'          Name.Variable
' '           Text
'l2'          Name.Variable
' '           Text
'('           Punctuation
'='           Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'l1'          Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'l2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'l1'          Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'l1'          Name.Variable
')'           Punctuation
'\n\t  '      Text
'l2'          Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'l2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'cond'        Keyword
'\n   '       Text
';; l1 not null and l2 not null' Comment.Single
'\n   '       Text
'('           Punctuation
'('           Punctuation
'and'         Keyword
' '           Text
'l1'          Name.Variable
' '           Text
'l2'          Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'l1'          Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'l2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n   '       Text
';; l1 null and l2 null         ==> l1 length = l2 length' Comment.Single
'\n   '       Text
'('           Punctuation
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'l1'          Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'l2'          Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n   '       Text
';; l1 not null and l2 null     ==> l1 length > l2 length' Comment.Single
'\n   '       Text
'('           Punctuation
'l1'          Name.Variable
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'('           Punctuation
'version-list-not-zero' Name.Variable
' '           Text
'l1'          Name.Variable
')'           Punctuation
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n   '       Text
';; l1 null and l2 not null     ==> l2 length > l1 length' Comment.Single
'\n   '       Text
'('           Punctuation
't'           Name.Constant
'  '          Text
'('           Punctuation
'<'           Name.Function
' '           Text
'0'           Literal.Number.Integer
' '           Text
'('           Punctuation
'version-list-not-zero' Name.Variable
' '           Text
'l2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\n'      Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'version-list-=' Name.Variable
' '           Text
'('           Punctuation
'l1'          Name.Variable
' '           Text
'l2'          Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return t if L1, a list specification of a version, is equal to L2.\n\nNote that a version specified by the list (1) is equal to (1 0),\n' Literal.String

'\\('         Literal.String
'1 0 0), (1 0 0 0), etc.  That is, the trailing zeros are insignificant.\nAlso, a version given by the list (1) is higher than (1 -1), which in\nturn is higher than (1 -2), which is higher than (1 -3).' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'l1'          Name.Variable
' '           Text
'l2'          Name.Variable
' '           Text
'('           Punctuation
'='           Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'l1'          Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'l2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'l1'          Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'l1'          Name.Variable
')'           Punctuation
'\n\t  '      Text
'l2'          Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'l2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'cond'        Keyword
'\n   '       Text
';; l1 not null and l2 not null' Comment.Single
'\n   '       Text
'('           Punctuation
'('           Punctuation
'and'         Keyword
' '           Text
'l1'          Name.Variable
' '           Text
'l2'          Name.Variable
')'           Punctuation
' '           Text
'nil'         Name.Constant
')'           Punctuation
'\n   '       Text
';; l1 null and l2 null     ==> l1 length = l2 length' Comment.Single
'\n   '       Text
'('           Punctuation
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'l1'          Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'l2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n   '       Text
';; l1 not null and l2 null ==> l1 length > l2 length' Comment.Single
'\n   '       Text
'('           Punctuation
'l1'          Name.Variable
' '           Text
'('           Punctuation
'zerop'       Name.Variable
' '           Text
'('           Punctuation
'version-list-not-zero' Name.Variable
' '           Text
'l1'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n   '       Text
';; l1 null and l2 not null ==> l2 length > l1 length' Comment.Single
'\n   '       Text
'('           Punctuation
't'           Name.Constant
'  '          Text
'('           Punctuation
'zerop'       Name.Variable
' '           Text
'('           Punctuation
'version-list-not-zero' Name.Variable
' '           Text
'l2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\n'      Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'version-list-<=' Name.Variable
' '           Text
'('           Punctuation
'l1'          Name.Variable
' '           Text
'l2'          Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return t if L1, a list specification of a version, is lower or equal to L2.\n\nNote that integer list (1) is equal to (1 0), (1 0 0), (1 0 0 0),\netc.  That is, the trailing zeroes are insignificant.  Also, integer\nlist (1) is greater than (1 -1) which is greater than (1 -2)\nwhich is greater than (1 -3).' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'l1'          Name.Variable
' '           Text
'l2'          Name.Variable
' '           Text
'('           Punctuation
'='           Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'l1'          Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'l2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'l1'          Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'l1'          Name.Variable
')'           Punctuation
'\n\t  '      Text
'l2'          Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'l2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'cond'        Keyword
'\n   '       Text
';; l1 not null and l2 not null' Comment.Single
'\n   '       Text
'('           Punctuation
'('           Punctuation
'and'         Keyword
' '           Text
'l1'          Name.Variable
' '           Text
'l2'          Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'<'           Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'l1'          Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'l2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n   '       Text
';; l1 null and l2 null     ==> l1 length = l2 length' Comment.Single
'\n   '       Text
'('           Punctuation
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'l1'          Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'null'        Name.Function
' '           Text
'l2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n   '       Text
';; l1 not null and l2 null ==> l1 length > l2 length' Comment.Single
'\n   '       Text
'('           Punctuation
'l1'          Name.Variable
' '           Text
'('           Punctuation
'<='          Name.Function
' '           Text
'('           Punctuation
'version-list-not-zero' Name.Variable
' '           Text
'l1'          Name.Variable
')'           Punctuation
' '           Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n   '       Text
';; l1 null and l2 not null ==> l2 length > l1 length' Comment.Single
'\n   '       Text
'('           Punctuation
't'           Name.Constant
'  '          Text
'('           Punctuation
'<='          Name.Function
' '           Text
'0'           Literal.Number.Integer
' '           Text
'('           Punctuation
'version-list-not-zero' Name.Variable
' '           Text
'l2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'version-list-not-zero' Name.Variable
' '           Text
'('           Punctuation
'lst'         Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return the first non-zero element of LST, which is a list of integers.\n\nIf all LST elements are zeros or LST is nil, return zero.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'while'       Keyword
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'lst'         Name.Variable
' '           Text
'('           Punctuation
'zerop'       Name.Variable
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'lst'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'lst'         Name.Variable
' '           Text
'('           Punctuation
'cdr'         Name.Function
' '           Text
'lst'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'if'          Keyword
' '           Text
'lst'         Name.Variable
'\n      '    Text
'('           Punctuation
'car'         Name.Function
' '           Text
'lst'         Name.Variable
')'           Punctuation
'\n    '      Text
';; there is no element different of zero' Comment.Single
'\n    '      Text
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\n\n'      Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'version<'    Name.Variable
' '           Text
'('           Punctuation
'v1'          Name.Variable
' '           Text
'v2'          Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return t if version V1 is lower (older) than V2.\n\nNote that version string ' Literal.String
'\\"'         Literal.String
'1'           Literal.String
'\\"'         Literal.String
' is equal to ' Literal.String
'\\"'         Literal.String
'1.0'         Literal.String
'\\"'         Literal.String
', '          Literal.String
'\\"'         Literal.String
'1.0.0'       Literal.String
'\\"'         Literal.String
', '          Literal.String
'\\"'         Literal.String
'1.0.0.0'     Literal.String
'\\"'         Literal.String
',\netc.  That is, the trailing ' Literal.String
'\\"'         Literal.String
'.0'          Literal.String
'\\"'         Literal.String
's are insignificant.  Also, version\nstring ' Literal.String
'\\"'         Literal.String
'1'           Literal.String
'\\"'         Literal.String
' is higher (newer) than ' Literal.String
'\\"'         Literal.String
'1pre'        Literal.String
'\\"'         Literal.String
', which is higher than ' Literal.String
'\\"'         Literal.String
'1beta'       Literal.String
'\\"'         Literal.String
',\nwhich is higher than ' Literal.String
'\\"'         Literal.String
'1alpha'      Literal.String
'\\"'         Literal.String
', which is higher than ' Literal.String
'\\"'         Literal.String
'1snapshot'   Literal.String
'\\"'         Literal.String
'.\nAlso, '   Literal.String
'\\"'         Literal.String
'-GIT'        Literal.String
'\\"'         Literal.String
', '          Literal.String
'\\"'         Literal.String
'-CVS'        Literal.String
'\\"'         Literal.String
' and '       Literal.String
'\\"'         Literal.String
'-NNN'        Literal.String
'\\"'         Literal.String
' are treated as snapshot versions.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'version-list-<' Name.Variable
' '           Text
'('           Punctuation
'version-to-list' Name.Variable
' '           Text
'v1'          Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'version-to-list' Name.Variable
' '           Text
'v2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'version<='   Name.Variable
' '           Text
'('           Punctuation
'v1'          Name.Variable
' '           Text
'v2'          Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return t if version V1 is lower (older) than or equal to V2.\n\nNote that version string ' Literal.String
'\\"'         Literal.String
'1'           Literal.String
'\\"'         Literal.String
' is equal to ' Literal.String
'\\"'         Literal.String
'1.0'         Literal.String
'\\"'         Literal.String
', '          Literal.String
'\\"'         Literal.String
'1.0.0'       Literal.String
'\\"'         Literal.String
', '          Literal.String
'\\"'         Literal.String
'1.0.0.0'     Literal.String
'\\"'         Literal.String
',\netc.  That is, the trailing ' Literal.String
'\\"'         Literal.String
'.0'          Literal.String
'\\"'         Literal.String
's are insignificant.  Also, version\nstring ' Literal.String
'\\"'         Literal.String
'1'           Literal.String
'\\"'         Literal.String
' is higher (newer) than ' Literal.String
'\\"'         Literal.String
'1pre'        Literal.String
'\\"'         Literal.String
', which is higher than ' Literal.String
'\\"'         Literal.String
'1beta'       Literal.String
'\\"'         Literal.String
',\nwhich is higher than ' Literal.String
'\\"'         Literal.String
'1alpha'      Literal.String
'\\"'         Literal.String
', which is higher than ' Literal.String
'\\"'         Literal.String
'1snapshot'   Literal.String
'\\"'         Literal.String
'.\nAlso, '   Literal.String
'\\"'         Literal.String
'-GIT'        Literal.String
'\\"'         Literal.String
', '          Literal.String
'\\"'         Literal.String
'-CVS'        Literal.String
'\\"'         Literal.String
' and '       Literal.String
'\\"'         Literal.String
'-NNN'        Literal.String
'\\"'         Literal.String
' are treated as snapshot versions.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'version-list-<=' Name.Variable
' '           Text
'('           Punctuation
'version-to-list' Name.Variable
' '           Text
'v1'          Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'version-to-list' Name.Variable
' '           Text
'v2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'version='    Name.Variable
' '           Text
'('           Punctuation
'v1'          Name.Variable
' '           Text
'v2'          Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Return t if version V1 is equal to V2.\n\nNote that version string ' Literal.String
'\\"'         Literal.String
'1'           Literal.String
'\\"'         Literal.String
' is equal to ' Literal.String
'\\"'         Literal.String
'1.0'         Literal.String
'\\"'         Literal.String
', '          Literal.String
'\\"'         Literal.String
'1.0.0'       Literal.String
'\\"'         Literal.String
', '          Literal.String
'\\"'         Literal.String
'1.0.0.0'     Literal.String
'\\"'         Literal.String
',\netc.  That is, the trailing ' Literal.String
'\\"'         Literal.String
'.0'          Literal.String
'\\"'         Literal.String
's are insignificant.  Also, version\nstring ' Literal.String
'\\"'         Literal.String
'1'           Literal.String
'\\"'         Literal.String
' is higher (newer) than ' Literal.String
'\\"'         Literal.String
'1pre'        Literal.String
'\\"'         Literal.String
', which is higher than ' Literal.String
'\\"'         Literal.String
'1beta'       Literal.String
'\\"'         Literal.String
',\nwhich is higher than ' Literal.String
'\\"'         Literal.String
'1alpha'      Literal.String
'\\"'         Literal.String
', which is higher than ' Literal.String
'\\"'         Literal.String
'1snapshot'   Literal.String
'\\"'         Literal.String
'.\nAlso, '   Literal.String
'\\"'         Literal.String
'-GIT'        Literal.String
'\\"'         Literal.String
', '          Literal.String
'\\"'         Literal.String
'-CVS'        Literal.String
'\\"'         Literal.String
' and '       Literal.String
'\\"'         Literal.String
'-NNN'        Literal.String
'\\"'         Literal.String
' are treated as snapshot versions.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'version-list-=' Name.Variable
' '           Text
'('           Punctuation
'version-to-list' Name.Variable
' '           Text
'v1'          Name.Variable
')'           Punctuation
' '           Text
'('           Punctuation
'version-to-list' Name.Variable
' '           Text
'v2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defvar'      Keyword
' '           Text
'package--builtin-versions' Name.Variable
'\n  '        Text
';; Mostly populated by loaddefs.el via autoload-builtin-package-versions.' Comment.Single
'\n  '        Text
'('           Punctuation
'purecopy'    Name.Function
' '           Text
'`'           Operator
'('           Punctuation
'('           Punctuation
'emacs'       Name.Variable
' '           Text
'.'           Operator
' '           Text
','           Operator
'('           Punctuation
'version-to-list' Name.Variable
' '           Text
'emacs-version' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Alist giving the version of each versioned builtin package.\nI.e. each element of the list is of the form (NAME . VERSION) where\nNAME is the package name as a symbol, and VERSION is its version\nas a list.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'package--description-file' Name.Variable
' '           Text
'('           Punctuation
'dir'         Name.Variable
')'           Punctuation
'\n  '        Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'('           Punctuation
'let'         Keyword
' '           Text
'('           Punctuation
'('           Punctuation
'subdir'      Name.Variable
' '           Text
'('           Punctuation
'file-name-nondirectory' Name.Function
'\n                         ' Text
'('           Punctuation
'directory-file-name' Name.Function
' '           Text
'dir'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n            ' Text
'('           Punctuation
'if'          Keyword
' '           Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'([^.].*?'    Literal.String
'\\\\'        Literal.String
')-'          Literal.String
'\\\\'        Literal.String
'([0-9]+'     Literal.String
'\\\\'        Literal.String
'(?:[.][0-9]+' Literal.String
'\\\\'        Literal.String
'|'           Literal.String
'\\\\'        Literal.String
'(?:pre'      Literal.String
'\\\\'        Literal.String
'|beta'       Literal.String
'\\\\'        Literal.String
'|alpha'      Literal.String
'\\\\'        Literal.String
')[0-9]+'     Literal.String
'\\\\'        Literal.String
')*'          Literal.String
'\\\\'        Literal.String
')'           Literal.String
'"'           Literal.String
' '           Text
'subdir'      Name.Variable
')'           Punctuation
'\n                ' Text
'('           Punctuation
'match-string' Name.Variable
' '           Text
'1'           Literal.Number.Integer
' '           Text
'subdir'      Name.Variable
')'           Punctuation
' '           Text
'subdir'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n          ' Text
'"'           Literal.String
'-pkg.el'     Literal.String
'"'           Literal.String
')'           Punctuation
')'           Punctuation
'\n\n\x0c\n'  Text

';;; Misc.'   Comment.Single
'\n'          Text

'('           Punctuation
'defconst'    Keyword
' '           Text
'menu-bar-separator' Name.Variable
' '           Text
"'"           Operator
'('           Punctuation
'"'           Literal.String
'--'          Literal.String
'"'           Literal.String
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Separator for menus.' Literal.String
'"'           Literal.String
')'           Punctuation
'\n\n'        Text

";; The following statement ought to be in print.c, but `provide' can't" Comment.Single
'\n'          Text

';; be used there.' Comment.Single
'\n'          Text

';; http://lists.gnu.org/archive/html/emacs-devel/2009-08/msg00236.html' Comment.Single
'\n'          Text

'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'hash-table-p' Name.Function
' '           Text
'('           Punctuation
'car'         Name.Function
' '           Text
'('           Punctuation
'read-from-string' Name.Function
'\n\t\t\t  '  Text
'('           Punctuation
'prin1-to-string' Name.Function
' '           Text
'('           Punctuation
'make-hash-table' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'('           Punctuation
'provide'     Name.Builtin
' '           Text
"'hashtable-print-readable" Literal.String.Symbol
')'           Punctuation
')'           Punctuation
'\n\n'        Text

';; This is used in lisp/Makefile.in and in leim/Makefile.in to' Comment.Single
'\n'          Text

';; generate file names for autoloads, custom-deps, and finder-data.' Comment.Single
'\n'          Text

'('           Punctuation
'defun'       Name.Builtin
' '           Text
'unmsys--file-name' Name.Variable
' '           Text
'('           Punctuation
'file'        Name.Variable
')'           Punctuation
'\n  '        Text
'"'           Literal.String
'Produce the canonical file name for FILE from its MSYS form.\n\nOn systems other than MS-Windows, just returns FILE.\nOn MS-Windows, converts /d/foo/bar form of file names\npassed by MSYS Make into d:/foo/bar that Emacs can grok.\n\nThis function is called from lisp/Makefile and leim/Makefile.' Literal.String
'"'           Literal.String
'\n  '        Text
'('           Punctuation
'when'        Name.Builtin
' '           Text
'('           Punctuation
'and'         Keyword
' '           Text
'('           Punctuation
'eq'          Name.Function
' '           Text
'system-type' Name.Variable
' '           Text
"'windows-nt" Literal.String.Symbol
')'           Punctuation
'\n\t     '   Text
'('           Punctuation
'string-match' Name.Function
' '           Text
'"'           Literal.String
'\\\\'        Literal.String
'`'           Literal.String
'/[a-zA-Z]/'  Literal.String
'"'           Literal.String
' '           Text
'file'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text
'('           Punctuation
'setq'        Keyword
' '           Text
'file'        Name.Variable
' '           Text
'('           Punctuation
'concat'      Name.Function
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'file'        Name.Variable
' '           Text
'1'           Literal.Number.Integer
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
' '           Text
'"'           Literal.String
':'           Literal.String
'"'           Literal.String
' '           Text
'('           Punctuation
'substring'   Name.Function
' '           Text
'file'        Name.Variable
' '           Text
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n  '        Text
'file'        Name.Variable
')'           Punctuation
'\n\n\n'      Text

';;; subr.el ends here' Comment.Single
'\n'          Text
