;ELC
;;; Compiled
;;; in Emacs version 27.1
;;; with all optimizations.
;;; This file contains utf-8 non-ASCII characters,
;;; and so cannot be loaded into Emacs 22 or earlier.
(and (boundp 'emacs-version)
(< (aref emacs-version (1- (length emacs-version))) ?A)
(string-lessp emacs-version "23")
(error "`%s' was compiled for Emacs 23 or later" #$))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(byte-code "\300\301!\210\300\302!\210\303\304\305\306\307\310\311\312&\210\313\314\315\316\317DD\320\321\322%\210\313\323\315\316\324DD\325\326\327\321\322\330\331& \210\313\332\315\316\333DD\334\321\335\326\336&\210\337\340\341\"\210\313\341\315\316\342DD\343\321\316\344\345\346\347& \210\350\341\351\352#\210\313\353\315\316\354DD\355\321\356%\207" [require dom seq custom-declare-group sgml nil "SGML editing mode." :link (custom-group-link :tag "Font Lock Faces group" font-lock-faces) :group languages custom-declare-variable sgml-basic-offset funcall function #[0 "\300\207" [2] 1] "Specifies the basic indentation level for `sgml-indent-line'." :type integer sgml-attribute-offset #[0 "\300\207" [0] 1] "Specifies a delta for attribute indentation in `sgml-indent-line'.\n\nWhen 0, attribute indentation looks like this:\n\n \n \n\nWhen 2, attribute indentation looks like this:\n\n \n " :version "25.1" :safe integerp sgml-xml-mode #[0 "\300\207" [nil] 1] "When non-nil, tag insertion functions will be XML-compliant.\nIt is set to be buffer-local when the file has\na DOCTYPE or an XML declaration." boolean "22.1" defvaralias sgml-transformation sgml-transformation-function #[0 "\300\207" [identity] 1] "Default value for `skeleton-transformation-function' in SGML mode." :initialize custom-initialize-default :set #[514 "\300\"\210\301\302\303\304\305\306!\307\"\310\311%\312 \"\207" [set-default mapc make-byte-code 257 "r\211q\210\303\304!\205 ?\205 \300\211)\207" vconcat vector [sgml-xml-mode skeleton-transformation-function derived-mode-p sgml-mode] 3 "\n\n(fn BUFF)" buffer-list] 9 "\n\n(fn SYM VAL)"] put variable-interactive "aTransformation function: " sgml-mode-hook #[0 "\300\207" [nil] 1] "Hook run by command `sgml-mode'.\n`text-mode-hook' is run first." hook] 10)
#@339 List of characters that have a special meaning for SGML mode.
This list is used when first loading the `sgml-mode' library.
The supported characters are ?\", ?\=', and ?-.
Including ?- makes double dashes into comment delimiters, but
they are really only supposed to delimit comments within DTD
definitions. So we normally turn it off.
(defvar sgml-specials '(34 39) (#$ . 2306))
#@137 Use <, >, &, /, SPC and `sgml-specials' keys "electrically" when non-nil.
This takes effect when first loading the `sgml-mode' library.
(defvar sgml-quick-keys nil (#$ . 2695))
#@50 Keymap for SGML mode. See also `sgml-specials'.
(defvar sgml-mode-map (byte-code "\302 \303\304!\305\306\307#\210\305\310\311#\210\305\312\313#\210\305\314\315#\210\305\316\317#\210\305\320\321#\210\305\322\321#\210\305\323\324#\210\305\325\324#\210\305\326\327#\210\305\330\327#\210\305\331\332#\210\305\333\334#\210\305\335\334#\210\305\336\315#\210\305\337\334#\210\305\340\341#\210\305\342\343#\210\203\245 \305\344\313#\210\305\345\315#\210\305\346\347#\210\305\350\351#\210\352 >\203\231 \305\353\354#\210\355 >\203\245 \305\356\354#\210\357A@T\211\262\360W\203\273 \211\361I\210\202\251 \266\305\362\304B#\210\305\363\364#\210\305\365\366#\210\305\367\370#\210\305\371\372#\210\305\373\374#\210\305\375\376#\210\305\377\201@ #\210\305\201A \201B #\210\305\201C \201D #\210\207" [sgml-quick-keys sgml-specials make-keymap make-sparse-keymap "SGML" define-key " " sgml-tags-invisible "/" sgml-slash "" sgml-name-char "" sgml-tag "" sgml-attributes "" sgml-skip-tag-backward [3 left] "" sgml-skip-tag-forward [3 right] "" sgml-delete-tag "" "?" sgml-tag-help "]" sgml-close-tag "/" "" "" "8" sgml-name-8bit-mode "" sgml-validate "&" "<" " " sgml-auto-attributes ">" sgml-maybe-end-tag 34 "\"" sgml-name-self 39 "'" 127 256 sgml-maybe-name-self [menu-bar sgml] [sgml-validate] ("Validate" . sgml-validate) [sgml-name-8bit-mode] ("Toggle 8 Bit Insertion" . sgml-name-8bit-mode) [sgml-tags-invisible] ("Toggle Tag Visibility" . sgml-tags-invisible) [sgml-tag-help] ("Describe Tag" . sgml-tag-help) [sgml-delete-tag] ("Delete Tag" . sgml-delete-tag) [sgml-skip-tag-forward] ("Forward Tag" . sgml-skip-tag-forward) [sgml-skip-tag-backward] ("Backward Tag" . sgml-skip-tag-backward) [sgml-attributes] ("Insert Attributes" . sgml-attributes) [sgml-tag] ("Insert Tag" . sgml-tag)] 7) (#$ . 2878))
#@17
(fn SPECIALS)
(defalias 'sgml-make-syntax-table #[257 "\301!\302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\310#\210\302\312\310#\210\313>\203- \302\313\314#\210\315>\2039 \302\315\316#\210\317>\203E \302\317\320#\210\211\207" [text-mode-syntax-table make-syntax-table modify-syntax-entry 60 "(>" 62 ")<" 58 "_" 95 46 45 "_ 1234" 34 "\"\"" 39 "\"'"] 6 (#$ . 4745)])
#@60 Syntax table used in SGML mode. See also `sgml-specials'.
(defvar sgml-mode-syntax-table (sgml-make-syntax-table sgml-specials) (#$ . 5143))
#@39 Syntax table used to parse SGML tags.
(defconst sgml-tag-syntax-table (byte-code "\301!\302\211\203 \211@\303\304#\210A\266\202\202 \210\305>\204$ \303\305\306#\210\211\207" [sgml-specials sgml-make-syntax-table (40 41 123 125 91 93 36 37 38 42 43 47) modify-syntax-entry "." 39 "w"] 7) (#$ . 5291))
(byte-code "\300\301\302\303\304DD\305\306\307%\207" [custom-declare-variable sgml-name-8bit-mode funcall function #[0 "\300\207" [nil] 1] "When non-nil, insert non-ASCII characters as named entities." :type boolean] 6)
#@57 Vector of symbolic character names without `&' and `;'.
(defvar sgml-char-names [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil "nbsp" "excl" "quot" "num" "dollar" "percnt" "amp" "apos" "lpar" "rpar" "ast" "plus" "comma" "hyphen" "period" "sol" nil nil nil nil nil nil nil nil nil nil "colon" "semi" "lt" "eq" "gt" "quest" "commat" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil "lsqb" nil "rsqb" "uarr" "lowbar" "lsquo" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil "lcub" "verbar" "rcub" "tilde" nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil "nbsp" "iexcl" "cent" "pound" "curren" "yen" "brvbar" "sect" "uml" "copy" "ordf" "laquo" "not" "shy" "reg" "macr" "ring" "plusmn" "sup2" "sup3" "acute" "micro" "para" "middot" "cedil" "sup1" "ordm" "raquo" "frac14" "frac12" "frac34" "iquest" "Agrave" "Aacute" "Acirc" "Atilde" "Auml" "Aring" "AElig" "Ccedil" "Egrave" "Eacute" "Ecirc" "Euml" "Igrave" "Iacute" "Icirc" "Iuml" "ETH" "Ntilde" "Ograve" "Oacute" "Ocirc" "Otilde" "Ouml" nil "Oslash" "Ugrave" "Uacute" "Ucirc" "Uuml" "Yacute" "THORN" "szlig" "agrave" "aacute" "acirc" "atilde" "auml" "aring" "aelig" "ccedil" "egrave" "eacute" "ecirc" "euml" "igrave" "iacute" "icirc" "iuml" "eth" "ntilde" "ograve" "oacute" "ocirc" "otilde" "ouml" "divide" "oslash" "ugrave" "uacute" "ucirc" "uuml" "yacute" "thorn" "yuml"] (#$ . 5825))
(put 'sgml-table 'char-table-extra-slots 0)
#@116 A table for mapping non-ASCII characters into SGML entity names.
Currently, only Latin-1 characters are supported.
(defvar sgml-char-names-table (byte-code "\301\302!\303\304\305W\203# H\262\211\203 \306\307\"I\210T\262\202 \207" [sgml-char-names make-char-table sgml-table 32 nil 128 make-char latin-iso8859-1] 7) (#$ . 7484))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable sgml-validate-command funcall function #[0 "\300\301!\203 \302\207\300\303!\203 \304\207\300\305!\203 \306\207\307\207" [executable-find "tidy" "tidy --gnu-emacs yes -utf8 -e -q" "nsgmls" "nsgmls -s" "onsgmls" "onsgmls -s" "Install (o)nsgmls, tidy, or some other SGML validator, and set `sgml-validate-command'"] 2] "The command to validate an SGML document.\nThe file name of current buffer file name will be appended to this,\nseparated by a space." :type string :version "21.1"] 8)
#@51 The command last used to validate in this buffer.
(defvar sgml-saved-validate-command nil (#$ . 8405))
(byte-code "\300\301\302\303\304DD\305\306\307%\207" [custom-declare-variable sgml-slash-distance funcall function #[0 "\300\207" [1000] 1] "If non-nil, is the maximum distance to search for matching `/'." :type (choice (const nil) integer)] 6)
(defconst sgml-namespace-re "[_[:alpha:]][-_.[:alnum:]]*")
(defconst sgml-name-re "[_:[:alpha:]][-_.:[:alnum:]]*")
(defconst sgml-tag-name-re (concat "<\\([!/?]?" sgml-name-re "\\)"))
(defconst sgml-attrs-re "\\(?:[^\"'/><]\\|\"[^\"]*\"\\|'[^']*'\\)*")
#@99 Regular expression that matches a non-empty start tag.
Any terminating `>' or `/' is not matched.
(defconst sgml-start-tag-regex (concat "<" sgml-name-re sgml-attrs-re) (#$ . 9012))
(custom-declare-face 'sgml-namespace '((t (:inherit font-lock-builtin-face))) "`sgml-mode' face used to highlight the namespace part of identifiers.")
(defvar sgml-namespace-face 'sgml-namespace)
(defconst sgml-font-lock-keywords-1 (byte-code "\302\303Q\304B\305 \306\307\260\310B\311 \306\312\260\313B\314\315Q\316BF\207" [sgml-name-re sgml-namespace-re "<\\([!?]" "\\)" (1 font-lock-keyword-face) "?\\(" "\\)\\(?::\\(" "\\)\\)?" ((1 (if (match-end 2) sgml-namespace-face font-lock-function-name-face)) (2 font-lock-function-name-face nil t)) "\\(?:^\\|[ ]\\)\\(" "\\)\\)?=[\"']" ((1 (if (match-end 2) sgml-namespace-face font-lock-variable-name-face)) (2 font-lock-variable-name-face nil t)) "[&%]" ";?" font-lock-variable-name-face] 7))
(defconst sgml-font-lock-keywords-2 (append sgml-font-lock-keywords-1 '((eval cons (concat "<" (regexp-opt (mapcar 'car sgml-tag-face-alist) t) "\\([ ][^>]*\\)?>\\([^<]+\\)\\1>") '(3 (cdr (assoc-string (match-string 1) sgml-tag-face-alist t)) prepend)))))
#@68 Rules for highlighting SGML code. See also `sgml-tag-face-alist'.
(defvar sgml-font-lock-keywords sgml-font-lock-keywords-1 (#$ . 10208))
#@66 `font-lock-syntactic-face-function' for `sgml-mode'.
(fn STATE)
(defalias 'sgml-font-lock-syntactic-face #[257 "\3028\203 \3038\203 \207\3048\205 \207" [font-lock-string-face font-lock-comment-face 9 3 4] 3 (#$ . 10353)])
(defvar sgml--syntax-propertize-ppss nil nil)
(make-variable-buffer-local 'sgml--syntax-propertize-ppss)
#@80 Return PPSS at POS, fixing the syntax of any lone `>' along the way.
(fn POS)
(defalias 'sgml--syntax-propertize-ppss #[257 "\211@Y\204 \301\302!\210\303@\304\305A%\211@\304=\2033 \306`S`\307\310$\210\211\311\240\210\303`\304\305%\262\202 \241\210\240\210\211\207" [sgml--syntax-propertize-ppss cl--assertion-failed (>= pos (car sgml--syntax-propertize-ppss)) parse-partial-sexp -1 nil put-text-property syntax-table (1) 0] 8 (#$ . 10695)])
#@90 Syntax-propertize rules for sgml text.
These have to be run via `sgml-syntax-propertize'
(defconst sgml-syntax-propertize-rules '(("\\(<\\)!--" (1 "< b")) ("--[ \n]*\\(>\\)" (1 "> b")) ("\\(<\\)[?!]" (1 (prog1 "|>" (sgml-syntax-propertize-inside end)))) ("\\([\"']\\)[^\"'<>]*" (1 (if (eq (char-after) (char-after (match-beginning 0))) (forward-char 1) (when (eq (char-after) 62) (skip-chars-backward "-")) (if (zerop (save-excursion (car (sgml--syntax-propertize-ppss (match-beginning 0))))) (string-to-syntax ".")))))) (#$ . 11156))
(defconst sgml--syntax-propertize #[514 "b\210`W\205\245 \300\301\302#\205\245 \303\224\203\" \304\303\224\303\225\305\306$\210\202 \307\224\2033 \304\307\224\307\225\305\310$\210\202 \311\224\203W \312\313!\211A\314\233\241\210\315!\266\304\303\224\303\225\305\316$\210\317!\210\202 \320\224\203 \312\313!\211A\321\233\241\210\315!\266\303\224\303\225\322f\323\224f=\203} \303u\202\225 \322f\324=\203\210 \325\322x\210\212\326\323\224!@)\323U\205\225 \327\211\203\240 \304\305$\210\266\202 \207" [re-search-forward "\\(<\\)!--\\|--[ \n]*\\(>\\)\\|\\(<\\)[?!]\\|\\([\"']\\)[^\"'<>]*" t 1 put-text-property syntax-table (2097163) 2 (2097164) 3 match-data ints 6 set-match-data (15 . 62) sgml-syntax-propertize-inside 4 8 nil 0 62 "-" sgml--syntax-propertize-ppss (1)] 10 "\n\n(fn START END)"])
#@78 Syntactic keywords for `sgml-mode'.
(fn START END &optional RULES-FUNCTION)
(defalias 'sgml-syntax-propertize #[770 "\302!B\211A@\303Y\204 \304\305!\210\306!\210\211\206 `\"\210\300!\207" [sgml--syntax-propertize-ppss sgml--syntax-propertize syntax-ppss 0 cl--assertion-failed (>= (cadr sgml--syntax-propertize-ppss) 0) sgml-syntax-propertize-inside] 7 (#$ . 12511)])
#@12
(fn END)
(defalias 'sgml-syntax-propertize-inside #[257 "\302 \3038\304=\205K \212\3058b\210\306\304\307!)\262\203 \310\2029 \311\304\307!)\262\2038 \2034 \312\2029 \313\2029 \313)\314\315#\205I \316`S`\317\320$\262\207" [inhibit-changing-match-data sgml-xml-mode syntax-ppss 3 t 8 "" "<\\?" "\\?>" ">" re-search-forward move put-text-property syntax-table (15 . 60)] 8 (#$ . 12895)])
#@42 Alist of face and tag name for facemenu.
(defvar sgml-face-tag-alist nil (#$ . 13331))
#@217 Tag names and face or list of faces to fontify with when invisible.
When `font-lock-maximum-decoration' is 1 this is always used for fontifying.
When more these are fontified together with `sgml-font-lock-keywords'.
(defvar sgml-tag-face-alist nil (#$ . 13425))
#@68 Tag names as lowercase symbols, and display string when invisible.
(defvar sgml-display-text nil (#$ . 13693))
(defvar sgml-tags-invisible nil)
(byte-code "\300\301\302\303\304DD\305\306\307%\210\310\301\311\312#\210\300\313\302\303\314DD\315\306\316%\207" [custom-declare-variable sgml-tag-alist funcall function #[0 "\300\207" [(("![" ("ignore" t) ("include" t)) ("!attlist") ("!doctype") ("!element") ("!entity"))] 1] "Alist of tag names for completing read and insertion rules.\nThis alist is made up as\n\n ((\"tag\" . TAGRULE)\n ...)\n\nTAGRULE is a list of optionally t (no endtag) or `\\n' (separate endtag by\nnewlines) or a skeleton with nil, t or `\\n' in place of the interactor\nfollowed by an ATTRIBUTERULE (for an always present attribute) or an\nattribute alist.\n\nThe attribute alist is made up as\n\n ((\"attribute\" . ATTRIBUTERULE)\n ...)\n\nATTRIBUTERULE is a list of optionally t (no value when no input) followed by\nan optional alist of possible values." :type (repeat (cons (string :tag "Tag Name") (repeat :tag "Tag Rule" sexp))) put risky-local-variable t sgml-tag-help #[0 "\300\207" [(("!" . "Empty declaration for comment") ("![" . "Embed declarations with parser directive") ("!attlist" . "Tag attributes declaration") ("!doctype" . "Document type (DTD) declaration") ("!element" . "Tag declaration") ("!entity" . "Entity (macro) declaration"))] 1] "Alist of tag name and short description." (repeat (cons (string :tag "Tag Name") (string :tag "Description")))] 6)
#@52 List of tags whose !ELEMENT definition says EMPTY.
(defvar sgml-empty-tags nil (#$ . 15202))
#@70 List of tags whose !ELEMENT definition says the end-tag is optional.
(defvar sgml-unclosed-tags nil (#$ . 15301))
#@65 Guess whether the current buffer is XML. Return non-nil if so.
(defalias 'sgml-xml-guess #[0 "\212eb\210\301\206\n \302!\303\230\2067 \304 \305U\203# \301\206 \302!\306\230\2067 \307\310!\2067 \311\312\313\314#\2057 \315\316\317\320!\")\207" [buffer-file-name file-name-extension "" "xml" buffer-size 0 "xhtml" looking-at "\\s-*<\\?xml" re-search-forward "