';;; example.xtm -- Extempore code examples ' Comment.Single
'\n\n'        Text.Whitespace

';; Author: Ben Swift, Andrew Sorensen' Comment.Single
'\n'          Text.Whitespace

';; Keywords: extempore' Comment.Single
'\n\n'        Text.Whitespace

';;; Commentary:' Comment.Single
'\n\n\n\n'    Text.Whitespace

';;; Code:'   Comment.Single
'\n\n'        Text.Whitespace

';; bit twiddling' Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'test_bit_twiddle_1' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'bitwise-and' Name.Variable
' '           Text.Whitespace
'65535'       Literal.Number.Integer
' '           Text.Whitespace
'255'         Literal.Number.Integer
' '           Text.Whitespace
'15'          Literal.Number.Integer
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'test_bit_twiddle_1' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'test_bit_twiddle_2' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'bitwise-not' Name.Variable
' '           Text.Whitespace
'-1'          Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'test_bit_twiddle_2' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'test_bit_twiddle_3' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'bitwise-not' Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'test_bit_twiddle_3' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'-1'          Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'test_bit_twiddle_4' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'bitwise-shift-right' Name.Variable
' '           Text.Whitespace
'65535'       Literal.Number.Integer
' '           Text.Whitespace
'8'           Literal.Number.Integer
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'bitwise-shift-right' Name.Variable
' '           Text.Whitespace
'65535'       Literal.Number.Integer
' '           Text.Whitespace
'4'           Literal.Number.Integer
' '           Text.Whitespace
'4'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'test_bit_twiddle_4' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'255'         Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'test_bit_twiddle_5' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'bitwise-shift-left' Name.Variable
' '           Text.Whitespace
'('           Punctuation
'bitwise-shift-right' Name.Variable
' '           Text.Whitespace
'65535'       Literal.Number.Integer
' '           Text.Whitespace
'8'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'4'           Literal.Number.Integer
' '           Text.Whitespace
'4'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'test_bit_twiddle_5' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'65280'       Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'test_bit_twiddle_6' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'bitwise-and' Name.Variable
' '           Text.Whitespace
'('           Punctuation
'bitwise-or'  Name.Variable
' '           Text.Whitespace
'('           Punctuation
'bitwise-eor' Name.Variable
' '           Text.Whitespace
'21844'       Literal.Number.Integer
' '           Text.Whitespace
'65534'       Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'bitwise-eor' Name.Variable
' '           Text.Whitespace
'43690'       Literal.Number.Integer
' '           Text.Whitespace
'65534'       Literal.Number.Integer
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'test_bit_twiddle_6' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

';; integer literals default to 64 bit integers' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'int-literal-test' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Name.Variable
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'int-literal-test' Name.Variable
' '           Text.Whitespace
'6'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'30'          Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

';; float literals default to doubles' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'float-literal-test' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Name.Variable
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'5.0'         Literal.Number.Float
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'float-literal-test' Name.Variable
' '           Text.Whitespace
'6.0'         Literal.Number.Float
')'           Punctuation
' '           Text.Whitespace
'30.0'        Literal.Number.Float
')'           Punctuation
'\n\n'        Text.Whitespace

';; you are free to recompile an existing closure' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'int-literal-test' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Name.Variable
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'/'           Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'int-literal-test' Name.Variable
' '           Text.Whitespace
'30'          Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'closure-test1' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'power'       Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'x'           Name.Variable
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'set!'        Keyword
' '           Text.Whitespace
'power'       Name.Variable
' '           Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'power'       Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
';; set! for closure mutation as per scheme' Comment.Single
'\n                ' Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'power'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'closure-test1' Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'closure-returns-closure-test' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'x'           Name.Variable
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'3'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'closure-returns-closure-test' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'incrementer-test1' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
':i64'        Keyword.Type
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'incr'        Name.Variable
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'set!'        Keyword
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'incr'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'incrementer-test1' Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'define'      Keyword
' '           Text.Whitespace
'myf'         Name.Variable
' '           Text.Whitespace
'('           Punctuation
'incrementer-test1' Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';; so we need to type f properly' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'incrementer-test2' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'f'           Name.Variable
':[i64,i64]*' Keyword.Type
' '           Text.Whitespace
'x'           Name.Variable
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'f'           Name.Variable
' '           Text.Whitespace
'x'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n         ' Text.Whitespace
'('           Punctuation
'incrementer-test2' Name.Variable
' '           Text.Whitespace
'myf'         Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

';; and we can call my-in-maker-wrapper' Comment.Single
'\n'          Text.Whitespace

';; to appy myf' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest-result' Name.Variable
' '           Text.Whitespace
'('           Punctuation
'incrementer-test2' Name.Variable
' '           Text.Whitespace
'myf'         Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest-result' Name.Variable
' '           Text.Whitespace
'('           Punctuation
'incrementer-test2' Name.Variable
' '           Text.Whitespace
'myf'         Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'3'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest-result' Name.Variable
' '           Text.Whitespace
'('           Punctuation
'incrementer-test2' Name.Variable
' '           Text.Whitespace
'myf'         Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'4'           Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

';; of course the wrapper is only required if you' Comment.Single
'\n'          Text.Whitespace

';; need interaction with the scheme world.' Comment.Single
'\n'          Text.Whitespace

';; otherwise you just call my-inc-maker directly' Comment.Single
'\n\n'        Text.Whitespace

';; this avoids the wrapper completely' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'incrementer-test3' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'f'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'incrementer-test1' Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'f'           Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'incrementer-test3' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest-result' Name.Variable
' '           Text.Whitespace
'('           Punctuation
'incrementer-test3' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest-result' Name.Variable
' '           Text.Whitespace
'('           Punctuation
'incrementer-test3' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'3'           Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

";; hopefully you're getting the idea." Comment.Single
'\n'          Text.Whitespace

";; note that once we've compiled something" Comment.Single
'\n'          Text.Whitespace

';; we can then use it any of our new' Comment.Single
'\n'          Text.Whitespace

';; function definitions.' Comment.Single
'\n\n'        Text.Whitespace

';; do a little 16bit test' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'bitsize-sixteen' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Name.Variable
':i16'        Keyword.Type
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'dtoi16'      Name.Variable
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'('           Punctuation
'i16tod'      Name.Variable
' '           Text.Whitespace
'a'           Name.Variable
')'           Punctuation
' '           Text.Whitespace
'5.0'         Literal.Number.Float
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'bitsize-sixteen' Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'25'          Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

';; while loop test' Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'test_while_loop_1' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'count'       Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'while'       Name.Variable
' '           Text.Whitespace
'('           Punctuation
'<'           Name.Function
' '           Text.Whitespace
'count'       Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"count = %lld\\n"' Literal.String
' '           Text.Whitespace
'count'       Name.Variable
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'set!'        Keyword
' '           Text.Whitespace
'count'       Name.Variable
' '           Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'count'       Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'count'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'test_while_loop_1' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; Closures can be recursive' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'recursive-closure-test' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Name.Variable
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'<'           Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"done\\n"'   Literal.String
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'begin'       Keyword
' '           Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"a: %lld\\n"' Literal.String
' '           Text.Whitespace
'a'           Name.Variable
')'           Punctuation
'\n                         ' Text.Whitespace
'('           Punctuation
'recursive-closure-test' Name.Variable
' '           Text.Whitespace
'('           Punctuation
'-'           Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'recursive-closure-test' Name.Variable
' '           Text.Whitespace
'3'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';; check TAIL OPTIMIZATION' Comment.Single
'\n'          Text.Whitespace

';; if there is no tail call optimiation' Comment.Single
'\n'          Text.Whitespace

';; in place then this should blow the' Comment.Single
'\n'          Text.Whitespace

';; stack and crash the test' Comment.Single
'\n\n'        Text.Whitespace

';; CANNOT RUN THIS TEST ON WINDOWS (i.e. no salloc)!' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'not'         Name.Function
' '           Text.Whitespace
'('           Punctuation
'equal?'      Name.Function
' '           Text.Whitespace
'('           Punctuation
'sys:platform' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'"Windows"'   Literal.String
')'           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'tail_opt_test' Name.Function
'\n                ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'n'           Name.Variable
':i64'        Keyword.Type
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'a'           Name.Variable
':float*'     Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'salloc'      Name.Function
' '           Text.Whitespace
'8000'        Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'='           Name.Function
' '           Text.Whitespace
'n'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n                        ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"tail opt test passed!\\n"' Literal.String
')'           Punctuation
'\n                        ' Text.Whitespace
'('           Punctuation
'tail_opt_test' Name.Variable
' '           Text.Whitespace
'('           Punctuation
'-'           Name.Function
' '           Text.Whitespace
'n'           Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n             ' Text.Whitespace
'('           Punctuation
'tail_opt_test' Name.Variable
' '           Text.Whitespace
'200'         Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    \n'    Text.Whitespace

'('           Punctuation
'println'     Name.Function
' '           Text.Whitespace
"'A"          Literal.String.Symbol
' '           Text.Whitespace
"'segfault"   Literal.String.Symbol
' '           Text.Whitespace
"'here"       Literal.String.Symbol
' '           Text.Whitespace
"'incidates"  Literal.String.Symbol
' '           Text.Whitespace
"'that"       Literal.String.Symbol
' '           Text.Whitespace
"'tail-call-optimizations" Literal.String.Symbol
' '           Text.Whitespace
"'are"        Literal.String.Symbol
' '           Text.Whitespace
"'not"        Literal.String.Symbol
' '           Text.Whitespace
"'working!"   Literal.String.Symbol
')'           Punctuation
'\n\n'        Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; some anon lambda tests' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'infer_lambdas_test' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'a'           Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'b'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'x'           Name.Variable
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'x'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'c'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'y'           Name.Variable
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'y'           Name.Variable
' '           Text.Whitespace
'y'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'          \n                ' Text.Whitespace
'('           Punctuation
'c'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'b'           Name.Variable
' '           Text.Whitespace
'a'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'infer_lambdas_test' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n\n'      Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';; a simple tuple example' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; tuple types are represented as <type,type,type>*' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n\n'        Text.Whitespace

';; make and return a simple tuple' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'tuple-test1' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
't'           Name.Variable
':<i64,double,i32>*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
't'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'tuple-test1' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';; logview shows [<i64,double,i32>*]*' Comment.Single
'\n'          Text.Whitespace

';; i.e. a closure that takes no arguments' Comment.Single
'\n'          Text.Whitespace

';; and returns the tuple <i64,double,i32>*' Comment.Single
'\n\n\n'      Text.Whitespace

";; here's another tuple example" Comment.Single
'\n'          Text.Whitespace

";; note that my-test-7's return type is inferred" Comment.Single
'\n'          Text.Whitespace

';; by the tuple-reference index' Comment.Single
'\n'          Text.Whitespace

';; (i.e. i64 being tuple index 0)' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'tuple-test2' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'a'           Name.Variable
':<i64,double>*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'; returns pointer to type <i64,double>' Comment.Single
'\n                    ' Text.Whitespace
'('           Punctuation
'b'           Name.Variable
' '           Text.Whitespace
'37'          Literal.Number.Integer
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'c'           Name.Variable
' '           Text.Whitespace
'6.4'         Literal.Number.Float
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'tuple-set!'  Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
'b'           Name.Variable
')'           Punctuation
' '           Text.Whitespace
';; set i64 to 64' Comment.Single
'\n                ' Text.Whitespace
'('           Punctuation
'tset!'       Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
' '           Text.Whitespace
'c'           Name.Variable
')'           Punctuation
' '           Text.Whitespace
';; set double to 6.4 - tset! is an alias for tuple-set!' Comment.Single
'\n                ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"tuple:1 %lld::%f\\n"' Literal.String
' '           Text.Whitespace
'('           Punctuation
'tuple-ref'   Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'tref'        Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
';; we can fill a tuple in a single call by using tfill!' Comment.Single
'\n                ' Text.Whitespace
'('           Punctuation
'tfill!'      Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'77'          Literal.Number.Integer
' '           Text.Whitespace
'77.7'        Literal.Number.Float
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"tuple:2 %lld::%f\\n"' Literal.String
' '           Text.Whitespace
'('           Punctuation
'tuple-ref'   Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'tuple-ref'   Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'tuple-ref'   Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'tuple-test2' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'77'          Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

';; return first element which is i64' Comment.Single
'\n'          Text.Whitespace

';; should be 64 as we return the' Comment.Single
'\n'          Text.Whitespace

';; first element of the tuple' Comment.Single
'\n'          Text.Whitespace

';; (println (my-test-7)) ; 77' Comment.Single
'\n\n\n'      Text.Whitespace

';; tbind binds variables to values' Comment.Single
'\n'          Text.Whitespace

';; based on tuple structure' Comment.Single
'\n'          Text.Whitespace

";; _ (underscore) means don't attempt" Comment.Single
'\n'          Text.Whitespace

';; to match against this position in' Comment.Single
'\n'          Text.Whitespace

';; the tuple (i.e. skip)' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'tuple-bind-test' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
't1'          Name.Variable
':<i32,float,<i32,float>*,double>*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
't2'          Name.Variable
':<i32,float>*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'a'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'b'           Name.Variable
':float'      Keyword.Type
' '           Text.Whitespace
'0.0'         Literal.Number.Float
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'c'           Name.Variable
' '           Text.Whitespace
'0.0'         Literal.Number.Float
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'tfill!'      Name.Function
' '           Text.Whitespace
't2'          Name.Variable
' '           Text.Whitespace
'3'           Literal.Number.Integer
' '           Text.Whitespace
'3.3'         Literal.Number.Float
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'tfill!'      Name.Function
' '           Text.Whitespace
't1'          Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
' '           Text.Whitespace
'2.0'         Literal.Number.Float
' '           Text.Whitespace
't2'          Name.Variable
' '           Text.Whitespace
'4.0'         Literal.Number.Float
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'tbind'       Name.Function
' '           Text.Whitespace
't1'          Name.Variable
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'b'           Name.Variable
' '           Text.Whitespace
'_'           Name.Variable
' '           Text.Whitespace
'c'           Name.Variable
')'           Punctuation
'\n                ' Text.Whitespace
'c'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'tuple-bind-test' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'4.0'         Literal.Number.Float
')'           Punctuation
'\n\n\n'      Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';; some array code with *casting*' Comment.Single
'\n'          Text.Whitespace

';; this function returns void' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'array-test1' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'v1'          Name.Variable
':|5,float|*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'v2'          Name.Variable
':|5,float|*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'k'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
'\n                  ' Text.Whitespace
';; random returns double so "truncate" to float' Comment.Single
'\n                  ' Text.Whitespace
';; which is what v expects' Comment.Single
'\n                  ' Text.Whitespace
'('           Punctuation
'array-set!'  Name.Function
' '           Text.Whitespace
'v1'          Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'dtof'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'random'      Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
';; we can use the afill! function to fill an array' Comment.Single
'\n                ' Text.Whitespace
'('           Punctuation
'afill!'      Name.Function
' '           Text.Whitespace
'v2'          Name.Variable
' '           Text.Whitespace
'1.1'         Literal.Number.Float
' '           Text.Whitespace
'2.2'         Literal.Number.Float
' '           Text.Whitespace
'3.3'         Literal.Number.Float
' '           Text.Whitespace
'4.4'         Literal.Number.Float
' '           Text.Whitespace
'5.5'         Literal.Number.Float
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'k'           Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
'\n                  ' Text.Whitespace
";; unfortunately printf doesn't like floats" Comment.Single
'\n                  ' Text.Whitespace
';; so back to double for us :(' Comment.Single
'\n                  ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"val: %lld::%f::%f\\n"' Literal.String
' '           Text.Whitespace
'k'           Name.Variable
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'array-ref'   Name.Function
' '           Text.Whitespace
'v1'          Name.Variable
' '           Text.Whitespace
'k'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'v2'          Name.Variable
' '           Text.Whitespace
'k'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'array-test1' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';; some crazy array code with' Comment.Single
'\n'          Text.Whitespace

';; closures and arrays' Comment.Single
'\n'          Text.Whitespace

';; try to figure out what this all does' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; this example uses the array type' Comment.Single
'\n'          Text.Whitespace

';; the pretty print for this type is' Comment.Single
'\n'          Text.Whitespace

';; |num,type| num elements of type' Comment.Single
'\n'          Text.Whitespace

';; |5,i64| is an array of 5 x i64' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; An array is not a pointer type' Comment.Single
'\n'          Text.Whitespace

';; i.e. |5,i64| cannot be bitcast to i64*' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; However an array can be a pointer' Comment.Single
'\n'          Text.Whitespace

';; i.e. |5,i64|* can be bitcast to i64*' Comment.Single
'\n'          Text.Whitespace

';; i.e. |5,i64|** to i64** etc..' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; make-array returns a pointer to an array' Comment.Single
'\n'          Text.Whitespace

';; i.e. (make-array 5 i64) returns type |5,i64|*' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; aref (array-ref) and aset! (array-set!)' Comment.Single
'\n'          Text.Whitespace

';; can operate with either pointers to arrays or' Comment.Single
'\n'          Text.Whitespace

';; standard pointers.' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; in other words aref and aset! are happy' Comment.Single
'\n'          Text.Whitespace

';; to work with either i64* or |5,i64|*' Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'array-test2' Name.Function
'\n   '       Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'v'           Name.Variable
':|5,i64|*'   Keyword.Type
')'           Punctuation
'\n      '    Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'f'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'x'           Name.Variable
')'           Punctuation
'\n\t\t  '    Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'('           Punctuation
'array-ref'   Name.Function
' '           Text.Whitespace
'v'           Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'x'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text.Whitespace
'f'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'array-test3' Name.Function
'\n  '        Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'v'           Name.Variable
':|5,[i64,i64]*|*' Keyword.Type
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'ff'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'v'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'; aref alias for array-ref' Comment.Single
'\n      '    Text.Whitespace
'('           Punctuation
'ff'          Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'array-test4' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'v'           Name.Variable
':|5,[i64,i64]*|*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
';; make an array of closures!' Comment.Single
'\n                    ' Text.Whitespace
'('           Punctuation
'vv'          Name.Variable
':|5,i64|*'   Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'array-set!'  Name.Function
' '           Text.Whitespace
'vv'          Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
' '           Text.Whitespace
'3'           Literal.Number.Integer
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'aset!'       Name.Function
' '           Text.Whitespace
'v'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
'('           Punctuation
'array'       Name.Function
'-test2'      Name.Variable
' '           Text.Whitespace
'vv'          Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
';; aset! alias for array-set!' Comment.Single
'\n                ' Text.Whitespace
'('           Punctuation
'array'       Name.Function
'-test3'      Name.Variable
' '           Text.Whitespace
'v'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
';; try to guess the answer before you call this!!' Comment.Single
'\n         ' Text.Whitespace
'('           Punctuation
'array-test4' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';; some conditionals' Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'cond-test1'  Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'x'           Name.Variable
':i64'        Keyword.Type
' '           Text.Whitespace
'y'           Name.Variable
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'>'           Name.Function
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'y'           Name.Variable
')'           Punctuation
'\n                  ' Text.Whitespace
'x'           Name.Variable
'\n                  ' Text.Whitespace
'y'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'cond'        Keyword
'-test1'      Name.Variable
' '           Text.Whitespace
'12'          Literal.Number.Integer
' '           Text.Whitespace
'13'          Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';; returns boolean true' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'cond-test2'  Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'x'           Name.Variable
':i64'        Keyword.Type
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'cond'        Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'='           Name.Function
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"A\\n"'      Literal.String
')'           Punctuation
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'('           Punctuation
'='           Name.Function
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"B\\n"'      Literal.String
')'           Punctuation
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'('           Punctuation
'='           Name.Function
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'3'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"C\\n"'      Literal.String
')'           Punctuation
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'('           Punctuation
'='           Name.Function
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'4'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"D\\n"'      Literal.String
')'           Punctuation
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'else'        Keyword
' '           Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"E\\n"'      Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'#t'          Name.Constant
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'cond'        Keyword
'-test2'      Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';; making a linear envelop generator' Comment.Single
'\n'          Text.Whitespace

';; for signal processing and alike' Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'envelope-segments' Name.Function
'\n  '        Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'points'      Name.Variable
':double*'    Keyword.Type
' '           Text.Whitespace
'num-of-points' Name.Variable
':i64'        Keyword.Type
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'lines'       Name.Variable
':[double,double]**' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'zone-alloc'  Name.Function
' '           Text.Whitespace
'num-of-points' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t  '      Text.Whitespace
'('           Punctuation
'k'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n      '    Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'k'           Name.Variable
' '           Text.Whitespace
'num-of-points' Name.Variable
')'           Punctuation
'\n\t'        Text.Whitespace
'('           Punctuation
'let*'        Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'idx'         Name.Variable
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'k'           Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t       ' Text.Whitespace
'('           Punctuation
'x1'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'pointer-ref' Name.Function
' '           Text.Whitespace
'points'      Name.Variable
' '           Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'idx'         Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t       ' Text.Whitespace
'('           Punctuation
'y1'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'pointer-ref' Name.Function
' '           Text.Whitespace
'points'      Name.Variable
' '           Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'idx'         Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t       ' Text.Whitespace
'('           Punctuation
'x2'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'pointer-ref' Name.Function
' '           Text.Whitespace
'points'      Name.Variable
' '           Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'idx'         Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t       ' Text.Whitespace
'('           Punctuation
'y2'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'pointer-ref' Name.Function
' '           Text.Whitespace
'points'      Name.Variable
' '           Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'idx'         Name.Variable
' '           Text.Whitespace
'3'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t       ' Text.Whitespace
'('           Punctuation
'm'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'='           Name.Function
' '           Text.Whitespace
'0.0'         Literal.Number.Float
' '           Text.Whitespace
'('           Punctuation
'-'           Name.Function
' '           Text.Whitespace
'x2'          Name.Variable
' '           Text.Whitespace
'x1'          Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'0.0'         Literal.Number.Float
' '           Text.Whitespace
'('           Punctuation
'/'           Name.Function
' '           Text.Whitespace
'('           Punctuation
'-'           Name.Function
' '           Text.Whitespace
'y2'          Name.Variable
' '           Text.Whitespace
'y1'          Name.Variable
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'-'           Name.Function
' '           Text.Whitespace
'x2'          Name.Variable
' '           Text.Whitespace
'x1'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t       ' Text.Whitespace
'('           Punctuation
'c'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'-'           Name.Function
' '           Text.Whitespace
'y2'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'm'           Name.Variable
' '           Text.Whitespace
'x2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t       ' Text.Whitespace
'('           Punctuation
'l'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'time'        Name.Variable
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'm'           Name.Variable
' '           Text.Whitespace
'time'        Name.Variable
')'           Punctuation
' '           Text.Whitespace
'c'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t  '      Text.Whitespace
'('           Punctuation
'pointer-set!' Name.Function
' '           Text.Whitespace
'lines'       Name.Variable
' '           Text.Whitespace
'k'           Name.Variable
' '           Text.Whitespace
'l'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text.Whitespace
'lines'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'make-envelope' Name.Function
'\n   '       Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'points'      Name.Variable
':double*'    Keyword.Type
' '           Text.Whitespace
'num-of-points' Name.Variable
')'           Punctuation
'\n      '    Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'klines'      Name.Variable
':[double,double]**' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'envelope-segments' Name.Variable
' '           Text.Whitespace
'points'      Name.Variable
' '           Text.Whitespace
'num-of-points' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t    '    Text.Whitespace
'('           Punctuation
'line-length' Name.Variable
' '           Text.Whitespace
'num-of-points' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t '       Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'time'        Name.Variable
')'           Punctuation
'\n\t    '    Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'res'         Name.Variable
' '           Text.Whitespace
'-1.0'        Literal.Number.Float
')'           Punctuation
'\n\t\t  '    Text.Whitespace
'('           Punctuation
'k'           Name.Variable
':i64'        Keyword.Type
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\t       ' Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'k'           Name.Variable
' '           Text.Whitespace
'num-of-points' Name.Variable
')'           Punctuation
'\n\t\t  '    Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'line'        Name.Variable
' '           Text.Whitespace
'('           Punctuation
'pointer-ref' Name.Function
' '           Text.Whitespace
'klines'      Name.Variable
' '           Text.Whitespace
'k'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t\t'    Text.Whitespace
'('           Punctuation
'time-point'  Name.Variable
' '           Text.Whitespace
'('           Punctuation
'pointer-ref' Name.Function
' '           Text.Whitespace
'points'      Name.Variable
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'k'           Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t\t     ' Text.Whitespace
'('           Punctuation
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'or'          Keyword
' '           Text.Whitespace
'('           Punctuation
'='           Name.Function
' '           Text.Whitespace
'time'        Name.Variable
' '           Text.Whitespace
'time-point'  Name.Variable
')'           Punctuation
'\n\t\t\t     ' Text.Whitespace
'('           Punctuation
'<'           Name.Function
' '           Text.Whitespace
'time-point'  Name.Variable
' '           Text.Whitespace
'time'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\t\t\t '   Text.Whitespace
'('           Punctuation
'set!'        Keyword
' '           Text.Whitespace
'res'         Name.Variable
' '           Text.Whitespace
'('           Punctuation
'line'        Name.Variable
' '           Text.Whitespace
'time'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t       ' Text.Whitespace
'res'         Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';; make a convenience wrapper' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'env-wrap'    Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'let*'        Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'points'      Name.Variable
' '           Text.Whitespace
'3'           Literal.Number.Integer
')'           Punctuation
'\n                   ' Text.Whitespace
'('           Punctuation
'data'        Name.Variable
':double*'    Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'zone-alloc'  Name.Function
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'points'      Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'pointer-set!' Name.Function
' '           Text.Whitespace
'data'        Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
'0.0'         Literal.Number.Float
')'           Punctuation
' '           Text.Whitespace
';; point data' Comment.Single
'\n              ' Text.Whitespace
'('           Punctuation
'pset!'       Name.Function
' '           Text.Whitespace
'data'        Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
' '           Text.Whitespace
'0.0'         Literal.Number.Float
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'pset!'       Name.Function
' '           Text.Whitespace
'data'        Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
' '           Text.Whitespace
'2.0'         Literal.Number.Float
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'pset!'       Name.Function
' '           Text.Whitespace
'data'        Name.Variable
' '           Text.Whitespace
'3'           Literal.Number.Integer
' '           Text.Whitespace
'1.0'         Literal.Number.Float
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'pset!'       Name.Function
' '           Text.Whitespace
'data'        Name.Variable
' '           Text.Whitespace
'4'           Literal.Number.Integer
' '           Text.Whitespace
'4.0'         Literal.Number.Float
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'pset!'       Name.Function
' '           Text.Whitespace
'data'        Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
' '           Text.Whitespace
'0.0'         Literal.Number.Float
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'f'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'make-env'    Name.Function
'elope'       Name.Variable
' '           Text.Whitespace
'data'        Name.Variable
' '           Text.Whitespace
'points'      Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'time'        Name.Variable
':double'     Keyword.Type
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'f'           Name.Variable
' '           Text.Whitespace
'time'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n         ' Text.Whitespace
'('           Punctuation
'env-wrap'    Name.Variable
' '           Text.Whitespace
'0.0'         Literal.Number.Float
')'           Punctuation
' '           Text.Whitespace
'0.0'         Literal.Number.Float
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest-result' Name.Variable
' '           Text.Whitespace
'('           Punctuation
'env-wrap'    Name.Variable
' '           Text.Whitespace
'1.0'         Literal.Number.Float
')'           Punctuation
' '           Text.Whitespace
'0.5'         Literal.Number.Float
')'           Punctuation
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest-result' Name.Variable
' '           Text.Whitespace
'('           Punctuation
'env-wrap'    Name.Variable
' '           Text.Whitespace
'2.0'         Literal.Number.Float
')'           Punctuation
' '           Text.Whitespace
'1.0'         Literal.Number.Float
')'           Punctuation
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest-result' Name.Variable
' '           Text.Whitespace
'('           Punctuation
'env-wrap'    Name.Variable
' '           Text.Whitespace
'2.5'         Literal.Number.Float
')'           Punctuation
' '           Text.Whitespace
'0.75'        Literal.Number.Float
')'           Punctuation
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest-result' Name.Variable
' '           Text.Whitespace
'('           Punctuation
'env-wrap'    Name.Variable
' '           Text.Whitespace
'4.0'         Literal.Number.Float
')'           Punctuation
' '           Text.Whitespace
'0.0'         Literal.Number.Float
')'           Punctuation
'\n\n'        Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; direct access to a closures environment' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; it is possible to directly access a closures' Comment.Single
'\n'          Text.Whitespace

';; environment in order to read or modify data' Comment.Single
'\n'          Text.Whitespace

';; at runtime.' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; You do this using a dot operator' Comment.Single
'\n'          Text.Whitespace

';; To access an environment slot you use' Comment.Single
'\n'          Text.Whitespace

';; closure.slot:type' Comment.Single
'\n'          Text.Whitespace

';; So for example' Comment.Single
'\n'          Text.Whitespace

';; (f.a:i32)' Comment.Single
'\n'          Text.Whitespace

";; would return the 32bit integer symbol 'a'" Comment.Single
'\n'          Text.Whitespace

";; from the closure 'f'" Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; To set an environment slot you just' Comment.Single
'\n'          Text.Whitespace

';; add a value of the correct type' Comment.Single
'\n'          Text.Whitespace

';; for example' Comment.Single
'\n'          Text.Whitespace

';; (f.a:i32 565)' Comment.Single
'\n'          Text.Whitespace

";; would set 'a' in 'f' to 565" Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

";; let's create a closure that capture's 'a'" Comment.Single
'\n\n\n'      Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'dot-access-test1' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'a'           Name.Variable
':i32'        Keyword.Type
' '           Text.Whitespace
'6'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"a:%d\\n"'   Literal.String
' '           Text.Whitespace
'a'           Name.Variable
')'           Punctuation
'\n                ' Text.Whitespace
'a'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n         ' Text.Whitespace
'('           Punctuation
'do'          Keyword
't-access-test1' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

";; now let's create a new function" Comment.Single
'\n'          Text.Whitespace

';; that calls my-test14 twice' Comment.Single
'\n'          Text.Whitespace

';; once normally' Comment.Single
'\n'          Text.Whitespace

";; then we directly set the closures 'a' binding" Comment.Single
'\n'          Text.Whitespace

';; then call again' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'dot-access-test2' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'x'           Name.Variable
':i32'        Keyword.Type
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'dot-access-test1' Name.Variable
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'dot-access-test1.a' Name.Variable
':i32'        Keyword.Type
' '           Text.Whitespace
'x'           Name.Variable
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'dot-access-test1' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'do'          Keyword
't-access-test2' Name.Variable
' '           Text.Whitespace
'9'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';; of course this works just as well for' Comment.Single
'\n'          Text.Whitespace

';; non-global closures' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'dot-access-test3' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Name.Variable
':i32'        Keyword.Type
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'f'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n                         ' Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'3'           Literal.Number.Integer
' '           Text.Whitespace
'a'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'f'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n         ' Text.Whitespace
'('           Punctuation
'do'          Keyword
't-access-test3' Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'dot-access-test4' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'f'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'dot-access-test3' Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'f.a'         Name.Variable
':i32'        Keyword.Type
' '           Text.Whitespace
'7'           Literal.Number.Integer
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'f'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'do'          Keyword
't-access-test4' Name.Variable
')'           Punctuation
'\n         ' Text.Whitespace
'21'          Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

';; and you can get and set closures also!' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'dot-access-test5' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'f'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'x'           Name.Variable
':i64'        Keyword.Type
')'           Punctuation
' '           Text.Whitespace
'x'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'z'           Name.Variable
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'f'           Name.Variable
' '           Text.Whitespace
'z'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'do'          Keyword
't-access-test5' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'dot-access-test6' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
't1'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'dot-access-test5' Name.Variable
')'           Punctuation
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
't2'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'dot-access-test5' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
';; identity of 5' Comment.Single
'\n                ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"%lld:%lld\\n"' Literal.String
' '           Text.Whitespace
'('           Punctuation
't1'          Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
't2'          Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
't1.f'        Name.Variable
':[i64,i64]*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'x'           Name.Variable
':i64'        Keyword.Type
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'x'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
';; square of 5' Comment.Single
'\n                ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"%lld:%lld\\n"' Literal.String
' '           Text.Whitespace
'('           Punctuation
't1'          Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
't2'          Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
';; cube of 5' Comment.Single
'\n                ' Text.Whitespace
'('           Punctuation
't2.f'        Name.Variable
':[i64,i64]*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'y'           Name.Variable
':i64'        Keyword.Type
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'y'           Name.Variable
' '           Text.Whitespace
'y'           Name.Variable
' '           Text.Whitespace
'y'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"%lld:%lld\\n"' Literal.String
' '           Text.Whitespace
'('           Punctuation
't1'          Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
't2'          Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'void'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'do'          Keyword
't-access-test6' Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
';; 5:5 > 25:5 > 25:125' Comment.Single
'\n\n'        Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; named types' Comment.Single
'\n\n'        Text.Whitespace

';; it can sometimes be helpful to allocate' Comment.Single
'\n'          Text.Whitespace

';; a predefined tuple type on the stack' Comment.Single
'\n'          Text.Whitespace

';; you can do this using allocate' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'bind-type'   Keyword
' '           Text.Whitespace
'vec3'        Name.Function
' '           Text.Whitespace
'<double,double,double>' Keyword.Type
')'           Punctuation
'\n\n'        Text.Whitespace

';; String printing!' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'vec3_print'  Name.Function
':[void,vec3*]*' Keyword.Type
'\n  '        Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'x'           Name.Variable
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"<%d,%d,%d>"' Literal.String
' '           Text.Whitespace
'('           Punctuation
'tref'        Name.Function
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'tref'        Name.Function
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'tref'        Name.Function
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'void'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-poly'   Keyword
' '           Text.Whitespace
'print'       Name.Function
' '           Text.Whitespace
'vec3_print'  Name.Variable
')'           Punctuation
'\n\n'        Text.Whitespace

';; note that point is deallocated at the' Comment.Single
'\n'          Text.Whitespace

';; end of the function call.  You can' Comment.Single
'\n'          Text.Whitespace

';; stack allocate (stack-alloc)' Comment.Single
'\n'          Text.Whitespace

';; any valid type  (i64 for example)' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'salloc-test' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'point'       Name.Variable
':vec3*'      Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'stack-alloc' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'tset!'       Name.Function
' '           Text.Whitespace
'point'       Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
'0.0'         Literal.Number.Float
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'tset!'       Name.Function
' '           Text.Whitespace
'point'       Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
' '           Text.Whitespace
'-1.0'        Literal.Number.Float
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'tset!'       Name.Function
' '           Text.Whitespace
'point'       Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
' '           Text.Whitespace
'1.0'         Literal.Number.Float
')'           Punctuation
'\n                ' Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'salloc-test' Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
';; 1'        Comment.Single
'\n\n'        Text.Whitespace

';; all named types have 2 default constructors' Comment.Single
'\n'          Text.Whitespace

';; name (zone alloation) + name_h (heap allocation)' Comment.Single
'\n'          Text.Whitespace

';; and a default print poly' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'data-constructor-test' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'v1'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'vec3'        Name.Variable
' '           Text.Whitespace
'1.0'         Literal.Number.Float
' '           Text.Whitespace
'2.0'         Literal.Number.Float
' '           Text.Whitespace
'3.0'         Literal.Number.Float
')'           Punctuation
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'v2'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'vec3_h'      Name.Variable
' '           Text.Whitespace
'4.0'         Literal.Number.Float
' '           Text.Whitespace
'5.0'         Literal.Number.Float
' '           Text.Whitespace
'6.0'         Literal.Number.Float
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'println'     Name.Function
' '           Text.Whitespace
'v1'          Name.Variable
' '           Text.Whitespace
'v2'          Name.Variable
')'           Punctuation
'\n                ' Text.Whitespace
';; halloced vec3 needs freeing' Comment.Single
'\n                ' Text.Whitespace
'('           Punctuation
'free'        Name.Function
' '           Text.Whitespace
'v2'          Name.Variable
')'           Punctuation
'\n                ' Text.Whitespace
'void'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'data-constructor-test' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; aref-ptr and tref-ptr' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n\n'        Text.Whitespace

';; aref-ptr and tref-ptr return a pointer to an element' Comment.Single
'\n'          Text.Whitespace

';; just as aref and tref return elements aref-ptr and' Comment.Single
'\n'          Text.Whitespace

';; tref-ptr return a pointer to those elements.' Comment.Single
'\n\n'        Text.Whitespace

';; This allows you to do things like create an array' Comment.Single
'\n'          Text.Whitespace

';; with an offset' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'aref-ptr-test' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'arr'         Name.Variable
':|32,i64|*'  Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'arroff'      Name.Variable
' '           Text.Whitespace
'('           Punctuation
'aref-ptr'    Name.Function
' '           Text.Whitespace
'arr'         Name.Variable
' '           Text.Whitespace
'16'          Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'k'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
';; load arr' Comment.Single
'\n                ' Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'32'          Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'aset!'       Name.Function
' '           Text.Whitespace
'arr'         Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'k'           Name.Variable
' '           Text.Whitespace
'16'          Literal.Number.Integer
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"index: %lld\\tarr: %lld\\tarroff: %lld\\n"' Literal.String
'\n                          ' Text.Whitespace
'k'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'arr'         Name.Variable
' '           Text.Whitespace
'k'           Name.Variable
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'pref'        Name.Function
' '           Text.Whitespace
'arroff'      Name.Variable
' '           Text.Whitespace
'k'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'aref-ptr-test' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; arrays'   Comment.Single
'\n'          Text.Whitespace

';; Extempore lang supports arrays as for first class' Comment.Single
'\n'          Text.Whitespace

';; aggregate types (in other words as distinct from' Comment.Single
'\n'          Text.Whitespace

';; a pointer).' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; an array is made up of a size and a type' Comment.Single
'\n'          Text.Whitespace

';; |32,i64| is an array of 32 elements of type i64' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-type'   Keyword
' '           Text.Whitespace
'tuple-with-array' Name.Function
' '           Text.Whitespace
'<double,|32,|4,i32||,float>' Keyword.Type
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'array-test5' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'tup'         Name.Variable
':tuple-with-array*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'stack-alloc' Name.Function
')'           Punctuation
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
't2'          Name.Variable
':|32,i64|*'  Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'stack-alloc' Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'aset!'       Name.Function
' '           Text.Whitespace
't2'          Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
'9'           Literal.Number.Integer
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'tset!'       Name.Function
' '           Text.Whitespace
'tup'         Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
' '           Text.Whitespace
'5.5'         Literal.Number.Float
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'aset!'       Name.Function
' '           Text.Whitespace
'('           Punctuation
'aref-ptr'    Name.Function
' '           Text.Whitespace
'('           Punctuation
'tref-ptr'    Name.Function
' '           Text.Whitespace
'tup'         Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'aset!'       Name.Function
' '           Text.Whitespace
'('           Punctuation
'aref-ptr'    Name.Function
' '           Text.Whitespace
'('           Punctuation
'tref-ptr'    Name.Function
' '           Text.Whitespace
'tup'         Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'aset!'       Name.Function
' '           Text.Whitespace
'('           Punctuation
'aref-ptr'    Name.Function
' '           Text.Whitespace
'('           Punctuation
'tref-ptr'    Name.Function
' '           Text.Whitespace
'tup'         Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'2'           Literal.Number.Integer
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"val: %lld %lld %f\\n"' Literal.String
'\n                        ' Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'aref-ptr'    Name.Function
' '           Text.Whitespace
'('           Punctuation
'tref-ptr'    Name.Function
' '           Text.Whitespace
'tup'         Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
'\n                        ' Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
't2'          Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'tref'        Name.Function
' '           Text.Whitespace
'tup'         Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'aref-ptr'    Name.Function
' '           Text.Whitespace
'('           Punctuation
'tref-ptr'    Name.Function
' '           Text.Whitespace
'tup'         Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'array-test5' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
';; val: 1 9 5.5' Comment.Single
'\n\n'        Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; Global Variables' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; You can allocate global variables using bind-val' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-val'    Keyword
' '           Text.Whitespace
'g_var_a'     Name.Function
' '           Text.Whitespace
'i32'         Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

';; increment g_var_a by inc' Comment.Single
'\n'          Text.Whitespace

';; and return new value of g_var_a' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'global_var_test1' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'incr'        Name.Variable
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'set!'        Keyword
' '           Text.Whitespace
'g_var_a'     Name.Variable
' '           Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'g_var_a'     Name.Variable
' '           Text.Whitespace
'incr'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'g_var_a'     Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'global_var_test1' Name.Variable
' '           Text.Whitespace
'3'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'8'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
';; 8'        Comment.Single
'\n\n'        Text.Whitespace

';; you can bind any primitive type' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'bind-val'    Keyword
' '           Text.Whitespace
'g_var_b'     Name.Function
' '           Text.Whitespace
'double'      Name.Variable
' '           Text.Whitespace
'5.5'         Literal.Number.Float
')'           Punctuation
'\n'          Text.Whitespace

'('           Punctuation
'bind-val'    Keyword
' '           Text.Whitespace
'g_var_c'     Name.Function
' '           Text.Whitespace
'i1'          Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'global_var_test1b' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'g_var_b'     Name.Variable
' '           Text.Whitespace
'('           Punctuation
'if'          Keyword
' '           Text.Whitespace
'g_var_c'     Name.Variable
' '           Text.Whitespace
'1.0'         Literal.Number.Float
' '           Text.Whitespace
'4.0'         Literal.Number.Float
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'global_var_test1b' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'22.0'        Literal.Number.Float
')'           Punctuation
'\n\n'        Text.Whitespace

';; global strings' Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-val'    Keyword
' '           Text.Whitespace
'g_cstring'   Name.Function
' '           Text.Whitespace
'i8*'         Keyword.Type
' '           Text.Whitespace
'"Jiblet."'   Literal.String
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'test_g_cstring' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'7'           Literal.Number.Integer
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"g_cstring[%lld] = %c\\n"' Literal.String
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'pref'        Name.Function
' '           Text.Whitespace
'g_cstring'   Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"\\nSpells... %s\\n"' Literal.String
' '           Text.Whitespace
'g_cstring'   Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'test_g_cstring' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'test_g_cstring1' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'test_cstring' Name.Variable
' '           Text.Whitespace
'"Niblot."'   Literal.String
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'total'       Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'7'           Literal.Number.Integer
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'c1'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'pref'        Name.Function
' '           Text.Whitespace
'g_cstring'   Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n                        ' Text.Whitespace
'('           Punctuation
'c2'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'pref'        Name.Function
' '           Text.Whitespace
'test_cstring' Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"checking %c against %c\\n"' Literal.String
' '           Text.Whitespace
'c1'          Name.Variable
' '           Text.Whitespace
'c2'          Name.Variable
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'='           Name.Function
' '           Text.Whitespace
'c1'          Name.Variable
' '           Text.Whitespace
'c2'          Name.Variable
')'           Punctuation
'\n                        ' Text.Whitespace
'('           Punctuation
'set!'        Keyword
' '           Text.Whitespace
'total'       Name.Variable
' '           Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'total'       Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'total'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'test_g_cstring1' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
'\n\n\n\n\n\n' Text.Whitespace

';; for tuples, arrays and vectors, bind-val only takes *two*' Comment.Single
'\n'          Text.Whitespace

';; arguments. The tuple/array/vector will be initialised to zero.' Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-val'    Keyword
' '           Text.Whitespace
'g_tuple1'    Name.Function
' '           Text.Whitespace
'<i64,i64>'   Keyword.Type
')'           Punctuation
'\n'          Text.Whitespace

'('           Punctuation
'bind-val'    Keyword
' '           Text.Whitespace
'g_tuple2'    Name.Function
' '           Text.Whitespace
'<double,double>' Keyword.Type
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'test_g_tuple' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'tfill!'      Name.Function
' '           Text.Whitespace
'g_tuple1'    Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
' '           Text.Whitespace
'4'           Literal.Number.Integer
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'tfill!'      Name.Function
' '           Text.Whitespace
'g_tuple2'    Name.Variable
' '           Text.Whitespace
'4.0'         Literal.Number.Float
' '           Text.Whitespace
'1.0'         Literal.Number.Float
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'and'         Keyword
' '           Text.Whitespace
'('           Punctuation
'='           Name.Function
' '           Text.Whitespace
'('           Punctuation
'tref'        Name.Function
' '           Text.Whitespace
'g_tuple1'    Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'dtoi64'      Name.Variable
' '           Text.Whitespace
'('           Punctuation
'tref'        Name.Function
' '           Text.Whitespace
'g_tuple2'    Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                   ' Text.Whitespace
'('           Punctuation
'='           Name.Function
' '           Text.Whitespace
'('           Punctuation
'dtoi64'      Name.Variable
' '           Text.Whitespace
'('           Punctuation
'tref'        Name.Function
' '           Text.Whitespace
'g_tuple2'    Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'tref'        Name.Function
' '           Text.Whitespace
'g_tuple1'    Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'test_g_tuple' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

';; same thing with arrays' Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-val'    Keyword
' '           Text.Whitespace
'g_array1'    Name.Function
' '           Text.Whitespace
'|10,double|' Keyword.Type
')'           Punctuation
'\n'          Text.Whitespace

'('           Punctuation
'bind-val'    Keyword
' '           Text.Whitespace
'g_array2'    Name.Function
' '           Text.Whitespace
'|10,i64|'    Keyword.Type
')'           Punctuation
'\n\n'        Text.Whitespace

';; if we just loop over and print the values in each array' Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'test_g_array11' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'10'          Literal.Number.Integer
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"garray_1[%lld] = %f   garray_2[%lld] = %lld\\n"' Literal.String
'\n                          ' Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'g_array1'    Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'g_array2'    Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'test_g_array11' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

';; but if we loop over and set some values into the arrays' Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'test_g_array2' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'10'          Literal.Number.Integer
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'aset!'       Name.Function
' '           Text.Whitespace
'g_array1'    Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'i64tod'      Name.Function
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'aset!'       Name.Function
' '           Text.Whitespace
'g_array2'    Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"garray_1[%lld] = %f   garray_2[%lld] = %lld\\n"' Literal.String
'\n                          ' Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'g_array1'    Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'g_array2'    Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'='           Name.Function
' '           Text.Whitespace
'('           Punctuation
'dtoi64'      Name.Variable
' '           Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'g_array1'    Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                   ' Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'g_array2'    Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'test_g_array2' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

";; just to test, let's try a large array" Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-val'    Keyword
' '           Text.Whitespace
'g_array3'    Name.Function
' '           Text.Whitespace
'|100000000,i64|' Keyword.Type
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'test_g_array3' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'100000000'   Literal.Number.Integer
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'aset!'       Name.Function
' '           Text.Whitespace
'g_array3'    Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'='           Name.Function
' '           Text.Whitespace
'('           Punctuation
'pref'        Name.Function
' '           Text.Whitespace
'g_array3'    Name.Variable
' '           Text.Whitespace
'87654321'    Literal.Number.Integer
')'           Punctuation
'\n                   ' Text.Whitespace
'87654321'    Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'test_g_array3' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

";; if you want to bind a global pointer, then the third 'value'" Comment.Single
'\n'          Text.Whitespace

';; argument is the size of the memory to allocate (in elements, not in bytes)' Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-val'    Keyword
' '           Text.Whitespace
'g_ptr0'      Name.Function
' '           Text.Whitespace
'double*'     Keyword.Type
' '           Text.Whitespace
'10'          Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'test_g_ptr0' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'total'       Name.Variable
' '           Text.Whitespace
'0.0'         Literal.Number.Float
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'10'          Literal.Number.Integer
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'pset!'       Name.Function
' '           Text.Whitespace
'g_ptr0'      Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'i64tod'      Name.Function
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'set!'        Keyword
' '           Text.Whitespace
'total'       Name.Variable
' '           Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'total'       Name.Variable
' '           Text.Whitespace
'('           Punctuation
'pref'        Name.Function
' '           Text.Whitespace
'g_ptr0'      Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'total'       Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'test_g_ptr0' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'45.0'        Literal.Number.Float
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-val'    Keyword
' '           Text.Whitespace
'g_ptr1'      Name.Function
' '           Text.Whitespace
'|4,i32|*'    Keyword.Type
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

'('           Punctuation
'bind-val'    Keyword
' '           Text.Whitespace
'g_ptr2'      Name.Function
' '           Text.Whitespace
'<i64,double>*' Keyword.Type
' '           Text.Whitespace
'4'           Literal.Number.Integer
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'test_g_ptr1' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'afill!'      Name.Function
' '           Text.Whitespace
'g_ptr1'      Name.Variable
' '           Text.Whitespace
'11'          Literal.Number.Integer
' '           Text.Whitespace
'66'          Literal.Number.Integer
' '           Text.Whitespace
'35'          Literal.Number.Integer
' '           Text.Whitespace
'81'          Literal.Number.Integer
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'tset!'       Name.Function
' '           Text.Whitespace
'g_ptr2'      Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
' '           Text.Whitespace
'35.0'        Literal.Number.Float
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"%f :: %d\\n"' Literal.String
' '           Text.Whitespace
'('           Punctuation
'tref'        Name.Function
' '           Text.Whitespace
'g_ptr2'      Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'g_ptr1'      Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'g_ptr1'      Name.Variable
' '           Text.Whitespace
'3'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'test_g_ptr1' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'81'          Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
';; should also print 35.000000 :: 35' Comment.Single
'\n\n'        Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; Callbacks' Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'callback-test' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'time'        Name.Variable
':i64'        Keyword.Type
' '           Text.Whitespace
'count'       Name.Variable
':i64'        Keyword.Type
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"time: %lld:%lld\\n"' Literal.String
' '           Text.Whitespace
'time'        Name.Variable
' '           Text.Whitespace
'count'       Name.Variable
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'callback'    Name.Function
' '           Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'time'        Name.Variable
' '           Text.Whitespace
'1000'        Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'callback-test' Name.Variable
' '           Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'time'        Name.Variable
' '           Text.Whitespace
'22050'       Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'count'       Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'callback'    Name.Function
'-test'       Name.Variable
' '           Text.Whitespace
'('           Punctuation
'now'         Name.Function
')'           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';; compiling this will stop the callbacks' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; of course we need to keep the type' Comment.Single
'\n'          Text.Whitespace

';; signature the same [void,i64,i64]*' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'callback-test' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'time'        Name.Variable
':i64'        Keyword.Type
' '           Text.Whitespace
'count'       Name.Variable
':i64'        Keyword.Type
')'           Punctuation
'\n              ' Text.Whitespace
'#t'          Name.Constant
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'callback'    Name.Function
'-test'       Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; some memzone tests' Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'memzone-test1' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'b'           Name.Variable
':|5,double|*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'zalloc'      Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'aset!'       Name.Function
' '           Text.Whitespace
'b'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
'\n                       ' Text.Whitespace
'('           Punctuation
'memzone'     Keyword
' '           Text.Whitespace
'1024'        Literal.Number.Integer
'\n                         ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'a'           Name.Variable
':|10,double|*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'zalloc'      Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                           ' Text.Whitespace
'('           Punctuation
'aset!'       Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
'3.5'         Literal.Number.Float
')'           Punctuation
'\n                           ' Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'c'           Name.Variable
':|9,i32|*'   Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'zalloc'      Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'aset!'       Name.Function
' '           Text.Whitespace
'c'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
'99'          Literal.Number.Integer
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'b'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'memzone-test1' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'3.5'         Literal.Number.Float
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'memzone-test2' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'memzone'     Keyword
' '           Text.Whitespace
'1024'        Literal.Number.Integer
'\n                ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'k'           Name.Variable
':|15,double|*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'zalloc'      Name.Function
')'           Punctuation
')'           Punctuation
'\n                      ' Text.Whitespace
'('           Punctuation
'f'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'fa'          Name.Variable
':|15,double|*' Keyword.Type
')'           Punctuation
'\n                           ' Text.Whitespace
'('           Punctuation
'memzone'     Keyword
' '           Text.Whitespace
'1024'        Literal.Number.Integer
'\n                             ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'a'           Name.Variable
':|10,double|*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'zalloc'      Name.Function
')'           Punctuation
')'           Punctuation
'\n                                   ' Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                               ' Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'10'          Literal.Number.Integer
')'           Punctuation
'\n                                 ' Text.Whitespace
'('           Punctuation
'aset!'       Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'fa'          Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'random'      Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                               ' Text.Whitespace
'a'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'f'           Name.Variable
' '           Text.Whitespace
'k'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'memzone-test2' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'memzone-test3' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'v'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'memzone'     Keyword
'-test2'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n                    ' Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'10'          Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"%lld:%f\\n"' Literal.String
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'v'           Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'memzone-test3' Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
";; should print all 0.0's" Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'memzone-test4' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'memzone'     Keyword
' '           Text.Whitespace
'1024'        Literal.Number.Integer
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'44100'       Literal.Number.Integer
' '           Text.Whitespace
'10'          Literal.Number.Integer
')'           Punctuation
'\n                       ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'a'           Name.Variable
':|5,double|*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                         ' Text.Whitespace
'('           Punctuation
'aset!'       Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
'5.5'         Literal.Number.Float
')'           Punctuation
'\n                         ' Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'memzone-test4' Name.Variable
')'           Punctuation
' '           Text.Whitespace
'5.50000'     Literal.Number.Float
')'           Punctuation
'\n\n'        Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; Large allocation of memory on BUILD (i.e. when the closure is created)' Comment.Single
'\n'          Text.Whitespace

';; requires an optional argument (i.e. an amount of memory to allocate' Comment.Single
'\n'          Text.Whitespace

';; specifically for closure creation)' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

";; This memory is automatically free'd whenever you recompile the closure" Comment.Single
'\n'          Text.Whitespace

';; (it will be destroyed and replaced by a new allocation of the' Comment.Single
'\n'          Text.Whitespace

';;  same amount or whatever new amount you have allocated for closure' Comment.Single
'\n'          Text.Whitespace

';;  compilation)' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'closure-zalloc-test' Name.Function
' '           Text.Whitespace
'1000000'     Literal.Number.Integer
'\n            ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'k'           Name.Variable
':|100000,double|*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'zalloc'      Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'aset!'       Name.Function
' '           Text.Whitespace
'k'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
'1.0'         Literal.Number.Float
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'aref'        Name.Function
' '           Text.Whitespace
'k'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'closure-zalloc-test' Name.Variable
' '           Text.Whitespace
'1000000'     Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; Ad-Hoc Polymorphism' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n\n'        Text.Whitespace

';; extempore supports ad-hoc polymorphism' Comment.Single
'\n'          Text.Whitespace

';; at some stage in the future this will' Comment.Single
'\n'          Text.Whitespace

';; be implicit - but for the moment' Comment.Single
'\n'          Text.Whitespace

';; it is explicitly defined using bind-poly' Comment.Single
'\n\n'        Text.Whitespace

';; ad-hoc polymorphism allows you to provide' Comment.Single
'\n'          Text.Whitespace

';; different specialisations depending on' Comment.Single
'\n'          Text.Whitespace

";; type.  In other words, a single 'name'" Comment.Single
'\n'          Text.Whitespace

';; can be bound to multiple function' Comment.Single
'\n'          Text.Whitespace

';; implementations each with a uniqute' Comment.Single
'\n'          Text.Whitespace

';; type.'    Comment.Single
'\n\n\n'      Text.Whitespace

';; poly variables can be for functions of' Comment.Single
'\n'          Text.Whitespace

';; mixed argument lengths' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; so for example:' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'poly-test4'  Name.Function
'\n  '        Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Name.Variable
':i8*'        Keyword.Type
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"%s\\n"'     Literal.String
' '           Text.Whitespace
'a'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'poly-test5'  Name.Function
'\n  '        Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Name.Variable
':i8*'        Keyword.Type
' '           Text.Whitespace
'b'           Name.Variable
':i8*'        Keyword.Type
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"%s %s\\n"'  Literal.String
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'b'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'poly-test6'  Name.Function
'\n  '        Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Name.Variable
':i8*'        Keyword.Type
' '           Text.Whitespace
'b'           Name.Variable
':i8*'        Keyword.Type
' '           Text.Whitespace
'c'           Name.Variable
':i8*'        Keyword.Type
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"%s %s %s\\n"' Literal.String
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'b'           Name.Variable
' '           Text.Whitespace
'c'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

";; bind these three functions to poly 'print'" Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'bind-poly'   Keyword
' '           Text.Whitespace
'testprint'   Name.Function
' '           Text.Whitespace
'poly-test4'  Name.Variable
')'           Punctuation
'\n'          Text.Whitespace

'('           Punctuation
'bind-poly'   Keyword
' '           Text.Whitespace
'testprint'   Name.Function
' '           Text.Whitespace
'poly-test5'  Name.Variable
')'           Punctuation
'\n'          Text.Whitespace

'('           Punctuation
'bind-poly'   Keyword
' '           Text.Whitespace
'testprint'   Name.Function
' '           Text.Whitespace
'poly-test6'  Name.Variable
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'poly-test7'  Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'testprint'   Name.Variable
' '           Text.Whitespace
'"extempore\'s"' Literal.String
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'testprint'   Name.Variable
' '           Text.Whitespace
'"extempore\'s"' Literal.String
' '           Text.Whitespace
'"polymorphism"' Literal.String
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'testprint'   Name.Variable
' '           Text.Whitespace
'"extempore\'s"' Literal.String
' '           Text.Whitespace
'"polymorphism"' Literal.String
' '           Text.Whitespace
'"rocks"'     Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'poly-test7'  Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';; polys can Also specialize' Comment.Single
'\n'          Text.Whitespace

';; on the return type' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'poly-test8'  Name.Function
'\n  '        Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Name.Variable
':double'     Keyword.Type
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'a'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'poly-test9'  Name.Function
'\n  '        Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Name.Variable
':double'     Keyword.Type
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'dtoi64'      Name.Variable
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'a'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-poly'   Keyword
' '           Text.Whitespace
'sqrd'        Name.Function
' '           Text.Whitespace
'poly-test8'  Name.Variable
')'           Punctuation
'\n'          Text.Whitespace

'('           Punctuation
'bind-poly'   Keyword
' '           Text.Whitespace
'sqrd'        Name.Function
' '           Text.Whitespace
'poly-test9'  Name.Variable
')'           Punctuation
'\n\n'        Text.Whitespace

';; specialize on [i64,double]*' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'poly-test10' Name.Function
':[i64,double]*' Keyword.Type
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Name.Variable
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'1'           Literal.Number.Integer
' '           Text.Whitespace
'('           Punctuation
'sqrd'        Name.Variable
' '           Text.Whitespace
'a'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n         ' Text.Whitespace
'('           Punctuation
'poly-test10' Name.Variable
' '           Text.Whitespace
'5.0'         Literal.Number.Float
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';; specialize on [double,doube]*' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'poly-test11' Name.Function
':[double,double]*' Keyword.Type
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Name.Variable
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'1.0'         Literal.Number.Float
' '           Text.Whitespace
'('           Punctuation
'sqrd'        Name.Variable
' '           Text.Whitespace
'a'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'poly-test11' Name.Variable
' '           Text.Whitespace
'5.0'         Literal.Number.Float
')'           Punctuation
')'           Punctuation
'\n\n\n'      Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; a little test for zone cleanup' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'MyLittleCleanupTest' Name.Function
'\n  '        Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'tmp2'        Name.Variable
':i8*'        Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
' '           Text.Whitespace
'8'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text.Whitespace
'('           Punctuation
'cleanup'     Name.Variable
' '           Text.Whitespace
'('           Punctuation
'println'     Name.Function
' '           Text.Whitespace
'"Clean up before leaving zone!"' Literal.String
')'           Punctuation
')'           Punctuation
'\n      '    Text.Whitespace
'tmp2'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'cleanup-test' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'letz'        Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'tmp'         Name.Variable
':i8*'        Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
' '           Text.Whitespace
'8'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                     ' Text.Whitespace
'('           Punctuation
't2'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'MyLittleCleanupTest' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'begin'       Keyword
'\n                  ' Text.Whitespace
'('           Punctuation
'println'     Name.Function
' '           Text.Whitespace
'"In Zone ..."' Literal.String
')'           Punctuation
'\n                  ' Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'println'     Name.Function
' '           Text.Whitespace
'"Out of zone ..."' Literal.String
')'           Punctuation
'\n              ' Text.Whitespace
'void'        Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'cleanup-test' Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';; vector types' Comment.Single
'\n\n'        Text.Whitespace

';; (bind-func vector-test1' Comment.Single
'\n'          Text.Whitespace

';;   (lambda ()' Comment.Single
'\n'          Text.Whitespace

';;     (let ((v1:/4,float/* (alloc))' Comment.Single
'\n'          Text.Whitespace

';; \t  (v2:/4,float/* (alloc))' Comment.Single
'\n'          Text.Whitespace

';; \t  (v3:/4,float/* (alloc)))' Comment.Single
'\n'          Text.Whitespace

';;       (vfill! v1 4.0 3.0 2.0 1.0)' Comment.Single
'\n'          Text.Whitespace

';;       (vfill! v2 1.0 2.0 3.0 4.0)' Comment.Single
'\n'          Text.Whitespace

';;       (vfill! v3 5.0 5.0 5.0 5.0)' Comment.Single
'\n'          Text.Whitespace

';;       (let ((v4 (* v1 v2))' Comment.Single
'\n'          Text.Whitespace

";; \t    (v5 (> v3 v4))) ;; unforunately vector conditionals don't work!" Comment.Single
'\n'          Text.Whitespace

';; \t(printf "mul:%f:%f:%f:%f\\n" (ftod (vref v4 0)) (ftod (vref v4 1)) (ftod (vref v4 2)) (ftod (vref v4 3)))' Comment.Single
'\n'          Text.Whitespace

';; \t(printf "cmp:%d:%d:%d:%d\\n" (i1toi32 (vref v5 0)) (i1toi32 (vref v5 1)) (i1toi32 (vref v5 2)) (i1toi32 (vref v5 3)))' Comment.Single
'\n'          Text.Whitespace

';; \tvoid))))' Comment.Single
'\n\n'        Text.Whitespace

';; (test-xtfunc (vector-test1))' Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'vector-test2' Name.Function
'\n  '        Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'v1'          Name.Variable
':/4,float/*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
'\n\t  '      Text.Whitespace
'('           Punctuation
'v2'          Name.Variable
':/4,float/*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text.Whitespace
'('           Punctuation
'vfill!'      Name.Function
' '           Text.Whitespace
'v1'          Name.Variable
' '           Text.Whitespace
'1.0'         Literal.Number.Float
' '           Text.Whitespace
'2.0'         Literal.Number.Float
' '           Text.Whitespace
'4.0'         Literal.Number.Float
' '           Text.Whitespace
'8.0'         Literal.Number.Float
')'           Punctuation
'\n      '    Text.Whitespace
'('           Punctuation
'vfill!'      Name.Function
' '           Text.Whitespace
'v2'          Name.Variable
' '           Text.Whitespace
'2.0'         Literal.Number.Float
' '           Text.Whitespace
'2.5'         Literal.Number.Float
' '           Text.Whitespace
'2.25'        Literal.Number.Float
' '           Text.Whitespace
'2.125'       Literal.Number.Float
')'           Punctuation
'\n      '    Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'v1'          Name.Variable
' '           Text.Whitespace
'v2'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'vector-test3' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'a'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'vector-test2' Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"%f:%f:%f:%f\\n"' Literal.String
'\n                        ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'vref'        Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                        ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'vref'        Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                        ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'vref'        Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                        ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'vref'        Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'3'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'void'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'vector'      Name.Function
'-test3'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';; vectorised sine func' Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'vsinf4'      Name.Function
'\n  '        Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'p'           Name.Variable
':/4,float/*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
'\n        '  Text.Whitespace
'('           Punctuation
'b'           Name.Variable
':/4,float/*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
'\n        '  Text.Whitespace
'('           Punctuation
'c'           Name.Variable
':/4,float/*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
'\n        '  Text.Whitespace
'('           Punctuation
'f1'          Name.Variable
':/4,float/*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
'\n        '  Text.Whitespace
'('           Punctuation
'f2'          Name.Variable
':/4,float/*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
'\n        '  Text.Whitespace
'('           Punctuation
'i'           Name.Variable
':i32'        Keyword.Type
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n        '  Text.Whitespace
'('           Punctuation
'p_'          Name.Variable
' '           Text.Whitespace
'0.225'       Literal.Number.Float
')'           Punctuation
'\n        '  Text.Whitespace
'('           Punctuation
'b_'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'dtof'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'/'           Name.Function
' '           Text.Whitespace
'4.0'         Literal.Number.Float
' '           Text.Whitespace
'3.1415'      Literal.Number.Float
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n        '  Text.Whitespace
'('           Punctuation
'c_'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'dtof'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'/'           Name.Function
' '           Text.Whitespace
'-4.0'        Literal.Number.Float
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'3.1415'      Literal.Number.Float
' '           Text.Whitespace
'3.1415'      Literal.Number.Float
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'4'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'vset!'       Name.Function
' '           Text.Whitespace
'p'           Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'p_'          Name.Variable
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'vset!'       Name.Function
' '           Text.Whitespace
'b'           Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'b_'          Name.Variable
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'vset!'       Name.Function
' '           Text.Whitespace
'c'           Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'c_'          Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'x'           Name.Variable
':/4,float/'  Keyword.Type
')'           Punctuation
'\n      '    Text.Whitespace
';; no SIMD for abs yet!' Comment.Single
'\n      '    Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'4'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'vset!'       Name.Function
' '           Text.Whitespace
'f1'          Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'fabs'        Name.Variable
' '           Text.Whitespace
'('           Punctuation
'vref'        Name.Function
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'y'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'b'           Name.Variable
' '           Text.Whitespace
'x'           Name.Variable
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'c'           Name.Variable
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'f1'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n        '  Text.Whitespace
';; no SIMD for abs yet!' Comment.Single
'\n        '  Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'4'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'vset!'       Name.Function
' '           Text.Whitespace
'f2'          Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'fabs'        Name.Variable
' '           Text.Whitespace
'('           Punctuation
'vref'        Name.Function
' '           Text.Whitespace
'y'           Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n        '  Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'p'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'-'           Name.Function
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'y'           Name.Variable
' '           Text.Whitespace
'f2'          Name.Variable
')'           Punctuation
' '           Text.Whitespace
'y'           Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'y'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'vcosf4'      Name.Function
'\n  '        Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'p'           Name.Variable
':/4,float/*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
'\n\t'        Text.Whitespace
'('           Punctuation
'b'           Name.Variable
':/4,float/*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
'\n\t'        Text.Whitespace
'('           Punctuation
'c'           Name.Variable
':/4,float/*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
'\n\t'        Text.Whitespace
'('           Punctuation
'd'           Name.Variable
':/4,float/*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
'\n\t'        Text.Whitespace
'('           Punctuation
'f1'          Name.Variable
':/4,float/*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
'\n\t'        Text.Whitespace
'('           Punctuation
'f2'          Name.Variable
':/4,float/*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
'\n\t'        Text.Whitespace
'('           Punctuation
'i'           Name.Variable
':i32'        Keyword.Type
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
'\n\t'        Text.Whitespace
'('           Punctuation
'p_'          Name.Variable
' '           Text.Whitespace
'0.225'       Literal.Number.Float
')'           Punctuation
'\n\t'        Text.Whitespace
'('           Punctuation
'd_'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'dtof'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'/'           Name.Function
' '           Text.Whitespace
'3.1415'      Literal.Number.Float
' '           Text.Whitespace
'2.0'         Literal.Number.Float
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text.Whitespace
'('           Punctuation
'b_'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'dtof'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'/'           Name.Function
' '           Text.Whitespace
'4.0'         Literal.Number.Float
' '           Text.Whitespace
'3.1415'      Literal.Number.Float
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text.Whitespace
'('           Punctuation
'c_'          Name.Variable
' '           Text.Whitespace
'('           Punctuation
'dtof'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'/'           Name.Function
' '           Text.Whitespace
'-4.0'        Literal.Number.Float
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'3.1415'      Literal.Number.Float
' '           Text.Whitespace
'3.1415'      Literal.Number.Float
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'4'           Literal.Number.Integer
')'           Punctuation
'\n      '    Text.Whitespace
'('           Punctuation
'vset!'       Name.Function
' '           Text.Whitespace
'p'           Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'p_'          Name.Variable
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'vset!'       Name.Function
' '           Text.Whitespace
'b'           Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'b_'          Name.Variable
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'vset!'       Name.Function
' '           Text.Whitespace
'c'           Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'c_'          Name.Variable
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'vset!'       Name.Function
' '           Text.Whitespace
'd'           Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'd_'          Name.Variable
')'           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'x'           Name.Variable
':/4,float/'  Keyword.Type
')'           Punctuation
'\n      '    Text.Whitespace
';; offset x for cos' Comment.Single
'\n      '    Text.Whitespace
'('           Punctuation
'set!'        Keyword
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'd'           Name.Variable
')'           Punctuation
')'           Punctuation
'\n      '    Text.Whitespace
';; no SIMD for abs yet!' Comment.Single
'\n      '    Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'4'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'vset!'       Name.Function
' '           Text.Whitespace
'f1'          Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'fabs'        Name.Variable
' '           Text.Whitespace
'('           Punctuation
'vref'        Name.Function
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n      '    Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'y'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'b'           Name.Variable
' '           Text.Whitespace
'x'           Name.Variable
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'c'           Name.Variable
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'f1'          Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text.Whitespace
';; no SIMD for abs yet!' Comment.Single
'\n\t'        Text.Whitespace
'('           Punctuation
'dotimes'     Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
' '           Text.Whitespace
'4'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'vset!'       Name.Function
' '           Text.Whitespace
'f2'          Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'fabs'        Name.Variable
' '           Text.Whitespace
'('           Punctuation
'vref'        Name.Function
' '           Text.Whitespace
'y'           Name.Variable
' '           Text.Whitespace
'i'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\t'        Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'p'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'-'           Name.Function
' '           Text.Whitespace
'('           Punctuation
'*'           Name.Function
' '           Text.Whitespace
'y'           Name.Variable
' '           Text.Whitespace
'f2'          Name.Variable
')'           Punctuation
' '           Text.Whitespace
'y'           Name.Variable
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'y'           Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n\n'      Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'vector-test4' Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'a'           Name.Variable
':/4,float/*' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'alloc'       Name.Function
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'vfill!'      Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'0.1'         Literal.Number.Float
' '           Text.Whitespace
'0.2'         Literal.Number.Float
' '           Text.Whitespace
'0.3'         Literal.Number.Float
' '           Text.Whitespace
'0.4'         Literal.Number.Float
')'           Punctuation
'\n                ' Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'b'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'vsinf4'      Name.Variable
' '           Text.Whitespace
'('           Punctuation
'pref'        Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                      ' Text.Whitespace
'('           Punctuation
'c'           Name.Variable
' '           Text.Whitespace
'('           Punctuation
'vcosf4'      Name.Variable
' '           Text.Whitespace
'('           Punctuation
'pref'        Name.Function
' '           Text.Whitespace
'a'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"precision inaccuracy is expected:\\n"' Literal.String
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'" sinf:\\t%f,%f,%f,%f\\n"' Literal.String
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'sin'         Name.Function
' '           Text.Whitespace
'0.1'         Literal.Number.Float
':f'          Keyword.Type
')'           Punctuation
')'           Punctuation
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'sin'         Name.Function
' '           Text.Whitespace
'0.2'         Literal.Number.Float
':f'          Keyword.Type
')'           Punctuation
')'           Punctuation
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'sin'         Name.Function
' '           Text.Whitespace
'0.3'         Literal.Number.Float
':f'          Keyword.Type
')'           Punctuation
')'           Punctuation
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'sin'         Name.Function
' '           Text.Whitespace
'0.4'         Literal.Number.Float
':f'          Keyword.Type
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"vsinf:\\t%f,%f,%f,%f\\n"' Literal.String
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'vref'        Name.Function
' '           Text.Whitespace
'b'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'vref'        Name.Function
' '           Text.Whitespace
'b'           Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'vref'        Name.Function
' '           Text.Whitespace
'b'           Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'vref'        Name.Function
' '           Text.Whitespace
'b'           Name.Variable
' '           Text.Whitespace
'3'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'" cosf:\\t%f,%f,%f,%f\\n"' Literal.String
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'cos'         Name.Function
' '           Text.Whitespace
'0.1'         Literal.Number.Float
':f'          Keyword.Type
')'           Punctuation
')'           Punctuation
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'cos'         Name.Function
' '           Text.Whitespace
'0.2'         Literal.Number.Float
':f'          Keyword.Type
')'           Punctuation
')'           Punctuation
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'cos'         Name.Function
' '           Text.Whitespace
'0.3'         Literal.Number.Float
':f'          Keyword.Type
')'           Punctuation
')'           Punctuation
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'cos'         Name.Function
' '           Text.Whitespace
'0.4'         Literal.Number.Float
':f'          Keyword.Type
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                  ' Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"vcosf:\\t%f,%f,%f,%f\\n"' Literal.String
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'vref'        Name.Function
' '           Text.Whitespace
'c'           Name.Variable
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'vref'        Name.Function
' '           Text.Whitespace
'c'           Name.Variable
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'vref'        Name.Function
' '           Text.Whitespace
'c'           Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n                          ' Text.Whitespace
'('           Punctuation
'ftod'        Name.Function
' '           Text.Whitespace
'('           Punctuation
'vref'        Name.Function
' '           Text.Whitespace
'c'           Name.Variable
' '           Text.Whitespace
'3'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n                  ' Text.Whitespace
'void'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n         ' Text.Whitespace
'('           Punctuation
'vector'      Name.Function
'-test4'      Name.Variable
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';; test the call-as-xtlang macro' Comment.Single
'\n\n'        Text.Whitespace

";; make sure it'll handle multiple body forms" Comment.Single
'\n'          Text.Whitespace

'('           Punctuation
'xtmtest-result' Name.Variable
' '           Text.Whitespace
'('           Punctuation
'call-as-xtlang' Name.Variable
' '           Text.Whitespace
'('           Punctuation
'println'     Name.Function
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'println'     Name.Function
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
'\n                ' Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
'\n\n\n'      Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';; test globalvar as closure' Comment.Single
'\n'          Text.Whitespace

';;'          Comment.Single
'\n'          Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'testinc'     Name.Function
'\n  '        Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'incr'        Name.Variable
':i64'        Keyword.Type
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'x'           Name.Variable
':i64'        Keyword.Type
')'           Punctuation
'\n      '    Text.Whitespace
'('           Punctuation
'+'           Name.Function
' '           Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
'incr'        Name.Variable
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-val'    Keyword
' '           Text.Whitespace
'GlobalInc'   Name.Function
' '           Text.Whitespace
'[i64,i64]*'  Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'testinc'     Name.Variable
' '           Text.Whitespace
'2'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'xtmtest'     Name.Variable
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'ginc'        Name.Function
'\n            ' Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n              ' Text.Whitespace
'('           Punctuation
'GlobalInc'   Name.Variable
' '           Text.Whitespace
'5'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n         ' Text.Whitespace
'('           Punctuation
'ginc'        Name.Variable
')'           Punctuation
' '           Text.Whitespace
'7'           Literal.Number.Integer
')'           Punctuation
'\n                       \n\n' Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

';; syntax highlighting tests ;;' Comment.Single
'\n'          Text.Whitespace

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' Comment.Single
'\n'          Text.Whitespace

";; these don't return any values, they're visual tests---do they look" Comment.Single
'\n'          Text.Whitespace

';; right?'   Comment.Single
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'hl_test1a'   Name.Function
':[i32,double,|4,i32|**]*' Keyword.Type
' '           Text.Whitespace
'4000'        Literal.Number.Integer
'\n  '        Text.Whitespace
'"docstring"' Literal.String
'\n  '        Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Name.Variable
' '           Text.Whitespace
'b'           Name.Variable
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"done\\n"'   Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-func'   Keyword
' '           Text.Whitespace
'hl_test1b'   Name.Function
':[i32]*'     Keyword.Type
'\n  '        Text.Whitespace
'('           Punctuation
'lambda'      Keyword
' '           Text.Whitespace
'('           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'let'         Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'i'           Name.Variable
':i32'        Keyword.Type
' '           Text.Whitespace
'6'           Literal.Number.Integer
')'           Punctuation
')'           Punctuation
'\n      '    Text.Whitespace
'('           Punctuation
'printf'      Name.Function
' '           Text.Whitespace
'"done\\n"'   Literal.String
')'           Punctuation
')'           Punctuation
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-val'    Keyword
' '           Text.Whitespace
'hl_test2'    Name.Function
' '           Text.Whitespace
'<i32,i32>'   Keyword.Type
')'           Punctuation
'\n'          Text.Whitespace

'('           Punctuation
'bind-val'    Keyword
' '           Text.Whitespace
'hl_test3'    Name.Function
' '           Text.Whitespace
'|4,i8|'      Keyword.Type
')'           Punctuation
'\n'          Text.Whitespace

'('           Punctuation
'bind-val'    Keyword
' '           Text.Whitespace
'hl_test4'    Name.Function
' '           Text.Whitespace
'double*'     Keyword.Type
' '           Text.Whitespace
'10'          Literal.Number.Integer
')'           Punctuation
'\n'          Text.Whitespace

'('           Punctuation
'bind-val'    Keyword
' '           Text.Whitespace
'hl_test5'    Name.Function
' '           Text.Whitespace
'i8*'         Keyword.Type
' '           Text.Whitespace
'"teststr"'   Literal.String
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'bind-type'   Keyword
' '           Text.Whitespace
'hl_test_type' Name.Function
' '           Text.Whitespace
'<i64>'       Keyword.Type
')'           Punctuation
'\n\n'        Text.Whitespace

'('           Punctuation
'println'     Name.Function
' '           Text.Whitespace
"'"           Operator
'('           Punctuation
'bind-lib'    Keyword
' '           Text.Whitespace
'testlib'     Name.Function
' '           Text.Whitespace
'testfn'      Name.Variable
' '           Text.Whitespace
'[i32,i32]*'  Keyword.Type
')'           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

';; (and 4 5)' Comment.Single
'\n'          Text.Whitespace

';; (bind-val hl_test4 double* 10)' Comment.Single
'\n'          Text.Whitespace

';; (bind-type hl_test_type <i64> "docstring")' Comment.Single
'\n'          Text.Whitespace

';; (bind-lib testlib testfn [i32,i32]*)' Comment.Single
'\n'          Text.Whitespace
