;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'ebnf-otz) #@44 Value returned by `ebnf-abn-lex' function. (defvar ebnf-abn-lex nil (#$ . 428)) #@14 ABNF parser. (defalias 'ebnf-abn-parser #[(start) " ZT S`\306\211\211 b\210\307 \211\310=\203\"\311\312!\210 \313=\203+\307  \310=\204\\\314`Z\315_\245\316\317\"\"\266\320 !\211A @\321\n!\204+\n\fB\202+ b\210\f.\207" [ebnf-limit start rule token rule-list origin nil ebnf-abn-lex end-of-input error "Invalid ABNF file format" end-of-rule "Parsing...%s%%" 100.0 message format ebnf-abn-rule ebnf-add-empty-rule-list bias total ebnf-message-float] 8 (#$ . 514)]) (defalias 'ebnf-abn-rule #[(token) " \306\306 \307=\204\310\311!\210\300 \211\312>\204\310\313!\210 \314=\203)\f\315P\316 \211@\317>\2047\310\320!\210\nA\321\f!\210\300 \322\f\n #+B\207" [ebnf-abn-lex ebnf-action elements action name token nil non-terminal error "Invalid rule name" (equal incremental-alternative) "Invalid rule: missing `=' or `=/'" incremental-alternative " =/" ebnf-abn-alternation (end-of-rule end-of-input) "Invalid rule: there is no end of rule" ebnf-eps-add-production ebnf-make-production] 6]) (defalias 'ebnf-abn-alternation #[nil "\302\211\303\304 !\211@\305=\203A B\202\306 \"*\207" [concatenation body nil ebnf-abn-concatenation ebnf-abn-lex alternative ebnf-token-alternative] 3]) (defalias 'ebnf-abn-concatenation #[(token) "\303!\304\211@\nA\211\204\305\306!\210\n B\303!\211@\nA\211\203-\n B\202\307 !*B\207" [token seq term ebnf-abn-repetition nil error "Empty element" ebnf-token-sequence] 4]) (defalias 'ebnf-abn-repetition #[(token) "\305\211\n\306=\203 \303 \211\307=\204 \n\307=\2033 \204%\310\211\303 \211\306=\2033 \303 \311\n! \203\200\f\204C\312\313!\210\303  \314\230\203X\204X\n\315\f!B\202\216 \316\230\203b\203n \310\230\203v\310\230\203v\n\317\f!B\202\216\320 \n\fB#\202\216\f\203\213\303 \fB\202\216\n\305B+\207" [upper lower token ebnf-abn-lex element nil integer repeat "" ebnf-abn-element error "Missing element repetition" "1" ebnf-make-one-or-more "0" ebnf-make-zero-or-more ebnf-token-repeat] 5]) (defalias 'ebnf-abn-element #[(token) "\303\267\2024\304 !\207\305 !\207\306 \211@\307=\204\310\311!\210\nA)\207\306 \211@\312=\204.\310\313!\210\314\nA!)\207\315\207" [token ebnf-abn-lex body #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (terminal 6 non-terminal 10 begin-group 14 begin-optional 32)) ebnf-make-terminal ebnf-make-non-terminal ebnf-abn-alternation end-group error "Missing `)'" end-optional "Missing `]'" ebnf-token-optional nil] 3]) #@51 Vector used to map characters to a lexical token. (defconst ebnf-abn-token-table (make-vector 256 'error) (#$ . 3038)) #@30 Initialize EBNF token table. (defalias 'ebnf-abn-initialize #[nil "\302\211\303W\203 \304I\210T\211\202\305\211\306W\203( \307I\210T\211\202\310\211\311W\203< \307I\210T\211\202+\312\211\313W\203P \307I\210T\211\202? \314\315I\210 \316\315I\210 \317\320I\210 \321\320I\210 \322\320I\210 \323\324I\210 \325\307I\210 \326\327I\210 \330\327I\210 \331\332I\210 \333\334I\210 \335\336I\210 \337\340I\210 \306\341I\210 \342\343I\210 \344\345I\210 \346\347I)\207" [char ebnf-abn-token-table 48 58 integer 65 91 non-terminal 97 123 160 256 10 end-of-rule 13 11 space 9 32 12 form-feed 60 37 terminal 34 40 begin-group 41 end-group 42 repeat 61 equal begin-optional 93 end-optional 47 alternative 59 comment] 4 (#$ . 3163)]) (defconst ebnf-abn-non-terminal-chars (ebnf-range-regexp "-_0-9A-Za-z" 160 255)) (defconst ebnf-abn-non-terminal-letter-chars (ebnf-range-regexp "A-Za-z" 160 255)) #@101 Lexical analyzer for ABNF. Return a lexical token. See documentation for variable `ebnf-abn-lex'. (defalias 'ebnf-abn-lex #[nil "`Y\203\306\207\307g\310V\203\311\202@\ngH\211\312\267\202<\313w\210`W\202=\314 \202=\307u\210\315\211\202=\316 \202=\307\204\n`Y\203J\306\202\277 \317\267\202\273\311\320!\202\277\321\202\277\322\323!\324\202\277g\325U\203m\326 \202o\327 \330\202\277g\331U\211\203\212\307u\210\332#!\204\212\311\333!\210\322$! \203\242g\334U\204\235\311\333!\210\335\f\336Q)\337\202\277\307u\210g\340U\204\264\341\202\277\307u\210\342\202\277\307u\210 )\207" [ebnf-limit token ebnf-abn-token-table ebnf-action ebnf-abn-lex prose-p end-of-input nil 255 error #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (space 31 comment 41 form-feed 46 end-of-rule 55)) " " ebnf-abn-skip-comment form-feed ebnf-abn-skip-end-of-rule #s(hash-table size 6 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (error 80 end-of-rule 86 integer 90 terminal 98 non-terminal 116 equal 167)) "Invalid character" end-of-rule ebnf-buffer-substring "0-9" integer 34 ebnf-abn-string ebnf-abn-character terminal 60 looking-at "Invalid prose value" 62 "<" ">" non-terminal 47 equal incremental-alternative ebnf-abn-non-terminal-letter-chars ebnf-abn-non-terminal-chars] 4 (#$ . 4077)]) (defalias 'ebnf-abn-skip-end-of-rule #[nil "\302\303 w\304V\206 \305 w\210g\306U\203\307 \204)?\207" [eor-p ebnf-limit nil " \n" 1 " " 59 ebnf-abn-skip-comment] 2]) (defconst ebnf-abn-comment-chars (ebnf-range-regexp "^\n--" 127 159)) (defalias 'ebnf-abn-skip-comment #[nil "\305u\210\203g\306U\203\307\310 !\210\202S\203'g\311U\203'\312\310 !\210\202S\2039g\313U\2039\314\310 !\210\202S\203Kg\315U\203K\316\310 !\210\202S gH \fw\210`\fY\203[\305\207g\317U\203c\320\207\321\322!\207" [ebnf-eps-executing ebnf-comment-table ebnf-action ebnf-abn-comment-chars ebnf-limit nil 91 ebnf-eps-add-context ebnf-abn-eps-filename 93 ebnf-eps-remove-context 72 ebnf-eps-header-comment 70 ebnf-eps-footer-comment 10 t error "Invalid character"] 2]) (defalias 'ebnf-abn-eps-filename #[nil "\301u\210\302!\207" [ebnf-abn-comment-chars nil ebnf-buffer-substring] 2]) (defconst ebnf-abn-string-chars (ebnf-range-regexp " -!#-~" 160 255)) (defalias 'ebnf-abn-string #[nil "\302\303u\210` w\210g\304U\204\305\306!\210`\303u\210\"\207" [ebnf-abn-string-chars ebnf-limit buffer-substring-no-properties nil 34 error "Missing `\"'"] 4]) (defalias 'ebnf-abn-character #[nil "\303`\304u\210g\211\305U\204\306U\203\307\202:\310U\204#\311U\203'\312\202:\313U\2043\314U\2037\315\202:\316\317!\304u\210 \nw\320V\204J\316\317!\210g\321U\203b\304u\210 \nw\320V\204z\316\322!\210\202zg\323U\203z\304u\210 \nw\320V\204b\316\317!\210\202b*`\"\207" [char chars ebnf-limit buffer-substring-no-properties nil 66 98 "01" 68 100 "0-9" 88 120 "[:xdigit:]" error "Invalid terminal value" 0 45 "Invalid terminal value range" 46] 5]) (provide 'ebnf-abn)