1 | Prism.languages.scheme = {
|
2 | 'comment': /;.*/,
|
3 | 'string': {
|
4 | pattern: /"(?:[^"\\]|\\.)*"/,
|
5 | greedy: true
|
6 | },
|
7 | 'symbol': {
|
8 | pattern: /'[^()#'\s]+/,
|
9 | greedy: true
|
10 | },
|
11 | 'character': {
|
12 | pattern: /#\\(?:[ux][a-fA-F\d]+|[-a-zA-Z]+|\S)/,
|
13 | greedy: true,
|
14 | alias: 'string'
|
15 | },
|
16 | 'lambda-parameter': [
|
17 |
|
18 | {
|
19 | pattern: /(\(lambda\s+)[^()'\s]+/,
|
20 | lookbehind: true
|
21 | },
|
22 | {
|
23 | pattern: /(\(lambda\s+\()[^()']+/,
|
24 | lookbehind: true
|
25 | }
|
26 | ],
|
27 | 'keyword': {
|
28 | pattern: /(\()(?:define(?:-library|-macro|-syntax|-values)?|defmacro|(?:case-)?lambda|let(?:(?:\*|rec)?(?:-values)?|-syntax|rec-syntax)|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-(?:case|rules))(?=[()\s]|$)/,
|
29 | lookbehind: true
|
30 | },
|
31 | 'builtin': {
|
32 | pattern: /(\()(?:(?:cons|car|cdr|list|call-with-current-continuation|call\/cc|append|abs|apply|eval)\b|null\?|pair\?|boolean\?|eof-object\?|char\?|procedure\?|number\?|port\?|string\?|vector\?|symbol\?|bytevector\?)(?=[()\s]|$)/,
|
33 | lookbehind: true
|
34 | },
|
35 | 'number': {
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
44 |
|
45 |
|
46 |
|
47 |
|
48 |
|
49 |
|
50 |
|
51 | pattern: /(^|[\s()])(?:(?:#d(?:#[ei])?|#[ei](?:#d)?)?[+-]?(?:(?:\d*\.?\d+(?:[eE][+-]?\d+)?|\d+\/\d+)(?:[+-](?:\d*\.?\d+(?:[eE][+-]?\d+)?|\d+\/\d+)i)?|(?:\d*\.?\d+(?:[eE][+-]?\d+)?|\d+\/\d+)i)|(?:#[box](?:#[ei])?|#[ei](?:#[box])?)[+-]?(?:[\da-fA-F]+(?:\/[\da-fA-F]+)?(?:[+-][\da-fA-F]+(?:\/[\da-fA-F]+)?i)?|[\da-fA-F]+(?:\/[\da-fA-F]+)?i))(?=[()\s]|$)/,
|
52 | lookbehind: true
|
53 | },
|
54 | 'boolean': {
|
55 | pattern: /(^|[\s()])#[ft](?=[()\s]|$)/,
|
56 | lookbehind: true
|
57 | },
|
58 | 'operator': {
|
59 | pattern: /(\()(?:[-+*%\/]|[<>]=?|=>?)(?=[()\s]|$)/,
|
60 | lookbehind: true
|
61 | },
|
62 | 'function': {
|
63 | pattern: /(\()[^()'\s]+(?=[()\s]|$)/,
|
64 | lookbehind: true
|
65 | },
|
66 | 'punctuation': /[()']/
|
67 | };
|