';;; 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 *' 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 ':*' 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 [*]*' Comment.Single '\n' Text.Whitespace ';; i.e. a closure that takes no arguments' Comment.Single '\n' Text.Whitespace ';; and returns the tuple *' 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 ':*' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'alloc' Name.Function ')' Punctuation ')' Punctuation ' ' Text.Whitespace '; returns pointer to type ' 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 ':*,double>*' Keyword.Type ' ' Text.Whitespace '(' Punctuation 'alloc' Name.Function ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 't2' Name.Variable ':*' 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 '' 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 '' 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 '' Keyword.Type ')' Punctuation '\n' Text.Whitespace '(' Punctuation 'bind-val' Keyword ' ' Text.Whitespace 'g_tuple2' Name.Function ' ' Text.Whitespace '' 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 '*' 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 '' 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 '' 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 "docstring")' Comment.Single '\n' Text.Whitespace ';; (bind-lib testlib testfn [i32,i32]*)' Comment.Single '\n' Text.Whitespace