--- source: src/main.rs expression: parsed input_file: test-data/lua5.2-tests/sort.lua --- [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing (parts of) table library\"", ), ], ], ), ], line: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing unpack\"", ), ], ], ), ], line: 1, }, Variable { names: [ ( "unpack", false, ), ], values: [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), ], line: 5, }, ], ], line: 7, column: 0, }, Variable { names: [ ( "x", false, ), ( "y", false, ), ( "z", false, ), ( "a", false, ), ( "n", false, ), ], values: [], line: 7, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 7, }, ], values: [ [ Table { data: [], line: 8, column: 4, }, ], ], line: 8, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "lim", ), ], line: 8, }, ], values: [ [ Symbol( "2000", ), ], ], line: 9, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 9, }, ], step: None, code: CodeBlock { start: 35, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 9, }, ], ), Symbol( "]", ), ], line: 9, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 9, }, ], ], line: 9, column: 6, }, ], end: 42, }, line: 9, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "select", ), Call( [ [ Ident { expr: [ Symbol( "lim", ), ], line: 10, }, ], [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 10, }, ], ], ), ], line: 10, }, ], ], ), ], line: 10, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "lim", ), ], line: 10, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "select", ), Call( [ [ Symbol( "'#'", ), ], [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 10, }, ], ], ), ], line: 10, }, ], ], ), ], line: 10, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "lim", ), ], line: 10, }, ], ], ), ], line: 9, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 10, }, ], values: [ [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 11, }, ], ], ), ], line: 11, }, ], ], line: 11, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 12, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 11, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 12, }, ], values: [ [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 13, }, ], ], ), ], line: 13, }, ], ), ], line: 13, column: 8, }, ], ], line: 13, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "x", ), ], line: 14, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "lim", ), ], line: 14, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "x", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 14, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "x", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "lim", ), ], line: 14, }, ], ), Symbol( "]", ), ], line: 14, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "lim", ), ], line: 14, }, ], ], ), ], line: 13, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 14, }, ], values: [ [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 15, }, ], [ Ident { expr: [ Symbol( "lim", ), ], line: 15, }, Operator( ( "-", true, ), ), Symbol( "2", ), ], ], ), ], line: 15, }, ], ), ], line: 15, column: 12, }, ], ], line: 15, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "x", ), ], line: 16, }, Operator( ( "==", true, ), ), Symbol( "3", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "x", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 16, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "lim", ), ], line: 16, }, Operator( ( "-", true, ), ), Symbol( "2", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "x", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 16, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "lim", ), ], line: 16, }, ], ], ), ], line: 15, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 16, }, ], values: [ [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 17, }, ], [ Symbol( "10", ), ], [ Symbol( "6", ), ], ], ), ], line: 17, }, ], ), ], line: 17, column: 12, }, ], ], line: 17, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 18, }, ], ], ), ], line: 18, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 17, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 18, }, ], values: [ [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 19, }, ], [ Symbol( "11", ), ], [ Symbol( "10", ), ], ], ), ], line: 19, }, ], ), ], line: 19, column: 12, }, ], ], line: 19, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 20, }, ], ], ), ], line: 20, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 19, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 20, }, Ident { expr: [ Symbol( "y", ), ], line: 21, }, ], values: [ [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 21, }, ], [ Symbol( "10", ), ], [ Symbol( "10", ), ], ], ), ], line: 21, }, ], ], line: 21, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 22, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 22, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 21, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 22, }, Ident { expr: [ Symbol( "y", ), ], line: 23, }, Ident { expr: [ Symbol( "z", ), ], line: 23, }, ], values: [ [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 23, }, ], [ Symbol( "10", ), ], [ Symbol( "11", ), ], ], ), ], line: 23, }, ], ], line: 23, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 24, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 24, }, Operator( ( "==", true, ), ), Symbol( "11", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 24, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 23, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 24, }, Ident { expr: [ Symbol( "x", ), ], line: 25, }, ], values: [ [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ], line: 25, column: 8, }, ], ], ), ], line: 25, }, ], ], line: 25, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 26, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 26, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 25, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 26, }, Ident { expr: [ Symbol( "x", ), ], line: 27, }, ], values: [ [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ], line: 27, column: 11, }, ], [ Symbol( "1", ), ], [ Symbol( "1", ), ], ], ), ], line: 27, }, ], ], line: 27, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 28, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 28, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 27, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_no32", ), ], line: 30, }, ], body: CodeBlock { start: 284, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "unpack", ), ], line: 31, }, ], [ Table { data: [], line: 31, column: 9, }, ], [ Symbol( "0", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 31, }, ], ], ), ], line: 31, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "unpack", ), ], line: 32, }, ], [ Table { data: [], line: 32, column: 9, }, ], [ Symbol( "1", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 32, }, ], ], ), ], line: 31, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "unpack", ), ], line: 33, }, ], [ Table { data: [], line: 33, column: 9, }, ], [ Operator( ( "-", false, ), ), Expr( [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), ], ), Ident { expr: [], line: 33, }, ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 33, }, ], ], ), ], line: 32, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "unpack", ), ], line: 34, }, ], [ Table { data: [], line: 34, column: 9, }, ], [ Operator( ( "-", false, ), ), Expr( [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 34, }, ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 34, }, ], ], ), ], line: 33, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "unpack", ), ], line: 35, }, ], [ Table { data: [], line: 35, column: 8, }, ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], [ Symbol( "0", ), ], ], ), ], line: 35, }, ], ], ), ], line: 34, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "unpack", ), ], line: 36, }, ], [ Table { data: [], line: 36, column: 8, }, ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], [ Symbol( "1", ), ], ], ), ], line: 36, }, ], ], ), ], line: 35, }, Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "unpack", ), ], line: 37, }, ], [ Table { data: [], line: 37, column: 6, }, ], [ Symbol( "1", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), ], ], ), ], line: 36, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 37, }, Ident { expr: [ Symbol( "b", ), ], line: 38, }, ], values: [ [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ), [ Symbol( "20", ), ], ), ], line: 38, column: 17, }, ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 38, }, ], ], line: 38, column: 30, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 39, }, Operator( ( "==", true, ), ), Symbol( "20", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 39, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 38, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 39, }, Ident { expr: [ Symbol( "b", ), ], line: 40, }, ], values: [ [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ), [ Symbol( "20", ), ], ), ], line: 40, column: 17, }, ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "2", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 40, }, ], ], line: 40, column: 30, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 41, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 41, }, Operator( ( "==", true, ), ), Symbol( "20", ), ], ], ), ], line: 40, }, ], end: 502, }, next: None, line: 42, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing pack\"", ), ], ], ), ], line: 42, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 44, }, ], values: [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "pack", ), Call( [], ), ], line: 46, }, ], ], line: 46, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 47, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 47, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 46, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 47, }, ], values: [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "pack", ), Call( [ [ Ident { expr: [ Symbol( "table", ), ], line: 49, }, ], ], ), ], line: 49, }, ], ], line: 49, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 50, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "table", ), ], line: 50, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 50, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 49, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 50, }, ], values: [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "pack", ), Call( [ [ Symbol( "nil", ), ], [ Symbol( "nil", ), ], [ Symbol( "nil", ), ], [ Symbol( "nil", ), ], ], ), ], line: 52, }, ], ], line: 52, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 53, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 53, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 52, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing sort\"", ), ], ], ), ], line: 53, }, Function { local: true, name: [ Symbol( "check", ), ], args: [ "t", ], body: CodeBlock { start: 586, code: [ Function { local: true, name: [ Symbol( "f", ), ], args: [ "a", "b", ], body: CodeBlock { start: 8, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 61, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 61, }, ], ], ), ], line: 61, }, Return( Some( [ [ Symbol( "true", ), ], ], ), ), ], end: 18, }, line: 61, column: 18, }, Variable { names: [ ( "s", false, ), ( "e", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "sort", ), ], line: 62, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 62, }, ], [ Ident { expr: [ Symbol( "f", ), ], line: 62, }, ], ], ), ], line: 62, }, ], ], line: 62, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "s", ), ], line: 63, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "e", ), Symbol( ":", ), Symbol( "find", ), Call( [ [ Symbol( "\"invalid order function\"", ), ], ], ), ], line: 63, }, ], ], ), ], line: 62, }, ], end: 632, }, line: 64, column: 1, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "4", ), ], ), ], line: 66, column: 10, }, ], ], ), ], line: 64, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "4", ), ], ), ( None, [ Symbol( "5", ), ], ), ], line: 67, column: 12, }, ], ], ), ], line: 66, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "4", ), ], ), ( None, [ Symbol( "5", ), ], ), ( None, [ Symbol( "6", ), ], ), ], line: 68, column: 14, }, ], ], ), ], line: 67, }, Function { local: false, name: [ Symbol( "check", ), ], args: [ "a", "f", ], body: CodeBlock { start: 675, code: [ Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 72, }, ], values: [ [ Ident { expr: [ Symbol( "f", ), ], line: 72, }, Operator( ( "or", true, ), ), Lambda { args: [ "x", "y", ], body: CodeBlock { start: 10, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "x", ), ], line: 72, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 72, }, ], ], ), ), ], end: 15, }, line: 72, column: 15, }, ], ], line: 72, column: 16, }, ForLoop { iter: "n", start: [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 73, }, ], end: [ Symbol( "2", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 27, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 74, }, ], ), Symbol( "]", ), ], line: 74, }, ], [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 74, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 74, }, ], ], ), ], line: 74, }, ], ], ), ], line: 74, }, ], end: 46, }, line: 75, column: 1, }, ], end: 722, }, line: 76, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 76, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "\"Jan\"", ), ], ), ( None, [ Symbol( "\"Feb\"", ), ], ), ( None, [ Symbol( "\"Mar\"", ), ], ), ( None, [ Symbol( "\"Apr\"", ), ], ), ( None, [ Symbol( "\"May\"", ), ], ), ( None, [ Symbol( "\"Jun\"", ), ], ), ( None, [ Symbol( "\"Jul\"", ), ], ), ( None, [ Symbol( "\"Aug\"", ), ], ), ( None, [ Symbol( "\"Sep\"", ), ], ), ( None, [ Symbol( "\"Oct\"", ), ], ), ( None, [ Symbol( "\"Nov\"", ), ], ), ( None, [ Symbol( "\"Dec\"", ), ], ), ], line: 79, column: 6, }, ], ], line: 79, column: 6, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "sort", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 81, }, ], ], ), ], line: 79, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 82, }, ], ], ), ], line: 81, }, Function { local: false, name: [ Symbol( "perm", ), ], args: [ "s", "n", ], body: CodeBlock { start: 766, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 85, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), ], line: 85, }, Operator( ( "or", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "s", ), ], line: 85, }, ], ], line: 86, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "n", ), ], line: 86, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], body: CodeBlock { start: 11, code: [ Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 87, }, ], ], ), ], line: 87, }, ], ), ], line: 87, column: 9, }, ], ], line: 87, column: 9, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "sort", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 88, }, ], ], ), ], line: 87, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 89, }, ], ], ), ], line: 88, }, ], end: 31, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 31, code: [ ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "n", ), ], line: 91, }, ], step: None, code: CodeBlock { start: 7, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 92, }, ], ), Symbol( "]", ), ], line: 92, }, Ident { expr: [ Symbol( "s", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 92, }, ], ), Symbol( "]", ), ], line: 92, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 92, }, ], ), Symbol( "]", ), ], line: 92, }, ], [ Ident { expr: [ Symbol( "s", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 92, }, ], ), Symbol( "]", ), ], line: 92, }, ], ], line: 92, column: 19, }, Ident { expr: [ Symbol( "perm", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 93, }, ], [ Ident { expr: [ Symbol( "n", ), ], line: 93, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 92, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 94, }, ], ), Symbol( "]", ), ], line: 93, }, Ident { expr: [ Symbol( "s", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 94, }, ], ), Symbol( "]", ), ], line: 94, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 94, }, ], ), Symbol( "]", ), ], line: 94, }, ], [ Ident { expr: [ Symbol( "s", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 94, }, ], ), Symbol( "]", ), ], line: 94, }, ], ], line: 94, column: 19, }, ], end: 54, }, line: 95, column: 1, }, ], end: 86, }, next: None, line: 96, column: 1, }, ), line: 96, column: 1, }, ], end: 853, }, line: 97, column: 1, }, Ident { expr: [ Symbol( "perm", ), Call( [ [ Table { data: [], line: 99, column: 3, }, ], ], ), ], line: 97, }, Ident { expr: [ Symbol( "perm", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ], line: 100, column: 4, }, ], ], ), ], line: 99, }, Ident { expr: [ Symbol( "perm", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ], line: 101, column: 6, }, ], ], ), ], line: 100, }, Ident { expr: [ Symbol( "perm", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ], line: 102, column: 8, }, ], ], ), ], line: 101, }, Ident { expr: [ Symbol( "perm", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "4", ), ], ), ], line: 103, column: 10, }, ], ], ), ], line: 102, }, Ident { expr: [ Symbol( "perm", ), Call( [ [ Table { data: [ ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "4", ), ], ), ], line: 104, column: 10, }, ], ], ), ], line: 103, }, Ident { expr: [ Symbol( "perm", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "4", ), ], ), ( None, [ Symbol( "5", ), ], ), ], line: 105, column: 12, }, ], ], ), ], line: 104, }, Ident { expr: [ Symbol( "perm", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "5", ), ], ), ], line: 106, column: 12, }, ], ], ), ], line: 105, }, Ident { expr: [ Symbol( "perm", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "4", ), ], ), ( None, [ Symbol( "5", ), ], ), ( None, [ Symbol( "6", ), ], ), ], line: 107, column: 14, }, ], ], ), ], line: 106, }, Ident { expr: [ Symbol( "perm", ), Call( [ [ Table { data: [ ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "5", ), ], ), ( None, [ Symbol( "6", ), ], ), ], line: 108, column: 14, }, ], ], ), ], line: 107, }, Alter { names: [ Ident { expr: [ Symbol( "limit", ), ], line: 108, }, ], values: [ [ Symbol( "30000", ), ], ], line: 111, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "_soft", ), ], line: 111, }, ], body: CodeBlock { start: 952, code: [ Alter { names: [ Ident { expr: [ Symbol( "limit", ), ], line: 111, }, ], values: [ [ Symbol( "5000", ), ], ], line: 111, column: 3, }, ], end: 956, }, next: None, line: 111, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 111, }, ], values: [ [ Table { data: [], line: 113, column: 4, }, ], ], line: 114, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "limit", ), ], line: 114, }, ], step: None, code: CodeBlock { start: 967, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 115, }, ], ), Symbol( "]", ), ], line: 115, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "random", ), Call( [], ), ], line: 115, }, ], ], line: 115, column: 10, }, ], end: 978, }, line: 116, column: 1, }, Variable { names: [ ( "x", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "clock", ), Call( [], ), ], line: 118, }, ], ], line: 118, column: 8, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "sort", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 119, }, ], ], ), ], line: 118, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"Sorting %d elements in %.2f sec.\"", ), ], [ Ident { expr: [ Symbol( "limit", ), ], line: 120, }, ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "clock", ), Call( [], ), ], line: 120, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 120, }, ], ], ), ], line: 120, }, ], ], ), ], line: 119, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 121, }, ], ], ), ], line: 120, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 121, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "clock", ), Call( [], ), ], line: 123, }, ], ], line: 123, column: 7, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "sort", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 124, }, ], ], ), ], line: 123, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"Re-sorting %d elements in %.2f sec.\"", ), ], [ Ident { expr: [ Symbol( "limit", ), ], line: 125, }, ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "clock", ), Call( [], ), ], line: 125, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 125, }, ], ], ), ], line: 125, }, ], ], ), ], line: 124, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 126, }, ], ], ), ], line: 125, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 126, }, ], values: [ [ Table { data: [], line: 128, column: 4, }, ], ], line: 129, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "limit", ), ], line: 129, }, ], step: None, code: CodeBlock { start: 1062, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 130, }, ], ), Symbol( "]", ), ], line: 130, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "random", ), Call( [], ), ], line: 130, }, ], ], line: 130, column: 10, }, ], end: 1073, }, line: 131, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 131, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "clock", ), Call( [], ), ], line: 133, }, ], ], line: 133, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 133, }, ], values: [ [ Symbol( "0", ), ], ], line: 133, column: 11, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "sort", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 134, }, ], [ Lambda { args: [ "x", "y", ], body: CodeBlock { start: 1096, code: [ Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 134, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 134, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 134, column: 6, }, Return( Some( [ [ Ident { expr: [ Symbol( "y", ), ], line: 134, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 134, }, ], ], ), ), ], end: 1107, }, line: 134, column: 23, }, ], ], ), ], line: 133, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"Invert-sorting other %d elements in %.2f sec., with %i comparisons\"", ), ], [ Ident { expr: [ Symbol( "limit", ), ], line: 135, }, ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "clock", ), Call( [], ), ], line: 136, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 136, }, ], [ Ident { expr: [ Symbol( "i", ), ], line: 136, }, ], ], ), ], line: 135, }, ], ], ), ], line: 134, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 137, }, ], [ Lambda { args: [ "x", "y", ], body: CodeBlock { start: 1139, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "y", ), ], line: 137, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 137, }, ], ], ), ), ], end: 1144, }, line: 137, column: 15, }, ], ], ), ], line: 136, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "sort", ), Call( [ [ Table { data: [], line: 140, column: 5, }, ], ], ), ], line: 137, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "limit", ), ], line: 142, }, ], step: None, code: CodeBlock { start: 1157, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 142, }, ], ), Symbol( "]", ), ], line: 142, }, ], values: [ [ Symbol( "false", ), ], ], line: 142, column: 6, }, ], end: 1164, }, line: 142, column: 14, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 142, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "clock", ), Call( [], ), ], line: 143, }, ], ], line: 143, column: 8, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "sort", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 144, }, ], [ Lambda { args: [ "x", "y", ], body: CodeBlock { start: 1184, code: [ Return( Some( [ [ Symbol( "nil", ), ], ], ), ), ], end: 1187, }, line: 144, column: 15, }, ], ], ), ], line: 143, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"Sorting %d equal elements in %.2f sec.\"", ), ], [ Ident { expr: [ Symbol( "limit", ), ], line: 145, }, ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "clock", ), Call( [], ), ], line: 145, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 145, }, ], ], ), ], line: 145, }, ], ], ), ], line: 144, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 146, }, ], [ Lambda { args: [ "x", "y", ], body: CodeBlock { start: 1217, code: [ Return( Some( [ [ Symbol( "nil", ), ], ], ), ), ], end: 1220, }, line: 146, column: 13, }, ], ], ), ], line: 145, }, ForFuncLoop { iters: [ "i", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 147, }, ], ], ), ], line: 147, }, ], stop: None, initial: None, code: CodeBlock { start: 1231, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "v", ), ], line: 147, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 147, }, Operator( ( "==", true, ), ), Symbol( "'n'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 147, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "limit", ), ], line: 147, }, ], ], ), ], line: 147, }, ], end: 1245, }, line: 147, column: 24, }, Alter { names: [ Ident { expr: [ Symbol( "A", ), ], line: 147, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "\"álo\"", ), ], ), ( None, [ Symbol( "\"\\0first :-)\"", ), ], ), ( None, [ Symbol( "\"alo\"", ), ], ), ( None, [ Symbol( "\"then this one\"", ), ], ), ( None, [ Symbol( "\"45\"", ), ], ), ( None, [ Symbol( "\"and a new\"", ), ], ), ], line: 149, column: 15, }, ], ], line: 149, column: 15, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "sort", ), Call( [ [ Ident { expr: [ Symbol( "A", ), ], line: 150, }, ], ], ), ], line: 149, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "A", ), ], line: 151, }, ], ], ), ], line: 150, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "sort", ), Call( [ [ Ident { expr: [ Symbol( "A", ), ], line: 153, }, ], [ Lambda { args: [ "x", "y", ], body: CodeBlock { start: 1282, code: [ Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"A[%q] = ''\"", ), ], [ Ident { expr: [ Symbol( "x", ), ], line: 154, }, ], ], ), ], line: 154, }, ], ], ), Call( [], ), ], line: 154, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 154, }, Return( Some( [ [ Ident { expr: [ Symbol( "x", ), ], line: 156, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 156, }, ], ], ), ), ], end: 1303, }, line: 157, column: 1, }, ], ], ), ], line: 151, }, Alter { names: [ Ident { expr: [ Symbol( "tt", ), ], line: 157, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "__lt", ), ], ), [ Lambda { args: [ "a", "b", ], body: CodeBlock { start: 1315, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "val", ), ], line: 160, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "b", ), Symbol( ".", ), Symbol( "val", ), ], line: 160, }, ], ], ), ), ], end: 1324, }, line: 160, column: 20, }, ], ), ], line: 160, column: 21, }, ], ], line: 160, column: 21, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 160, }, ], values: [ [ Table { data: [], line: 161, column: 4, }, ], ], line: 162, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "10", ), ], step: None, code: CodeBlock { start: 1336, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 162, }, ], ), Symbol( "]", ), ], line: 162, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "val", ), ], ), [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "random", ), Call( [ [ Symbol( "100", ), ], ], ), ], line: 162, }, ], ), ], line: 162, column: 15, }, ], ], line: 162, column: 16, }, Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 162, }, ], ), Symbol( "]", ), ], line: 162, }, ], [ Ident { expr: [ Symbol( "tt", ), ], line: 162, }, ], ], ), ], line: 162, }, ], end: 1363, }, line: 162, column: 34, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "sort", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 163, }, ], ], ), ], line: 162, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 164, }, ], [ Ident { expr: [ Symbol( "tt", ), Symbol( ".", ), Symbol( "__lt", ), ], line: 164, }, ], ], ), ], line: 163, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 165, }, ], ], ), ], line: 164, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"OK\"", ), ], ], ), ], line: 165, }, ]