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' : /[()]/ };