;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301\302\303\304\305\306\307&\210\310\311!\207" [custom-declare-group rescript nil "Support for ReScript code." :link (url-link "https://rescript-lang.org/") :group languages require rescript-indent] 8) (defconst rescript--re-ident "[[:word:][:multibyte:]_][[:word:][:multibyte:]_[:digit:]]*") (defvar rescript-mode-syntax-table (byte-code "\300 \301\211\203\211@\302\303#\210A\266\202\202\210\302\304\305#\210\302\306\305#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210\302\317\320#\210\302\321\320#\210\207" [make-syntax-table (43 45 42 47 38 124 94 33 60 62 126 64) modify-syntax-entry "." 34 "\"" 96 92 "\\" 39 "_" 47 ". 124b" 42 ". 23n" 10 "> b" 13] 7)) (defconst rescript--keywords '("and" "as" "assert" "begin" "catch" "finally" "raise" "class" "constraint" "do" "done" "downto" "else" "exception" "external" "for" "fun" "functor" "if" "in" "include" "inherit" "lazy" "let" "module" "mutable" "new" "nonrec" "object" "of" "open" "or" "pri" "private" "pub" "rec" "switch" "then" "to" "try" "type" "val" "virtual" "while")) (defconst rescript--consts '("true" "false")) (defconst rescript--special-types '("int" "float" "string" "char" "bool" "unit" "list" "array" "exn" "option" "ref")) (defconst rescript--camel-case "\\_<\\([[:upper:]][_[:word:][:nonascii:][:digit:]]*\\)\\_>") (defconst rescript--char-literal-rx "\\('\\)\\(?:\\\\[^z-a]\\|[^'\\]\\)\\('\\)") #@46 Build a grab regexp given INNER. (fn INNER) (defalias 'rescript--re-grab #[257 "\300\301Q\207" ["\\(" "\\)"] 4 (#$ . 1511)]) (defvar rescript--font-lock-keywords (byte-code "\305\306\"\307B\305 \306\"\310B\305\n\306\"\311B \312B\313\f!\314P\315B\313\f\316P!\317B\320\313\316\fP!P\321B\322\313\f!\323Q\324B\257\207" [rescript--keywords rescript--special-types rescript--consts rescript--camel-case rescript--re-ident regexp-opt symbols font-lock-keyword-face font-lock-builtin-face font-lock-constant-face (1 font-lock-type-face) rescript--re-grab ":[^:]" (1 font-lock-variable-name-face) "::" (1 font-lock-type-face) "[[:space:]]+" (1 font-lock-type-face) "<[/]?" "[^>]*>" (1 font-lock-type-face)] 10)) (defvar rescript-mode-map (make-sparse-keymap)) (defvar rescript-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [rescript-mode-hook variable-documentation put "Hook run after entering ReScript mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp rescript-mode-map definition-name rescript-mode] 4) (defvar rescript-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" [rescript-mode-abbrev-table rescript-mode-map variable-documentation put purecopy "Keymap for `rescript-mode'." boundp rescript-mode-syntax-table definition-name rescript-mode (lambda (#1=#:def-tmp-var) (defvar rescript-mode-syntax-table #1#)) make-syntax-table "Syntax table for `rescript-mode'." (lambda (#1#) (defvar rescript-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `rescript-mode'." derived-mode-parent prog-mode] 5) #@225 Major mode for ReScript code. \{rescript-mode-map} In addition to any hooks its parent mode `prog-mode' might have run, this mode runs the hook `rescript-mode-hook', as the final or penultimate step during initialization. (defalias 'rescript-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324 \325\"\204R 0=\204R\326 \3250C#\210\327 !\210\330\f!\210 0\306\331!\210\332\306\333!\210\334\306\335!\210\336\306\337!\210\340\306\341!\210\342!\306\343!\210\3441P#\306\345!\210#%\306\346!\210\307&\306\347!\210\340'\306\350!\210\307(\306\333!\210\351\306\341!\210\352!\306\335!\210\353\306\354!\210\355,)\356\357!\207" [delay-mode-hooks major-mode mode-name rescript-mode-map rescript-mode-syntax-table rescript-mode-abbrev-table make-local-variable t prog-mode rescript-mode "ReScript" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table indent-line-function rescript-indent-line comment-start "/* " comment-end " */" indent-tabs-mode nil comment-start-skip "/\\*+[ ]*" paragraph-start "^[ ]*$\\|\\*)$\\|" paragraph-separate require-final-newline normal-auto-fill-function comment-multi-line "// " "\\(//+\\|/\\*+\\)\\s *" "" font-lock-defaults (rescript--font-lock-keywords) run-mode-hooks rescript-mode-hook local-abbrev-table page-delimiter] 5 (#$ . 3441) nil]) (byte-code "\300\301\302\"\210\303\304!\207" [add-to-list auto-mode-alist ("\\.resi?\\'" . rescript-mode) provide rescript-mode] 3)