34 lines
1.0 KiB
JavaScript
34 lines
1.0 KiB
JavaScript
Prism.languages.scheme = {
|
|
'comment': /;.*/,
|
|
'string': {
|
|
pattern: /"(?:[^"\\\r\n]|\\.)*"|'[^()#'\s]+/,
|
|
greedy: true
|
|
},
|
|
'character': {
|
|
pattern: /#\\(?:u[a-fA-F\d]{4}|[a-zA-Z]+|\S)/,
|
|
alias: 'string'
|
|
},
|
|
'keyword': {
|
|
pattern: /(\()(?:define(?:-syntax|-library|-values)?|(?:case-)?lambda|let(?:\*|rec)?(?:-values)?|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-rules)(?=[()\s])/,
|
|
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\?)(?=[()\s])/,
|
|
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': /[()']/
|
|
};
|