29 lines
922 B
JavaScript
29 lines
922 B
JavaScript
|
Prism.languages.scheme = {
|
||
|
'comment' : /;.*/,
|
||
|
'string' : {
|
||
|
pattern: /"(?:[^"\\\r\n]|\\.)*"|'[^('\s]*/,
|
||
|
greedy: true
|
||
|
},
|
||
|
'keyword' : {
|
||
|
pattern : /(\()(?:define(?:-syntax|-library|-values)?|(?:case-)?lambda|let(?:\*|rec)?(?:-values)?|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-rules)/,
|
||
|
lookbehind : true
|
||
|
},
|
||
|
'builtin' : {
|
||
|
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\?)/,
|
||
|
lookbehind : true
|
||
|
},
|
||
|
'number' : {
|
||
|
pattern: /(\s|\))[-+]?\d*\.?\d+(?:\s*[-+]\s*\d*\.?\d+i)?\b/,
|
||
|
lookbehind: true
|
||
|
},
|
||
|
'boolean' : /#[tf]/,
|
||
|
'operator': {
|
||
|
pattern: /(\()(?:[-+*%\/]|[<>]=?|=>?)/,
|
||
|
lookbehind: true
|
||
|
},
|
||
|
'function' : {
|
||
|
pattern : /(\()[^\s()]*(?=\s)/,
|
||
|
lookbehind : true
|
||
|
},
|
||
|
'punctuation' : /[()]/
|
||
|
};
|