;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301\302\303\304\305\306\307&\210\300\310\302\311\304\305\304\301&\207" [custom-declare-group j-font-lock nil "font-lock extension for j-mode" :group j :prefix "j-font-lock-" j-faces "Faces for j-font-lock"] 8) (defvar j-verb-face (custom-declare-face 'j-verb-face '((t (:foreground "Red"))) "Font Lock mode face used to higlight vrebs" :group 'j-faces)) (defvar j-adverb-face (custom-declare-face 'j-adverb-face '((t (:foreground "Green"))) "Font Lock mode face used to higlight adverbs" :group 'j-faces)) (defvar j-conjunction-face (custom-declare-face 'j-conjunction-face '((t (:foreground "Blue"))) "Font Lock mode face used to higlight conjunctions" :group 'j-faces)) (defvar j-other-face (custom-declare-face 'j-other-face '((t (:foreground "Black"))) "Font Lock mode face used to higlight others" :group 'j-faces)) #@25 Syntax table for j-mode (defvar j-font-lock-syntax-table (byte-code "\301 \302\303\304#\210\302\305\304#\210\302\306\304#\210\302\307\304#\210\302\310\304#\210\302\311\304#\210\302\312\313#\210\302\314\313#\210\302\315\316#\210\302\317\320#\210\302\321\322#\210\302\323\324#\210\302\325\326#\210\302\327\330#\210\302\331\330#\210)\207" [table make-syntax-table modify-syntax-entry 123 "." 125 91 93 34 92 46 "w" 58 40 "()" 41 ")(" 39 "\"" 78 "w 1" 66 "w 2" 10 ">" 13] 4) (#$ . 927)) (defvar j-font-lock-constants nil) (defvar j-font-lock-control-structures '("assert." "break." "continue." "while." "whilst." "for." "do." "end." "if." "else." "elseif." "return." "select." "case." "fcase." "throw." "try." "catch." "catchd." "catcht." "end.")) (defvar j-font-lock-foreign-conjunctions '("0!:" "1!:" "2!:" "3!:" "4!:" "5!:" "6!:" "7!:" "8!:" "9!:" "11!:" "13!:" "15!:" "18!:" "128!:")) (defvar j-font-lock-len-3-verbs '("_9:" "p.." "{::")) (defvar j-font-lock-len-2-verbs '("x:" "u:" "s:" "r." "q:" "p:" "p." "o." "L." "j." "I." "i:" "i." "E." "e." "C." "A." "?." "\":" "\"." "}:" "}." "{:" "{." "[:" "/:" "\\:" "#:" "#." ";:" ",:" ",." "|:" "|." "~:" "~." "$:" "$." "^." "%:" "%." "-:" "-." "*:" "*." "+:" "+." "_:" ">:" ">." "<:" "<.")) (defvar j-font-lock-len-1-verbs '("?" "{" "]" "[" ":" "!" "#" ";" "," "|" "$" "^" "%" "-" "*" "+" ">" "<" "=")) (defvar j-font-lock-verbs (append j-font-lock-len-3-verbs j-font-lock-len-2-verbs j-font-lock-len-1-verbs)) (defvar j-font-lock-len-2-adverbs '("t:" "t." "M." "f." "b." "/.")) (defvar j-font-lock-len-1-adverbs '("}" "." "\\" "/" "~")) (defvar j-font-lock-adverbs (append j-font-lock-len-2-adverbs j-font-lock-len-1-adverbs)) (defvar j-font-lock-len-3-others '("NB.")) (defvar j-font-lock-len-2-others '("=." "=:" "_." "a." "a:")) (defvar j-font-lock-len-1-others '("_")) (defvar j-font-lock-others (append j-font-lock-len-3-others j-font-lock-len-2-others j-font-lock-len-1-others)) (defvar j-font-lock-len-3-conjunctions '("&.:")) (defvar j-font-lock-len-2-conjunctions '("T." "S:" "L:" "H." "D:" "D." "d." "&:" "&." "@:" "@." "`:" "!:" "!." ";." "::" ":." ".:" ".." "^:")) (defvar j-font-lock-len-1-conjunctions '("&" "@" "`" "\"" ":" ".")) (defvar j-font-lock-conjunctions (append j-font-lock-len-3-conjunctions j-font-lock-len-2-conjunctions j-font-lock-len-1-conjunctions)) #@29 J Mode font lock keys words (defvar j-font-lock-keywords (byte-code "\306\307!\310B\307 !\311P\312B\307\n!\313B\307 !\314B\307\f!\315B\307 !\314B\307!\316B\307!\315B\307!\314B\307!\316B\307!\315B\257\f\207" [j-font-lock-foreign-conjunctions j-font-lock-control-structures j-font-lock-constants j-font-lock-len-3-verbs j-font-lock-len-3-conjunctions j-font-lock-len-2-verbs ("\\([_a-zA-Z0-9]+\\) *\\(=[.:]\\)" (1 font-lock-variable-name-face) (2 j-other-face)) regexp-opt font-lock-warning-face "\\|\\(?:\\(?:for\\|goto\\|label\\)_[a-zA-Z]+\\.\\)" font-lock-keyword-face font-lock-constant-face j-verb-face j-conjunction-face j-adverb-face j-font-lock-len-2-adverbs j-font-lock-len-2-conjunctions j-font-lock-len-1-verbs j-font-lock-len-1-adverbs j-font-lock-len-1-conjunctions] 13) (#$ . 3279)) #@163 Function for detection of string vs. Comment Note: J comments are three chars longs, there is no easy / evident way to handle this in emacs and it poses problems (defalias 'j-font-lock-syntactic-face-function #[(state) "\3048\203 \207\3058\211\304\\dX\205'\nf\306=\205'\307\n\211\304\\\"\310\230\205' )\207" [state font-lock-string-face start-pos font-lock-comment-face 3 8 78 buffer-substring-no-properties "NB."] 5 (#$ . 4092)]) (provide 'j-font-lock)