| Server IP : 217.160.0.212 / Your IP : 216.73.216.141 Web Server : Apache System : Linux www 6.18.51-i1-ampere #1196 SMP Fri Sep 11 20:43:55 CEST 2026 aarch64 User : sws1073854427 ( 1073854427) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /usr/share/emacs/28.2/lisp/progmodes/ |
Upload File : |
;ELC
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.
(byte-code "\300\301!\210\302\303\304\305\306\307\310\311\312\313& \207" [require smie custom-declare-group modula2 nil "Major mode for editing Modula-2 code." :link (custom-group-link :tag "Font Lock Faces group" font-lock-faces) :prefix "m2-" :group languages] 10)
#@42 Syntax table in use in Modula-2 buffers.
(defvar m2-mode-syntax-table (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\210\301\320\317#\210\301\321\317#\210\301\322\317#\210\301\323\317#\210\301\324\317#\210\301\325\326#\210\207" [make-syntax-table modify-syntax-entry 92 "\\" 47 ". 12" 10 ">" 40 "()1" 41 ")(4" 42 ". 23nb" 43 "." 45 61 37 60 62 39 "\""] 5) (#$ . 351))
(byte-code "\300\301\302\303\304DD\305\306\307%\210\300\310\302\303\311DD\312\306\307%\210\300\313\302\303\314DD\315\306\316%\210\300\317\302\303\320DD\321\306\322%\207" [custom-declare-variable m2-compile-command funcall function #[0 "\300\207" ["m2c"] 1 #1=""] "Command to compile Modula-2 programs." :type string m2-link-command #[0 "\300\207" ["m2l"] 1 #1#] "Command to link Modula-2 programs." m2-link-name #[0 "\300\207" [nil] 1 #1#] "Name of the Modula-2 executable." (choice (const nil) string) m2-end-comment-column #[0 "\300\207" [75] 1 #1#] "Column for aligning the end of a comment, in Modula-2." integer] 6)
#@31 Keymap used in Modula-2 mode.
(defvar m2-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\210\301\320\321#\210\301\322\323#\210\301\324\325#\210\301\326\327#\210\301\330\331#\210\301\332\333#\210\301\334\335#\210\301\336\337#\210\301\340\341#\210\301\342\343#\210\301\344\345#\210\301\346\347#\210\301\350\351#\210\301\352\353#\210\301\354\355#\210\301\356\357#\210\301\360\361#\210\301\362\363#\210\301\364\365#\210\301\366\367#\210\207" [make-sparse-keymap define-key "b" m2-begin "c" m2-case "d" m2-definition "e" m2-else "f" m2-for "h" m2-header "i" m2-if "m" m2-module "l" m2-loop "o" m2-or "p" m2-procedure "" m2-with "r" m2-record "s" m2-stdio "t" m2-type "u" m2-until "v" m2-var "w" m2-while "x" m2-export "y" m2-import "{" m2-begin-comment "}" m2-end-comment "" suspend-emacs "" m2-visit "" m2-toggle "\f" m2-link "" m2-compile] 5) (#$ . 1445))
(byte-code "\300\301\302\303\304DD\305\306\307%\210\310\301\311\312#\207" [custom-declare-variable m2-indent funcall function #[0 "\300\207" [5] 1 ""] "This variable gives the indentation in Modula-2 mode." :type integer put safe-local-variable #[257 "\211?\206 \211\250\207" [] 2 "\n\n(fn V)"]] 6)
(defconst m2-smie-grammar '((:smie-closer-alist (#22="RECORD" . #28="END") (#23="POINTER" . #27="TO") (#24="SET" . "OF-type") (#25="ARRAY" . #26="OF-type") (#21="(" . #20=")") (#1="PROCEDURE" . "END") (#1# . #17="BEGIN") ("PROCEDURE" . #12="FINALLY") (#18="PROCEDURE" . #19="FORWARD") (#2="CASE" . "END") (#2# . #11="OF") (#14="CASE" . #10="ELSE") (#15="LOOP" . "END") (#3="WITH" . "END") (#3# . #9="DO") (#16="REPEAT" . #13="UNTIL") (#4="WHILE" . "END") (#4# . "DO") (#5="FOR" . "END") (#5# . "DO") (#6="IF" . "END") (#6# . #8="THEN") ("IF" . "ELSE") ("IF" . #7="ELSIF") ("ARRAY" . "OF") ("SET" . "OF")) ("^" 150 163) ("." 151 164) ("~" 136 137) ("NOT" 138 139) ("&" 125 125) ("/" 125 125) ("*" 125 125) ("REM" 125 125) ("DIV" 125 125) ("MOD" 125 125) ("AND" 125 125) ("-" 114 114) ("+" 114 114) ("OR" 114 114) ("IN" 77 96) ("#" 78 97) ("<>" 79 98) (">" 80 99) (">=" 81 100) ("<=" 82 101) ("<" 83 102) (#7# 0 1) (#8# 1 0) (#9# 2 0) (#10# 0 0) (#11# 4 0) (":-case" 31 30) ("|" 18 18) (".." 162 162) (#12# 0 0) (#13# 3 59) (":=" 165 60) (#14# (166) 4) (#15# (167) 0) (#3# (168) 2) (#16# (169) 3) (#4# (170) 2) (#5# (171) 2) ("IF" (172) 1) (#17# 6 0) (#18# (173) 6) ("TYPE" (174) 34) ("CONST" (175) 33) ("VAR" (176) 32) (#19# 6 (177)) ("-anchor-" 84 58) (";-block" 19 19) ("=" 56 57) (#20# 5 (178)) ("VAR-arg" (179) 62) ("CONST-arg" (180) 63) (#21# (181) 5) (#22# (182) 0) (#23# (183) 17) (#24# (184) 4) (#25# (185) 4) ("," 103 103) (":" 85 66) (#26# 4 64) ("PROCEDURE-type" (186) 65) (#27# 17 61) (";" 45 45) (#28# 0 (187))))
(defalias 'm2-smie-refine-colon #[0 "\301\211\204q \302 \211G\303U\2033 \301\3041* `\305\306!\210\211`U\205# \307\211\262\2620\210\202. \210\307\262)\210\202 \211\310\267\202E \266\311\202 \266\307\202 \211G\303U\203m \301\3121h `\305\306!\210\211`U\205a \307\211\262\2620\210\202l \210\307\262)\210\202 \207" [forward-sexp-function nil smie-default-backward-token 0 (scan-error) forward-sexp -1 ":" #s(hash-table size 10 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("|" 57 "OF" 57 ".." 57 ":" 63 "END" 63 ";" 63 "BEGIN" 63 "VAR" 63 "RECORD" 63 "PROCEDURE" 63)) ":-case" (scan-error)] 5])
(defalias 'm2-smie-refine-of #[0 "\301 \211G\302U\203 \303\3041 \305\306!0\210\202 \210\301 \262)\211\307\235\203% \310\207\311\207" [forward-sexp-function smie-default-backward-token 0 nil (scan-error) backward-sexp 1 ("ARRAY" "SET") "OF-type" "OF"] 3])
(defalias 'm2-smie-refine-semi #[0 "\300d!\210\301\302!\203\f \303\207\304\207" [forward-comment looking-at "\\(?:BEGIN\\|CONST\\|PROCEDURE\\|TYPE\\|VAR\\)" ";-block" ";"] 2])
(defalias 'm2-smie-forward-token #[0 "\300 \211\301\267\207\302 @\303U\203 \304\207\305\207\302 @\303U\203 \306\207\307\207\212\310 )\207\212\311u\210\312 )\207\212\313u\210\314 )\207\207" [smie-default-forward-token #s(hash-table size 5 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("VAR" 6 "CONST" 18 ";" 30 "OF" 35 ":" 43)) syntax-ppss 0 "VAR" "VAR-arg" "CONST" "CONST-arg" m2-smie-refine-semi -2 m2-smie-refine-of -1 m2-smie-refine-colon] 3])
(defalias 'm2-smie-backward-token #[0 "\300 \211\301\267\207\302 @\303U\203 \304\207\305\207\302 @\303U\203 \306\207\307\207\212\310u\210\311 )\207\212\312 )\207\212\313 )\207\207" [smie-default-backward-token #s(hash-table size 5 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("VAR" 6 "CONST" 18 ";" 30 "OF" 38 ":" 43)) syntax-ppss 0 "VAR" "VAR-arg" "CONST" "CONST-arg" 1 m2-smie-refine-semi m2-smie-refine-of m2-smie-refine-colon] 3])
#@19
(fn KIND TOKEN)
(defalias 'm2-smie-rules #[514 "\302B\211\303\267\202 \207\206 \207\211:\203\212 \211\242\211\304=\203G \243\211\305\235\203- \206F \207\306\267\202; \207\307!\207\211\305\235\205F \206F \207\310\267\202T \207\307!\207\211\304=\205\211 \243\211\305\235\203j \206\207 \202\207 \311\267\202| \202\207 \307!\202\207 \211\305\235\205\207 \206\207 \262\207\211\312\267\202\227 \207\307!\207\211:\205\211\242\211\304=\203\326 \243\211\305\235\203\264 \206\321 \202\321 \313\267\202\306 \202\321 \307!\202\321 \211\305\235\205\321 \206\321 \262\202\314\267\202\347 \202\307!\202\211\304=\205\243\211\305\235\203\375 \206 \202\315\267\202 \202\307!\202\211\305\235\205\206 \262\262\207" [m2-indent smie-indent-basic #[0 "\302\303!\205
\304\206\f !\207" [m2-indent smie-indent-basic smie-rule-parent-p "PROCEDURE" smie-rule-parent] 2] #s(hash-table size 2 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ((:elem . basic) 10 (:after . ":=") 12)) :after ("TYPE" "VAR" "CONST") #s(hash-table size 2 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#1=(:after . ";-block") 51 #2=(:before . "|") 54)) smie-rule-separator #s(hash-table size 2 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#1# 77 #2# 80)) #s(hash-table size 2 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#1# 112 #2# 117)) #s(hash-table size 2 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#1# 144 #2# 147)) #s(hash-table size 2 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#1# 186 #2# 191)) #s(hash-table size 2 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#1# 220 #2# 225)) #s(hash-table size 2 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (#1# 259 #2# 264))] 8 (#$ . 6275)])
(defalias 'modula-2-mode 'm2-mode)
(defvar m2-mode-hook nil)
(byte-code "\300\301N\204\f \302\300\301\303#\210\304\305!\204 \302\305\306\307#\210\300\207" [m2-mode-hook variable-documentation put "Hook run after entering Modula-2 mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp m2-mode-map definition-name m2-mode] 4)
(defvar m2-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204 \303\301\302\304\305!#\210\306\307!\204 \303\307\310\311#\210\312\313 !\210\307\302N\204- \303\307\302\304\314!#\210\306\300!\204B \303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P \303\300\302\304\320!#\210\303\311\321\322#\207" [m2-mode-abbrev-table m2-mode-map variable-documentation put purecopy "Keymap for `m2-mode'." boundp m2-mode-syntax-table definition-name m2-mode (lambda (#1=#:def-tmp-var) (defvar m2-mode-syntax-table #1#)) make-syntax-table "Syntax table for `m2-mode'." (lambda (#1#) (defvar m2-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `m2-mode'." derived-mode-parent prog-mode] 5)
#@1240 This is a mode intended to support program development in Modula-2.
All control constructs of Modula-2 can be reached by typing C-c
followed by the first character of the construct.
\<m2-mode-map>
\[m2-begin] begin \[m2-case] case
\[m2-definition] definition \[m2-else] else
\[m2-for] for \[m2-header] header
\[m2-if] if \[m2-module] module
\[m2-loop] loop \[m2-or] or
\[m2-procedure] procedure Control-c Control-w with
\[m2-record] record \[m2-stdio] stdio
\[m2-type] type \[m2-until] until
\[m2-var] var \[m2-while] while
\[m2-export] export \[m2-import] import
\[m2-begin-comment] begin-comment \[m2-end-comment] end-comment
\[suspend-emacs] suspend Emacs \[m2-toggle] toggle
\[m2-compile] compile \[m2-next-error] next-error
\[m2-link] link
`m2-indent' controls the number of spaces for each indentation.
`m2-compile-command' holds the command to compile a Modula-2 program.
`m2-link-command' holds the command to link a Modula-2 program.
In addition to any hooks its parent mode `prog-mode' might have run,
this mode runs the hook `m2-mode-hook', as the final or penultimate
step during initialization.
(defalias 'm2-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203 \314\311\313\310\313N#\210\315!\204'