Mired in code
Check-in [e12e0b1991]
Not logged in
Public Repositories
mwm's Repositories

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Add the enscript state file for clojure
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:e12e0b1991f2363ecde2d8821af92259a8a06817
User & Date: mwm@mired.org 2010-08-23 01:19:46
Context
2010-09-06
00:47
Add the word monkey source code. check-in: 1a04a6f9bc user: mwm@mired.org tags: trunk
2010-08-23
01:19
Add the enscript state file for clojure check-in: e12e0b1991 user: mwm@mired.org tags: trunk
2010-08-19
21:24
Add a test case and run it check-in: 8635150a25 user: mwm@mired.org tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Added clojure/clojure.st.











































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/**
 * Name: clojure
 * Description: Clojure programming language.
 * Author: Mike Meyer <mwm@mired.org>
 */

state clojure extends HighlightEntry
{
  BEGIN {
    /*
     * Modify regexp character syntax so that we can distinguish all
     * clojure symbols.
     */
    extras = list ('+', '-', '!', '*', '/', '?', '.', '>');
    for (i = 0; i < length (extras); i = i + 1)
      regexp_syntax (extras[i], 'w');
  }

  /* Comments. */
  /;/ {
    comment_face (true);
    language_print ($0);
    call (eat_one_line);
    comment_face (false);
  }

  /* String constants. */
  /([^\\\])(\")/ {
    language_print ($1);
    string_face (true);
    language_print ($2);
    call (c_string);
    string_face (false);
  }

  /* Definitions. */
  /(\([ \t]*)(def(|n|macro|multi|method|once|struct)-?)([ \t]+\(?)([!\*\/\?_+\-\.^a-zA-Z][!\*\/\?_^a-zA-Z0-9.+\-]*)/ {
    /* Starting garbage. */
    language_print ($1);

    /* Keyword `def*'. */
    keyword_face (true);
    language_print ($2);
    keyword_face (false);

    /* Middle garbage. */
    language_print ($4);

    /* Function name. */
    function_name_face (true);
    language_print ($5);
    function_name_face (false);
  }

  /* ':'-names, Emacs highlights these, so do we. */
  /(\W)(:[!\*\/\?_^a-zA-Z0-9.+\-]*)/ {
    language_print ($1);
    reference_face (true);
    language_print ($2);
    reference_face (false);
  }

  /* Special forms */
  /\W(if|do|let|quote|var|fn|map\?|loop|recur|throw|try|monitor-enter|monitor-exit)\b/ {
    keyword_face (true);
    language_print ($0);
    keyword_face (false);
  }

  /* Built-in function invocations */
    /(\([ \t]*)(\*|\*1|\*2|\*3|\*agent\*|\*allow-unresolved-vars\*|\*assert\*|\*clojure-version\*|\*command-line-args\*|\*compile-files\*|\*compile-path\*|\*e|\*err\*|\*file\*|\*flush-on-newline\*|\*in\*|\*macro-meta\*|\*math-context\*|\*ns\*|\*out\*|\*print-dup\*|\*print-length\*|\*print-level\*|\*print-meta\*|\*print-readably\*|\*read-eval\*|\*source-path\*|\*use-context-classloader\*|\*warn-on-reflection\*|+|-|\/|<|<=|=|==|>|>=|\->|\->>|\.\.|accessor|aclone|agent|agent-errors|aget|alength|alias|all-ns|alter|alter-meta!|alter-var-root|amap|ancestors|and|apply|areduce|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|assoc!|assoc-in|associative\?|atom|await|await-for|await1|bases|bean|bigdec|bigint|binding|bit-and|bit-and-not|bit-clear|bit-flip|bit-not|bit-or|bit-set|bit-shift-left|bit-shift-right|bit-test|bit-xor|boolean|boolean-array|booleans|bound-fn|bound-fn\*|butlast|byte|byte-array|bytes|cast|char|char-array|char-escape-string|char-name-string|char\?|chars|chunk|chunk-append|chunk-buffer|chunk-cons|chunk-first|chunk-next|chunk-rest|chunked-seq\?|class|class\?|clear-agent-errors|clojure-version|coll\?|comment|commute|comp|comparator|compare|compare-and-set!|compile|complement|concat|cond|condp|conj|conj!|cons|constantly|construct-proxy|contains\?|count|counted\?|create-ns|create-struct|cycle|dec|decimal\?|declare|definline|defmacro|defmethod|defmulti|defn|defn-|defonce|defstruct|delay|delay\?|deliver|deref|derive|descendants|destructure|disj|disj!|dissoc|dissoc!|distinct|distinct\?|doall|doc|dorun|doseq|dosync|dotimes|doto|double|double-array|doubles|drop|drop-last|drop-while|empty|empty\?|ensure|enumeration-seq|eval|even\?|every\?|extend|extend-protocol|extend-type|extends\?|extenders|false\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|float-array|float\?|floats|flush|fn|fn\?|fnext|for|force|format|future|future-call|future-cancel|future-cancelled\?|future-done\?|future\?|gen-class|gen-interface|gensym|get|get-in|get-method|get-proxy-class|get-thread-bindings|get-validator|hash|hash-map|hash-set|identical\?|identity|if-let|if-not|ifn\?|import|in-ns|inc|init-proxy|instance\?|int|int-array|integer\?|interleave|intern|interpose|into|into-array|ints|io!|isa\?|iterate|iterator-seq|juxt|key|keys|keyword|keyword\?|last|lazy-cat|lazy-seq|let|letfn|line-seq|list|list\*|list\?|load|load-file|load-reader|load-string|loaded-libs|locking|long|long-array|longs|loop|macroexpand|macroexpand-1|make-array|make-hierarchy|map|map\?|mapcat|max|max-key|memfn|memoize|merge|merge-with|meta|method-sig|methods|min|min-key|mod|name|namespace|neg\?|newline|next|nfirst|nil\?|nnext|not|not-any\?|not-empty|not-every\?|not=|ns|ns-aliases|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unalias|ns-unmap|nth|nthnext|num|number\?|odd\?|or|parents|partial|partition|pcalls|peek|persistent!|pmap|pop|pop!|pop-thread-bindings|pos\?|pr|pr-str|prefer-method|prefers|primitives-classnames|print|print-ctor|print-doc|print-dup|print-method|print-namespace-doc|print-simple|print-special-doc|print-str|printf|println|println-str|prn|prn-str|promise|proxy|proxy-call-with-super|proxy-mappings|proxy-name|proxy-super|push-thread-bindings|pvalues|quot|rand|rand-int|range|ratio\?|rational\?|rationalize|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|read-string|reify|reduce|ref|ref-history-count|ref-max-history|ref-min-history|ref-set|refer|refer-clojure|release-pending-sends|rem|remove|remove-method|remove-ns|repeat|repeatedly|replace|replicate|require|reset!|reset-meta!|resolve|rest|resultset-seq|reverse|reversible\?|rseq|rsubseq|satisfies\?|second|select-keys|send|send-off|seq|seq\?|seque|sequence|sequential\?|set|set-validator!|set\?|short|short-array|shorts|shutdown-agents|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|sorted-set-by|sorted\?|special-form-anchor|special-symbol\?|split-at|split-with|str|stream\?|string\?|struct|struct-map|subs|subseq|subvec|supers|swap!|symbol|symbol\?|sync|syntax-symbol-anchor|take|take-last|take-nth|take-while|test|the-ns|time|to-array|to-array-2d|trampoline|transient|tree-seq|true\?|type|unchecked-add|unchecked-dec|unchecked-divide|unchecked-inc|unchecked-multiply|unchecked-negate|unchecked-remainder|unchecked-subtract|underive|unquote|unquote-splicing|update-in|update-proxy|use|val|vals|var-get|var-set|var\?|vary-meta|vec|vector|vector\?|when|when-first|when-let|when-not|while|with-bindings|with-bindings\*|with-in-str|with-loading-context|with-local-vars|with-meta|with-open|with-out-str|with-precision|xml-seq)\b/ {
    language_print ($1);
    function_name_face (true);
    language_print ($2);
    function_name_face (false);
  }

}

 
/*
Local variables:
mode: c
End:
*/