'#!r6rs'      Comment
'\n\n'        Text.Whitespace

'#|'          Comment.Multiline
'\n\n   The FACT procedure computes the factorial\n\n   of a non-negative integer.\n\n   ' Comment.Multiline
'#|'          Comment.Multiline
' These comments can be nested too. ' Comment.Multiline
'|#'          Comment.Multiline
'\n\n'        Comment.Multiline

'|#'          Comment.Multiline
'\n\n'        Text.Whitespace

'('           Punctuation
'define'      Keyword
' '           Text.Whitespace
'fact'        Name.Variable
'\n\n  '      Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'n'           Name.Function
')'           Punctuation
'\n\n    '    Text.Whitespace
';; base case' Comment.Single
'\n\n    '    Text.Whitespace
'('           Punctuation
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'='           Name.Builtin
' '           Text.Whitespace
'n'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n\n        ' Text.Whitespace
'#;('         Comment
'= n 1'       Comment
')'           Comment
'\n        '  Text.Whitespace
'#;('         Comment
'= n '        Comment
'['           Comment
'1+ '         Comment
'('           Comment
"eval '"      Comment
'('           Comment
'n'           Comment
')'           Comment
')'           Comment
']'           Comment
')'           Comment
'1'           Literal.Number.Integer
'\n        '  Text.Whitespace
'#;['         Comment
'= n '        Comment
'('           Comment
'1+ '         Comment
'['           Comment
"eval '"      Comment
'['           Comment
'n'           Comment
']'           Comment
']'           Comment
')'           Comment
']'           Comment
';; another comment' Comment.Single
'\n        '  Text.Whitespace
'#;'          Comment
'1'           Comment
'\n        '  Text.Whitespace
'; identity of *' Comment.Single
'\n\n        ' Text.Whitespace
'('           Punctuation
'*'           Name.Builtin
' '           Text.Whitespace
'n'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'fact'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'-'           Name.Builtin
' '           Text.Whitespace
'n'           Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace
