--- source: src/main.rs expression: scanned input_file: test-data/lua5.4-tests/main.lua --- [ Token { kind: If, lexeme: "if", computed_lexeme: None, line: 6, }, Token { kind: Identifier, lexeme: "_port", computed_lexeme: None, line: 6, }, Token { kind: Then, lexeme: "then", computed_lexeme: None, line: 6, }, Token { kind: Return, lexeme: "return", computed_lexeme: None, line: 6, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 6, }, Token { kind: Identifier, lexeme: "print", computed_lexeme: None, line: 12, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 12, }, Token { kind: String, lexeme: "\"testing stand-alone interpreter\"", computed_lexeme: None, line: 12, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 12, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 14, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 14, }, Token { kind: Identifier, lexeme: "os", computed_lexeme: None, line: 14, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 14, }, Token { kind: Identifier, lexeme: "execute", computed_lexeme: None, line: 14, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 14, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 14, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 14, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 16, }, Token { kind: Identifier, lexeme: "arg", computed_lexeme: None, line: 16, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 16, }, Token { kind: Identifier, lexeme: "arg", computed_lexeme: None, line: 16, }, Token { kind: Or, lexeme: "or", computed_lexeme: None, line: 16, }, Token { kind: Identifier, lexeme: "ARG", computed_lexeme: None, line: 16, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 18, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 18, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 18, }, Token { kind: Identifier, lexeme: "os", computed_lexeme: None, line: 18, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 18, }, Token { kind: Identifier, lexeme: "tmpname", computed_lexeme: None, line: 18, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 18, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 18, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 19, }, Token { kind: Identifier, lexeme: "otherprog", computed_lexeme: None, line: 19, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 19, }, Token { kind: Identifier, lexeme: "os", computed_lexeme: None, line: 19, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 19, }, Token { kind: Identifier, lexeme: "tmpname", computed_lexeme: None, line: 19, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 19, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 19, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 20, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 20, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 20, }, Token { kind: Identifier, lexeme: "os", computed_lexeme: None, line: 20, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 20, }, Token { kind: Identifier, lexeme: "tmpname", computed_lexeme: None, line: 20, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 20, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 20, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 22, }, Token { kind: Identifier, lexeme: "progname", computed_lexeme: None, line: 22, }, Token { kind: Do, lexeme: "do", computed_lexeme: None, line: 23, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 24, }, Token { kind: Identifier, lexeme: "i", computed_lexeme: None, line: 24, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 24, }, Token { kind: Number, lexeme: "0", computed_lexeme: Some( "0", ), line: 24, }, Token { kind: While, lexeme: "while", computed_lexeme: None, line: 25, }, Token { kind: Identifier, lexeme: "arg", computed_lexeme: None, line: 25, }, Token { kind: LeftBracket, lexeme: "[", computed_lexeme: None, line: 25, }, Token { kind: Identifier, lexeme: "i", computed_lexeme: None, line: 25, }, Token { kind: RightBracket, lexeme: "]", computed_lexeme: None, line: 25, }, Token { kind: Do, lexeme: "do", computed_lexeme: None, line: 25, }, Token { kind: Identifier, lexeme: "i", computed_lexeme: None, line: 25, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 25, }, Token { kind: Identifier, lexeme: "i", computed_lexeme: None, line: 25, }, Token { kind: Minus, lexeme: "-", computed_lexeme: None, line: 25, }, Token { kind: Number, lexeme: "1", computed_lexeme: Some( "1", ), line: 25, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 25, }, Token { kind: Identifier, lexeme: "progname", computed_lexeme: None, line: 26, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 26, }, Token { kind: Identifier, lexeme: "arg", computed_lexeme: None, line: 26, }, Token { kind: LeftBracket, lexeme: "[", computed_lexeme: None, line: 26, }, Token { kind: Identifier, lexeme: "i", computed_lexeme: None, line: 26, }, Token { kind: Plus, lexeme: "+", computed_lexeme: None, line: 26, }, Token { kind: Number, lexeme: "1", computed_lexeme: Some( "1", ), line: 26, }, Token { kind: RightBracket, lexeme: "]", computed_lexeme: None, line: 26, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 27, }, Token { kind: Identifier, lexeme: "print", computed_lexeme: None, line: 28, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 28, }, Token { kind: String, lexeme: "\"progname: \"", computed_lexeme: None, line: 28, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 28, }, Token { kind: Identifier, lexeme: "progname", computed_lexeme: None, line: 28, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 28, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 30, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 30, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 30, }, Token { kind: Function, lexeme: "function", computed_lexeme: None, line: 30, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 30, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 30, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 30, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 30, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 30, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 31, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 31, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 31, }, Token { kind: Or, lexeme: "or", computed_lexeme: None, line: 31, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 31, }, Token { kind: Identifier, lexeme: "io", computed_lexeme: None, line: 32, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 32, }, Token { kind: Identifier, lexeme: "output", computed_lexeme: None, line: 32, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 32, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 32, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 32, }, Token { kind: Identifier, lexeme: "io", computed_lexeme: None, line: 33, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 33, }, Token { kind: Identifier, lexeme: "write", computed_lexeme: None, line: 33, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 33, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 33, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 33, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 34, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 34, }, Token { kind: Identifier, lexeme: "io", computed_lexeme: None, line: 34, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 34, }, Token { kind: Identifier, lexeme: "close", computed_lexeme: None, line: 34, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 34, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 34, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 34, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 35, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 37, }, Token { kind: Function, lexeme: "function", computed_lexeme: None, line: 37, }, Token { kind: Identifier, lexeme: "getoutput", computed_lexeme: None, line: 37, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 37, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 37, }, Token { kind: Identifier, lexeme: "io", computed_lexeme: None, line: 38, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 38, }, Token { kind: Identifier, lexeme: "input", computed_lexeme: None, line: 38, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 38, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 38, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 38, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 39, }, Token { kind: Identifier, lexeme: "t", computed_lexeme: None, line: 39, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 39, }, Token { kind: Identifier, lexeme: "io", computed_lexeme: None, line: 39, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 39, }, Token { kind: Identifier, lexeme: "read", computed_lexeme: None, line: 39, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 39, }, Token { kind: String, lexeme: "\"a\"", computed_lexeme: None, line: 39, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 39, }, Token { kind: Identifier, lexeme: "io", computed_lexeme: None, line: 40, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 40, }, Token { kind: Identifier, lexeme: "input", computed_lexeme: None, line: 40, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 40, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 40, }, Token { kind: Colon, lexeme: ":", computed_lexeme: None, line: 40, }, Token { kind: Identifier, lexeme: "close", computed_lexeme: None, line: 40, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 40, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 40, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 41, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 41, }, Token { kind: Identifier, lexeme: "os", computed_lexeme: None, line: 41, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 41, }, Token { kind: Identifier, lexeme: "remove", computed_lexeme: None, line: 41, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 41, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 41, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 41, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 41, }, Token { kind: Return, lexeme: "return", computed_lexeme: None, line: 42, }, Token { kind: Identifier, lexeme: "t", computed_lexeme: None, line: 42, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 43, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 45, }, Token { kind: Function, lexeme: "function", computed_lexeme: None, line: 45, }, Token { kind: Identifier, lexeme: "checkprogout", computed_lexeme: None, line: 45, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 45, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 45, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 45, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 47, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 47, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 47, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 47, }, Token { kind: Identifier, lexeme: "sub", computed_lexeme: None, line: 47, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 47, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 47, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 47, }, Token { kind: Minus, lexeme: "-", computed_lexeme: None, line: 47, }, Token { kind: Number, lexeme: "1", computed_lexeme: Some( "1", ), line: 47, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 47, }, Token { kind: DoubleEquals, lexeme: "==", computed_lexeme: None, line: 47, }, Token { kind: String, lexeme: "\"\\n\"", computed_lexeme: None, line: 47, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 47, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 48, }, Token { kind: Identifier, lexeme: "t", computed_lexeme: None, line: 48, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 48, }, Token { kind: Identifier, lexeme: "getoutput", computed_lexeme: None, line: 48, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 48, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 48, }, Token { kind: For, lexeme: "for", computed_lexeme: None, line: 49, }, Token { kind: Identifier, lexeme: "line", computed_lexeme: None, line: 49, }, Token { kind: In, lexeme: "in", computed_lexeme: None, line: 49, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 49, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 49, }, Token { kind: Identifier, lexeme: "gmatch", computed_lexeme: None, line: 49, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 49, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 49, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 49, }, Token { kind: String, lexeme: "\".-\\n\"", computed_lexeme: None, line: 49, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 49, }, Token { kind: Do, lexeme: "do", computed_lexeme: None, line: 49, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 50, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 50, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 50, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 50, }, Token { kind: Identifier, lexeme: "find", computed_lexeme: None, line: 50, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 50, }, Token { kind: Identifier, lexeme: "t", computed_lexeme: None, line: 50, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 50, }, Token { kind: Identifier, lexeme: "line", computed_lexeme: None, line: 50, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 50, }, Token { kind: Number, lexeme: "1", computed_lexeme: Some( "1", ), line: 50, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 50, }, Token { kind: True, lexeme: "true", computed_lexeme: None, line: 50, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 50, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 50, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 51, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 52, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 54, }, Token { kind: Function, lexeme: "function", computed_lexeme: None, line: 54, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 54, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 54, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 54, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 54, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 55, }, Token { kind: Identifier, lexeme: "t", computed_lexeme: None, line: 55, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 55, }, Token { kind: Identifier, lexeme: "getoutput", computed_lexeme: None, line: 55, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 55, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 55, }, Token { kind: If, lexeme: "if", computed_lexeme: None, line: 56, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 56, }, Token { kind: NotEquals, lexeme: "~=", computed_lexeme: None, line: 56, }, Token { kind: Identifier, lexeme: "t", computed_lexeme: None, line: 56, }, Token { kind: Then, lexeme: "then", computed_lexeme: None, line: 56, }, Token { kind: Identifier, lexeme: "print", computed_lexeme: None, line: 56, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 56, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 56, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 56, }, Token { kind: Identifier, lexeme: "format", computed_lexeme: None, line: 56, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 56, }, Token { kind: String, lexeme: "\"'%s' - '%s'\\n\"", computed_lexeme: None, line: 56, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 56, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 56, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 56, }, Token { kind: Identifier, lexeme: "t", computed_lexeme: None, line: 56, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 56, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 56, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 56, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 57, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 57, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 57, }, Token { kind: DoubleEquals, lexeme: "==", computed_lexeme: None, line: 57, }, Token { kind: Identifier, lexeme: "t", computed_lexeme: None, line: 57, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 57, }, Token { kind: Return, lexeme: "return", computed_lexeme: None, line: 58, }, Token { kind: Identifier, lexeme: "t", computed_lexeme: None, line: 58, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 59, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 62, }, Token { kind: Function, lexeme: "function", computed_lexeme: None, line: 62, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 62, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 62, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 62, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 62, }, Token { kind: TripleDot, lexeme: "...", computed_lexeme: None, line: 62, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 62, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 63, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 63, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 63, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 63, }, Token { kind: Identifier, lexeme: "gsub", computed_lexeme: None, line: 63, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 63, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 63, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 63, }, Token { kind: String, lexeme: "\"lua\"", computed_lexeme: None, line: 63, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 63, }, Token { kind: String, lexeme: "'\"'", computed_lexeme: None, line: 63, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 63, }, Token { kind: Identifier, lexeme: "progname", computed_lexeme: None, line: 63, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 63, }, Token { kind: String, lexeme: "'\"'", computed_lexeme: None, line: 63, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 63, }, Token { kind: Number, lexeme: "1", computed_lexeme: Some( "1", ), line: 63, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 63, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 64, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 64, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 64, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 64, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 64, }, Token { kind: Identifier, lexeme: "format", computed_lexeme: None, line: 64, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 64, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 64, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 64, }, Token { kind: TripleDot, lexeme: "...", computed_lexeme: None, line: 64, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 64, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 65, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 65, }, Token { kind: Identifier, lexeme: "os", computed_lexeme: None, line: 65, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 65, }, Token { kind: Identifier, lexeme: "execute", computed_lexeme: None, line: 65, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 65, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 65, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 65, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 65, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 66, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 68, }, Token { kind: Function, lexeme: "function", computed_lexeme: None, line: 68, }, Token { kind: Identifier, lexeme: "NoRun", computed_lexeme: None, line: 68, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 68, }, Token { kind: Identifier, lexeme: "msg", computed_lexeme: None, line: 68, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 68, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 68, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 68, }, Token { kind: TripleDot, lexeme: "...", computed_lexeme: None, line: 68, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 68, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 69, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 69, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 69, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 69, }, Token { kind: Identifier, lexeme: "gsub", computed_lexeme: None, line: 69, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 69, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 69, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 69, }, Token { kind: String, lexeme: "\"lua\"", computed_lexeme: None, line: 69, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 69, }, Token { kind: String, lexeme: "'\"'", computed_lexeme: None, line: 69, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 69, }, Token { kind: Identifier, lexeme: "progname", computed_lexeme: None, line: 69, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 69, }, Token { kind: String, lexeme: "'\"'", computed_lexeme: None, line: 69, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 69, }, Token { kind: Number, lexeme: "1", computed_lexeme: Some( "1", ), line: 69, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 69, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 70, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 70, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 70, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 70, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 70, }, Token { kind: Identifier, lexeme: "format", computed_lexeme: None, line: 70, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 70, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 70, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 70, }, Token { kind: TripleDot, lexeme: "...", computed_lexeme: None, line: 70, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 70, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 71, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 71, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 71, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 71, }, Token { kind: Identifier, lexeme: "format", computed_lexeme: None, line: 71, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 71, }, Token { kind: String, lexeme: "\"%s 2> %s\"", computed_lexeme: None, line: 71, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 71, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 71, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 71, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 71, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 71, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 72, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 72, }, Token { kind: Not, lexeme: "not", computed_lexeme: None, line: 72, }, Token { kind: Identifier, lexeme: "os", computed_lexeme: None, line: 72, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 72, }, Token { kind: Identifier, lexeme: "execute", computed_lexeme: None, line: 72, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 72, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 72, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 72, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 72, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 73, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 73, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 73, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 73, }, Token { kind: Identifier, lexeme: "find", computed_lexeme: None, line: 73, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 73, }, Token { kind: Identifier, lexeme: "getoutput", computed_lexeme: None, line: 73, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 73, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 73, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 73, }, Token { kind: Identifier, lexeme: "msg", computed_lexeme: None, line: 73, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 73, }, Token { kind: Number, lexeme: "1", computed_lexeme: Some( "1", ), line: 73, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 73, }, Token { kind: True, lexeme: "true", computed_lexeme: None, line: 73, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 73, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 73, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 74, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 76, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 76, }, Token { kind: String, lexeme: "'lua -v'", computed_lexeme: None, line: 76, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 76, }, Token { kind: Identifier, lexeme: "print", computed_lexeme: None, line: 78, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 78, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 78, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 78, }, Token { kind: Identifier, lexeme: "format", computed_lexeme: None, line: 78, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 78, }, Token { kind: String, lexeme: "\"(temporary program file used in these tests: %s)\"", computed_lexeme: None, line: 78, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 78, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 78, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 78, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 78, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 81, }, Token { kind: String, lexeme: "\"\"", computed_lexeme: None, line: 81, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 82, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 82, }, Token { kind: String, lexeme: "'lua - < %s > %s'", computed_lexeme: None, line: 82, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 82, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 82, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 82, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 82, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 82, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 83, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 83, }, Token { kind: String, lexeme: "\"\"", computed_lexeme: None, line: 83, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 83, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 85, }, Token { kind: MultilineString, lexeme: "[[\n print(\n1, a\n)\n]]", computed_lexeme: None, line: 89, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 90, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 90, }, Token { kind: String, lexeme: "'lua - < %s > %s'", computed_lexeme: None, line: 90, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 90, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 90, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 90, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 90, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 90, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 91, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 91, }, Token { kind: String, lexeme: "\"1\\tnil\\n\"", computed_lexeme: None, line: 91, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 91, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 93, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 93, }, Token { kind: String, lexeme: "'echo \"print(10)\\nprint(2)\\n\" | lua > %s'", computed_lexeme: None, line: 93, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 93, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 93, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 93, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 94, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 94, }, Token { kind: String, lexeme: "\"10\\n2\\n\"", computed_lexeme: None, line: 94, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 94, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 98, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 98, }, Token { kind: String, lexeme: "'echo \"print(arg[1])\" | lua - -h > %s'", computed_lexeme: None, line: 98, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 98, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 98, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 98, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 99, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 99, }, Token { kind: String, lexeme: "\"-h\\n\"", computed_lexeme: None, line: 99, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 99, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 103, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 103, }, Token { kind: String, lexeme: "\"print(package.path)\"", computed_lexeme: None, line: 103, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 103, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 106, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 106, }, Token { kind: String, lexeme: "'env LUA_INIT= LUA_PATH=x lua %s > %s'", computed_lexeme: None, line: 106, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 106, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 106, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 106, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 106, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 106, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 107, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 107, }, Token { kind: String, lexeme: "\"x\\n\"", computed_lexeme: None, line: 107, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 107, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 110, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 110, }, Token { kind: String, lexeme: "'env LUA_INIT= LUA_PATH_5_4=y LUA_PATH=x lua %s > %s'", computed_lexeme: None, line: 110, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 110, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 110, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 110, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 110, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 110, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 111, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 111, }, Token { kind: String, lexeme: "\"y\\n\"", computed_lexeme: None, line: 111, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 111, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 114, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 114, }, Token { kind: String, lexeme: "\"print(package.cpath)\"", computed_lexeme: None, line: 114, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 114, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 115, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 115, }, Token { kind: String, lexeme: "'env LUA_INIT= LUA_CPATH=xuxu lua %s > %s'", computed_lexeme: None, line: 115, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 115, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 115, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 115, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 115, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 115, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 116, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 116, }, Token { kind: String, lexeme: "\"xuxu\\n\"", computed_lexeme: None, line: 116, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 116, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 119, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 119, }, Token { kind: String, lexeme: "'env LUA_INIT= LUA_CPATH_5_4=yacc LUA_CPATH=x lua %s > %s'", computed_lexeme: None, line: 119, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 119, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 119, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 119, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 119, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 119, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 120, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 120, }, Token { kind: String, lexeme: "\"yacc\\n\"", computed_lexeme: None, line: 120, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 120, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 123, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 123, }, Token { kind: String, lexeme: "\"print(X)\"", computed_lexeme: None, line: 123, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 123, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 124, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 124, }, Token { kind: String, lexeme: "'env LUA_INIT=\"X=tonumber(arg[1])\" lua %s 3.2 > %s'", computed_lexeme: None, line: 124, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 124, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 124, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 124, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 124, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 124, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 125, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 125, }, Token { kind: String, lexeme: "\"3.2\\n\"", computed_lexeme: None, line: 125, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 125, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 128, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 128, }, Token { kind: String, lexeme: "\"print(X)\"", computed_lexeme: None, line: 128, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 128, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 129, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 129, }, Token { kind: String, lexeme: "'env LUA_INIT_5_4=\"X=10\" LUA_INIT=\"X=3\" lua %s > %s'", computed_lexeme: None, line: 129, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 129, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 129, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 129, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 129, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 129, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 130, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 130, }, Token { kind: String, lexeme: "\"10\\n\"", computed_lexeme: None, line: 130, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 130, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 133, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 133, }, Token { kind: String, lexeme: "\"x = x or 10; print(x); x = x + 1\"", computed_lexeme: None, line: 133, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 133, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 134, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 134, }, Token { kind: String, lexeme: "'env LUA_INIT=\"@%s\" lua %s > %s'", computed_lexeme: None, line: 134, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 134, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 134, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 134, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 134, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 134, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 134, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 134, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 135, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 135, }, Token { kind: String, lexeme: "\"10\\n11\\n\"", computed_lexeme: None, line: 135, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 135, }, Token { kind: Identifier, lexeme: "NoRun", computed_lexeme: None, line: 138, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 138, }, Token { kind: String, lexeme: "'LUA_INIT:1: msg'", computed_lexeme: None, line: 138, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 138, }, Token { kind: String, lexeme: "'env LUA_INIT=\"error(\\'msg\\')\" lua'", computed_lexeme: None, line: 138, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 138, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 141, }, Token { kind: Identifier, lexeme: "defaultpath", computed_lexeme: None, line: 141, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 141, }, Token { kind: Identifier, lexeme: "defaultCpath", computed_lexeme: None, line: 141, }, Token { kind: Do, lexeme: "do", computed_lexeme: None, line: 143, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 144, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 144, }, Token { kind: String, lexeme: "\"print(package.path, package.cpath)\"", computed_lexeme: None, line: 144, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 144, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 145, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 145, }, Token { kind: String, lexeme: "'env LUA_INIT=\"error(10)\" LUA_PATH=xxx LUA_CPATH=xxx lua -E %s > %s'", computed_lexeme: None, line: 145, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 145, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 146, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 146, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 146, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 146, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 147, }, Token { kind: Identifier, lexeme: "output", computed_lexeme: None, line: 147, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 147, }, Token { kind: Identifier, lexeme: "getoutput", computed_lexeme: None, line: 147, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 147, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 147, }, Token { kind: Identifier, lexeme: "defaultpath", computed_lexeme: None, line: 148, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 148, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 148, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 148, }, Token { kind: Identifier, lexeme: "match", computed_lexeme: None, line: 148, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 148, }, Token { kind: Identifier, lexeme: "output", computed_lexeme: None, line: 148, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 148, }, Token { kind: String, lexeme: "\"^(.-)\\t\"", computed_lexeme: None, line: 148, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 148, }, Token { kind: Identifier, lexeme: "defaultCpath", computed_lexeme: None, line: 149, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 149, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 149, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 149, }, Token { kind: Identifier, lexeme: "match", computed_lexeme: None, line: 149, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 149, }, Token { kind: Identifier, lexeme: "output", computed_lexeme: None, line: 149, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 149, }, Token { kind: String, lexeme: "\"\\t(.-)$\"", computed_lexeme: None, line: 149, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 149, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 152, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 152, }, Token { kind: String, lexeme: "'env -i lua %s > %s'", computed_lexeme: None, line: 152, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 152, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 152, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 152, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 152, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 152, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 153, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 153, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 153, }, Token { kind: Identifier, lexeme: "getoutput", computed_lexeme: None, line: 153, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 153, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 153, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 154, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 154, }, Token { kind: Identifier, lexeme: "defaultpath", computed_lexeme: None, line: 154, }, Token { kind: DoubleEquals, lexeme: "==", computed_lexeme: None, line: 154, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 154, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 154, }, Token { kind: Identifier, lexeme: "match", computed_lexeme: None, line: 154, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 154, }, Token { kind: Identifier, lexeme: "output", computed_lexeme: None, line: 154, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 154, }, Token { kind: String, lexeme: "\"^(.-)\\t\"", computed_lexeme: None, line: 154, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 154, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 154, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 155, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 155, }, Token { kind: Identifier, lexeme: "defaultCpath", computed_lexeme: None, line: 155, }, Token { kind: DoubleEquals, lexeme: "==", computed_lexeme: None, line: 155, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 155, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 155, }, Token { kind: Identifier, lexeme: "match", computed_lexeme: None, line: 155, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 155, }, Token { kind: Identifier, lexeme: "output", computed_lexeme: None, line: 155, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 155, }, Token { kind: String, lexeme: "\"\\t(.-)$\"", computed_lexeme: None, line: 155, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 155, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 155, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 156, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 159, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 159, }, Token { kind: Not, lexeme: "not", computed_lexeme: None, line: 159, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 159, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 159, }, Token { kind: Identifier, lexeme: "find", computed_lexeme: None, line: 159, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 159, }, Token { kind: Identifier, lexeme: "defaultpath", computed_lexeme: None, line: 159, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 159, }, Token { kind: String, lexeme: "\"xxx\"", computed_lexeme: None, line: 159, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 159, }, Token { kind: And, lexeme: "and", computed_lexeme: None, line: 159, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 160, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 160, }, Token { kind: Identifier, lexeme: "find", computed_lexeme: None, line: 160, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 160, }, Token { kind: Identifier, lexeme: "defaultpath", computed_lexeme: None, line: 160, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 160, }, Token { kind: String, lexeme: "\"lua\"", computed_lexeme: None, line: 160, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 160, }, Token { kind: And, lexeme: "and", computed_lexeme: None, line: 160, }, Token { kind: Not, lexeme: "not", computed_lexeme: None, line: 161, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 161, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 161, }, Token { kind: Identifier, lexeme: "find", computed_lexeme: None, line: 161, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 161, }, Token { kind: Identifier, lexeme: "defaultCpath", computed_lexeme: None, line: 161, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 161, }, Token { kind: String, lexeme: "\"xxx\"", computed_lexeme: None, line: 161, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 161, }, Token { kind: And, lexeme: "and", computed_lexeme: None, line: 161, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 162, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 162, }, Token { kind: Identifier, lexeme: "find", computed_lexeme: None, line: 162, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 162, }, Token { kind: Identifier, lexeme: "defaultCpath", computed_lexeme: None, line: 162, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 162, }, Token { kind: String, lexeme: "\"lua\"", computed_lexeme: None, line: 162, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 162, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 162, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 166, }, Token { kind: Function, lexeme: "function", computed_lexeme: None, line: 166, }, Token { kind: Identifier, lexeme: "convert", computed_lexeme: None, line: 166, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 166, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 166, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 166, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 167, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 167, }, Token { kind: String, lexeme: "\"print(package.path)\"", computed_lexeme: None, line: 167, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 167, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 168, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 168, }, Token { kind: String, lexeme: "'env LUA_PATH=\"%s\" lua %s > %s'", computed_lexeme: None, line: 168, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 168, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 168, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 168, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 168, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 168, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 168, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 168, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 169, }, Token { kind: Identifier, lexeme: "expected", computed_lexeme: None, line: 169, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 169, }, Token { kind: Identifier, lexeme: "getoutput", computed_lexeme: None, line: 169, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 169, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 169, }, Token { kind: Identifier, lexeme: "expected", computed_lexeme: None, line: 170, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 170, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 170, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 170, }, Token { kind: Identifier, lexeme: "sub", computed_lexeme: None, line: 170, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 170, }, Token { kind: Identifier, lexeme: "expected", computed_lexeme: None, line: 170, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 170, }, Token { kind: Number, lexeme: "1", computed_lexeme: Some( "1", ), line: 170, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 170, }, Token { kind: Minus, lexeme: "-", computed_lexeme: None, line: 170, }, Token { kind: Number, lexeme: "2", computed_lexeme: Some( "2", ), line: 170, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 170, }, Token { kind: If, lexeme: "if", computed_lexeme: None, line: 171, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 171, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 171, }, Token { kind: Identifier, lexeme: "find", computed_lexeme: None, line: 171, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 171, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 171, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 171, }, Token { kind: String, lexeme: "\";;\"", computed_lexeme: None, line: 171, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 171, }, Token { kind: Then, lexeme: "then", computed_lexeme: None, line: 171, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 172, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 172, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 172, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 172, }, Token { kind: Identifier, lexeme: "gsub", computed_lexeme: None, line: 172, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 172, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 172, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 172, }, Token { kind: String, lexeme: "\";;\"", computed_lexeme: None, line: 172, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 172, }, Token { kind: String, lexeme: "\";\"", computed_lexeme: None, line: 172, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 172, }, Token { kind: Identifier, lexeme: "defaultpath", computed_lexeme: None, line: 172, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 172, }, Token { kind: String, lexeme: "\";\"", computed_lexeme: None, line: 172, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 172, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 173, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 173, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 173, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 173, }, Token { kind: Identifier, lexeme: "gsub", computed_lexeme: None, line: 173, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 173, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 173, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 173, }, Token { kind: String, lexeme: "\"^;\"", computed_lexeme: None, line: 173, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 173, }, Token { kind: String, lexeme: "\"\"", computed_lexeme: None, line: 173, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 173, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 174, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 174, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 174, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 174, }, Token { kind: Identifier, lexeme: "gsub", computed_lexeme: None, line: 174, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 174, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 174, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 174, }, Token { kind: String, lexeme: "\";$\"", computed_lexeme: None, line: 174, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 174, }, Token { kind: String, lexeme: "\"\"", computed_lexeme: None, line: 174, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 174, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 175, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 176, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 176, }, Token { kind: Identifier, lexeme: "p", computed_lexeme: None, line: 176, }, Token { kind: DoubleEquals, lexeme: "==", computed_lexeme: None, line: 176, }, Token { kind: Identifier, lexeme: "expected", computed_lexeme: None, line: 176, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 176, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 177, }, Token { kind: Identifier, lexeme: "convert", computed_lexeme: None, line: 179, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 179, }, Token { kind: String, lexeme: "\";\"", computed_lexeme: None, line: 179, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 179, }, Token { kind: Identifier, lexeme: "convert", computed_lexeme: None, line: 180, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 180, }, Token { kind: String, lexeme: "\";;\"", computed_lexeme: None, line: 180, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 180, }, Token { kind: Identifier, lexeme: "convert", computed_lexeme: None, line: 181, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 181, }, Token { kind: String, lexeme: "\"a;;b\"", computed_lexeme: None, line: 181, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 181, }, Token { kind: Identifier, lexeme: "convert", computed_lexeme: None, line: 182, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 182, }, Token { kind: String, lexeme: "\";;b\"", computed_lexeme: None, line: 182, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 182, }, Token { kind: Identifier, lexeme: "convert", computed_lexeme: None, line: 183, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 183, }, Token { kind: String, lexeme: "\"a;;\"", computed_lexeme: None, line: 183, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 183, }, Token { kind: Identifier, lexeme: "convert", computed_lexeme: None, line: 184, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 184, }, Token { kind: String, lexeme: "\"a;b;;c\"", computed_lexeme: None, line: 184, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 184, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 188, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 188, }, Token { kind: String, lexeme: "\"print(1); a=2; return {x=15}\"", computed_lexeme: None, line: 188, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 188, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 189, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 189, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 189, }, Token { kind: String, lexeme: "\"print(a); print(_G['%s'].x)\"", computed_lexeme: None, line: 189, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 189, }, Token { kind: Colon, lexeme: ":", computed_lexeme: None, line: 189, }, Token { kind: Identifier, lexeme: "format", computed_lexeme: None, line: 189, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 189, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 189, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 189, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 189, }, Token { kind: Identifier, lexeme: "otherprog", computed_lexeme: None, line: 189, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 189, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 190, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 190, }, Token { kind: String, lexeme: "'env LUA_PATH=\"?;;\" lua -l %s -l%s -lstring -l io %s > %s'", computed_lexeme: None, line: 190, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 190, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 190, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 190, }, Token { kind: Identifier, lexeme: "otherprog", computed_lexeme: None, line: 190, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 190, }, Token { kind: Identifier, lexeme: "otherprog", computed_lexeme: None, line: 190, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 190, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 190, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 190, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 191, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 191, }, Token { kind: String, lexeme: "\"1\\n2\\n15\\n2\\n15\\n\"", computed_lexeme: None, line: 191, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 191, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 194, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 194, }, Token { kind: String, lexeme: "\"print(str.upper'alo alo', m.max(10, 20))\"", computed_lexeme: None, line: 194, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 194, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 195, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 195, }, Token { kind: String, lexeme: "\"lua -l 'str=string' '-lm=math' -e 'print(m.sin(0))' %s > %s\"", computed_lexeme: None, line: 195, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 195, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 195, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 195, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 195, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 195, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 196, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 196, }, Token { kind: String, lexeme: "\"0.0\\nALO ALO\\t20\\n\"", computed_lexeme: None, line: 196, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 196, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 199, }, Token { kind: Identifier, lexeme: "a", computed_lexeme: None, line: 199, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 199, }, Token { kind: MultilineString, lexeme: "[[\n assert(#arg == 3 and arg[1] == 'a' and\n arg[2] == 'b' and arg[3] == 'c')\n assert(arg[-1] == '--' and arg[-2] == \"-e \" and arg[-3] == '%s')\n assert(arg[4] == undef and arg[-4] == undef)\n local a, b, c = ...\n assert(... == 'a' and a == 'a' and b == 'b' and c == 'c')\n]]", computed_lexeme: None, line: 206, }, Token { kind: Identifier, lexeme: "a", computed_lexeme: None, line: 207, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 207, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 207, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 207, }, Token { kind: Identifier, lexeme: "format", computed_lexeme: None, line: 207, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 207, }, Token { kind: Identifier, lexeme: "a", computed_lexeme: None, line: 207, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 207, }, Token { kind: Identifier, lexeme: "progname", computed_lexeme: None, line: 207, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 207, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 208, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 208, }, Token { kind: Identifier, lexeme: "a", computed_lexeme: None, line: 208, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 208, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 209, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 209, }, Token { kind: String, lexeme: "'lua \"-e \" -- %s a b c'", computed_lexeme: None, line: 209, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 209, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 209, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 209, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 212, }, Token { kind: String, lexeme: "\"assert(arg)\"", computed_lexeme: None, line: 212, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 213, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 213, }, Token { kind: String, lexeme: "\"assert(arg)\"", computed_lexeme: None, line: 213, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 213, }, Token { kind: Identifier, lexeme: "otherprog", computed_lexeme: None, line: 213, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 213, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 214, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 214, }, Token { kind: String, lexeme: "'env LUA_PATH=\"?;;\" lua -l%s - < %s'", computed_lexeme: None, line: 214, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 214, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 214, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 214, }, Token { kind: Identifier, lexeme: "otherprog", computed_lexeme: None, line: 214, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 214, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 217, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 217, }, Token { kind: String, lexeme: "'echo \"print(...)\" | lua -e \"arg[1] = 100\" - > %s'", computed_lexeme: None, line: 217, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 217, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 217, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 217, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 218, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 218, }, Token { kind: String, lexeme: "\"100\\n\"", computed_lexeme: None, line: 218, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 218, }, Token { kind: Identifier, lexeme: "NoRun", computed_lexeme: None, line: 219, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 219, }, Token { kind: String, lexeme: "\"'arg' is not a table\"", computed_lexeme: None, line: 219, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 219, }, Token { kind: String, lexeme: "'echo \"\" | lua -e \"arg = 1\" -'", computed_lexeme: None, line: 219, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 219, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 222, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 222, }, Token { kind: String, lexeme: "'echo 10 | lua -e \"print=nil\" -i > /dev/null 2> %s'", computed_lexeme: None, line: 222, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 222, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 222, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 222, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 223, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 223, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 223, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 223, }, Token { kind: Identifier, lexeme: "find", computed_lexeme: None, line: 223, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 223, }, Token { kind: Identifier, lexeme: "getoutput", computed_lexeme: None, line: 223, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 223, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 223, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 223, }, Token { kind: String, lexeme: "\"error calling 'print'\"", computed_lexeme: None, line: 223, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 223, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 223, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 226, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 226, }, Token { kind: String, lexeme: "'echo \"io.stderr:write(1000)\\ncont\" | lua -e \"require\\'debug\\'.debug()\" 2> %s'", computed_lexeme: None, line: 226, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 226, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 226, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 226, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 227, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 227, }, Token { kind: String, lexeme: "\"lua_debug> 1000lua_debug> \"", computed_lexeme: None, line: 227, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 227, }, Token { kind: Identifier, lexeme: "print", computed_lexeme: None, line: 230, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 230, }, Token { kind: String, lexeme: "\"testing warnings\"", computed_lexeme: None, line: 230, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 230, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 233, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 233, }, Token { kind: String, lexeme: "'echo \"io.stderr:write(1); warn[[XXX]]\" | lua 2> %s'", computed_lexeme: None, line: 233, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 233, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 233, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 233, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 234, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 234, }, Token { kind: String, lexeme: "\"1\"", computed_lexeme: None, line: 234, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 234, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 236, }, Token { kind: MultilineString, lexeme: "[[\nwarn(\"@allow\") -- unknown control, ignored\nwarn(\"@off\", \"XXX\", \"@off\") -- these are not control messages\nwarn(\"@off\") -- this one is\nwarn(\"@on\", \"YYY\", \"@on\") -- not control, but warn is off\nwarn(\"@off\") -- keep it off\nwarn(\"@on\") -- restart warnings\nwarn(\"\", \"@on\") -- again, no control, real warning\nwarn(\"@on\") -- keep it \"started\"\nwarn(\"Z\", \"Z\", \"Z\") -- common warning\n]]", computed_lexeme: None, line: 246, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 247, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 247, }, Token { kind: String, lexeme: "'lua -W %s 2> %s'", computed_lexeme: None, line: 247, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 247, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 247, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 247, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 247, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 247, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 248, }, Token { kind: MultilineString, lexeme: "[[\nLua warning: @offXXX@off\nLua warning: @on\nLua warning: ZZZ\n]]", computed_lexeme: None, line: 252, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 254, }, Token { kind: MultilineString, lexeme: "[[\nwarn(\"@allow\")\n-- create two objects to be finalized when closing state\n-- the errors in the finalizers must generate warnings\nu1 = setmetatable({}, {__gc = function () error(\"XYZ\") end})\nu2 = setmetatable({}, {__gc = function () error(\"ZYX\") end})\n]]", computed_lexeme: None, line: 260, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 261, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 261, }, Token { kind: String, lexeme: "'lua -W %s 2> %s'", computed_lexeme: None, line: 261, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 261, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 261, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 261, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 261, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 261, }, Token { kind: Identifier, lexeme: "checkprogout", computed_lexeme: None, line: 262, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 262, }, Token { kind: String, lexeme: "\"ZYX)\\nXYZ)\\n\"", computed_lexeme: None, line: 262, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 262, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 266, }, Token { kind: MultilineString, lexeme: "[[\n-- should be called last\nprint(\"creating 1\")\nsetmetatable({}, {__gc = function () print(1) end})\n\nprint(\"creating 2\")\nsetmetatable({}, {__gc = function ()\n print(\"2\")\n print(\"creating 3\")\n -- this finalizer should not be called, as object will be\n -- created after 'lua_close' has been called\n setmetatable({}, {__gc = function () print(3) end})\n print(collectgarbage()) -- cannot call collector here\n os.exit(0, true)\nend})\n]]", computed_lexeme: None, line: 281, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 282, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 282, }, Token { kind: String, lexeme: "'lua -W %s > %s'", computed_lexeme: None, line: 282, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 282, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 282, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 282, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 282, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 282, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 283, }, Token { kind: MultilineString, lexeme: "[[\ncreating 1\ncreating 2\n2\ncreating 3\nnil\n1\n]]", computed_lexeme: None, line: 290, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 294, }, Token { kind: MultilineString, lexeme: "[[print(({...})[30])]]", computed_lexeme: None, line: 294, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 295, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 295, }, Token { kind: String, lexeme: "'lua %s %s > %s'", computed_lexeme: None, line: 295, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 295, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 295, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 295, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 295, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 295, }, Token { kind: Identifier, lexeme: "rep", computed_lexeme: None, line: 295, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 295, }, Token { kind: String, lexeme: "\" a\"", computed_lexeme: None, line: 295, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 295, }, Token { kind: Number, lexeme: "30", computed_lexeme: Some( "30", ), line: 295, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 295, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 295, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 295, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 295, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 296, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 296, }, Token { kind: String, lexeme: "\"a\\n\"", computed_lexeme: None, line: 296, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 296, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 298, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 298, }, Token { kind: MultilineString, lexeme: "[[lua \"-eprint(1)\" -ea=3 -e \"print(a)\" > %s]]", computed_lexeme: None, line: 298, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 298, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 298, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 298, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 299, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 299, }, Token { kind: String, lexeme: "\"1\\n3\\n\"", computed_lexeme: None, line: 299, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 299, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 302, }, Token { kind: MultilineString, lexeme: "[[\n(6*2-6) -- ===\na =\n10\nprint(a)\na]]", computed_lexeme: None, line: 307, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 308, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 308, }, Token { kind: MultilineString, lexeme: "[[lua -e\"_PROMPT='' _PROMPT2=''\" -i < %s > %s]]", computed_lexeme: None, line: 308, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 308, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 308, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 308, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 308, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 308, }, Token { kind: Identifier, lexeme: "checkprogout", computed_lexeme: None, line: 309, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 309, }, Token { kind: String, lexeme: "\"6\\n10\\n10\\n\\n\"", computed_lexeme: None, line: 309, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 309, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 311, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 311, }, Token { kind: String, lexeme: "\"a = [[b\\nc\\nd\\ne]]\\n=a\"", computed_lexeme: None, line: 311, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 311, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 312, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 312, }, Token { kind: MultilineString, lexeme: "[[lua -e\"_PROMPT='' _PROMPT2=''\" -i < %s > %s]]", computed_lexeme: None, line: 312, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 312, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 312, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 312, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 312, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 312, }, Token { kind: Identifier, lexeme: "checkprogout", computed_lexeme: None, line: 313, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 313, }, Token { kind: String, lexeme: "\"b\\nc\\nd\\ne\\n\\n\"", computed_lexeme: None, line: 313, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 313, }, Token { kind: Identifier, lexeme: "prompt", computed_lexeme: None, line: 315, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 315, }, Token { kind: String, lexeme: "\"alo\"", computed_lexeme: None, line: 315, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 316, }, Token { kind: MultilineString, lexeme: "[[ --\na = 2\n]]", computed_lexeme: None, line: 318, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 319, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 319, }, Token { kind: MultilineString, lexeme: "[[lua \"-e_PROMPT='%s'\" -i < %s > %s]]", computed_lexeme: None, line: 319, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 319, }, Token { kind: Identifier, lexeme: "prompt", computed_lexeme: None, line: 319, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 319, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 319, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 319, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 319, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 319, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 320, }, Token { kind: Identifier, lexeme: "t", computed_lexeme: None, line: 320, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 320, }, Token { kind: Identifier, lexeme: "getoutput", computed_lexeme: None, line: 320, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 320, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 320, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 321, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 321, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 321, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 321, }, Token { kind: Identifier, lexeme: "find", computed_lexeme: None, line: 321, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 321, }, Token { kind: Identifier, lexeme: "t", computed_lexeme: None, line: 321, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 321, }, Token { kind: Identifier, lexeme: "prompt", computed_lexeme: None, line: 321, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 321, }, Token { kind: String, lexeme: "\".*\"", computed_lexeme: None, line: 321, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 321, }, Token { kind: Identifier, lexeme: "prompt", computed_lexeme: None, line: 321, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 321, }, Token { kind: String, lexeme: "\".*\"", computed_lexeme: None, line: 321, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 321, }, Token { kind: Identifier, lexeme: "prompt", computed_lexeme: None, line: 321, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 321, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 321, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 324, }, Token { kind: MultilineString, lexeme: "[[ --\na = 2\n]]", computed_lexeme: None, line: 326, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 327, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 327, }, Token { kind: MultilineString, lexeme: "[[lua -i < %s > %s]]", computed_lexeme: None, line: 327, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 327, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 327, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 327, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 327, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 327, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 328, }, Token { kind: Identifier, lexeme: "t", computed_lexeme: None, line: 328, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 328, }, Token { kind: Identifier, lexeme: "getoutput", computed_lexeme: None, line: 328, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 328, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 328, }, Token { kind: Identifier, lexeme: "prompt", computed_lexeme: None, line: 329, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 329, }, Token { kind: String, lexeme: "\"> \"", computed_lexeme: None, line: 329, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 330, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 330, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 330, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 330, }, Token { kind: Identifier, lexeme: "find", computed_lexeme: None, line: 330, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 330, }, Token { kind: Identifier, lexeme: "t", computed_lexeme: None, line: 330, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 330, }, Token { kind: Identifier, lexeme: "prompt", computed_lexeme: None, line: 330, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 330, }, Token { kind: String, lexeme: "\".*\"", computed_lexeme: None, line: 330, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 330, }, Token { kind: Identifier, lexeme: "prompt", computed_lexeme: None, line: 330, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 330, }, Token { kind: String, lexeme: "\".*\"", computed_lexeme: None, line: 330, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 330, }, Token { kind: Identifier, lexeme: "prompt", computed_lexeme: None, line: 330, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 330, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 330, }, Token { kind: Identifier, lexeme: "prompt", computed_lexeme: None, line: 334, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 334, }, Token { kind: String, lexeme: "\"local C = 0;\\z\n _PROMPT=setmetatable({},{__tostring = function () \\z\n C = C + 1; return C end})\"", computed_lexeme: None, line: 337, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 338, }, Token { kind: MultilineString, lexeme: "[[ --\na = 2\n]]", computed_lexeme: None, line: 340, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 341, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 341, }, Token { kind: MultilineString, lexeme: "[[lua -e \"%s\" -i < %s > %s]]", computed_lexeme: None, line: 341, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 341, }, Token { kind: Identifier, lexeme: "prompt", computed_lexeme: None, line: 341, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 341, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 341, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 341, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 341, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 341, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 342, }, Token { kind: Identifier, lexeme: "t", computed_lexeme: None, line: 342, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 342, }, Token { kind: Identifier, lexeme: "getoutput", computed_lexeme: None, line: 342, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 342, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 342, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 343, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 343, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 343, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 343, }, Token { kind: Identifier, lexeme: "find", computed_lexeme: None, line: 343, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 343, }, Token { kind: Identifier, lexeme: "t", computed_lexeme: None, line: 343, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 343, }, Token { kind: MultilineString, lexeme: "[[\n1 --\n2a = 2\n3\n]]", computed_lexeme: None, line: 347, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 347, }, Token { kind: Number, lexeme: "1", computed_lexeme: Some( "1", ), line: 347, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 347, }, Token { kind: True, lexeme: "true", computed_lexeme: None, line: 347, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 347, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 347, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 351, }, Token { kind: MultilineString, lexeme: "[[\ndebug = require \"debug\"\nm = {x=0}\nsetmetatable(m, {__tostring = function(x)\n return tostring(debug.getinfo(4).currentline + x.x)\nend})\nerror(m)\n]]", computed_lexeme: None, line: 358, }, Token { kind: Identifier, lexeme: "NoRun", computed_lexeme: None, line: 359, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 359, }, Token { kind: Identifier, lexeme: "progname", computed_lexeme: None, line: 359, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 359, }, Token { kind: String, lexeme: "\": 6\\n\"", computed_lexeme: None, line: 359, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 359, }, Token { kind: MultilineString, lexeme: "[[lua %s]]", computed_lexeme: None, line: 359, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 359, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 359, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 359, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 361, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 361, }, Token { kind: String, lexeme: "\"error{}\"", computed_lexeme: None, line: 361, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 361, }, Token { kind: Identifier, lexeme: "NoRun", computed_lexeme: None, line: 362, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 362, }, Token { kind: String, lexeme: "\"error object is a table value\"", computed_lexeme: None, line: 362, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 362, }, Token { kind: MultilineString, lexeme: "[[lua %s]]", computed_lexeme: None, line: 362, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 362, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 362, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 362, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 366, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 366, }, Token { kind: MultilineString, lexeme: "[=[ --\nfunction f ( x )\n local a = [[\nxuxu\n]]\n local b = \"\\\nxuxu\\n\"\n if x == 11 then return 1 + 12 , 2 + 20 end --[[ test multiple returns ]]\n return x + 1\n --\\\\\nend\nreturn( f( 100 ) )\nassert( a == b )\ndo return f( 11 ) end ]=]", computed_lexeme: None, line: 379, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 380, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 380, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 380, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 380, }, Token { kind: Identifier, lexeme: "gsub", computed_lexeme: None, line: 380, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 380, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 380, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 380, }, Token { kind: String, lexeme: "' '", computed_lexeme: None, line: 380, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 380, }, Token { kind: String, lexeme: "'\\n\\n'", computed_lexeme: None, line: 380, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 380, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 381, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 381, }, Token { kind: Identifier, lexeme: "s", computed_lexeme: None, line: 381, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 381, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 382, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 382, }, Token { kind: MultilineString, lexeme: "[[lua -e\"_PROMPT='' _PROMPT2=''\" -i < %s > %s]]", computed_lexeme: None, line: 382, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 382, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 382, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 382, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 382, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 382, }, Token { kind: Identifier, lexeme: "checkprogout", computed_lexeme: None, line: 383, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 383, }, Token { kind: String, lexeme: "\"101\\n13\\t22\\n\\n\"", computed_lexeme: None, line: 383, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 383, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 385, }, Token { kind: MultilineString, lexeme: "[[#comment in 1st line without \\n at the end]]", computed_lexeme: None, line: 385, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 386, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 386, }, Token { kind: String, lexeme: "'lua %s'", computed_lexeme: None, line: 386, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 386, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 386, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 386, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 388, }, Token { kind: MultilineString, lexeme: "[[#test line number when file starts with comment line\ndebug = require\"debug\"\nprint(debug.getinfo(1).currentline)\n]]", computed_lexeme: None, line: 391, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 392, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 392, }, Token { kind: String, lexeme: "'lua %s > %s'", computed_lexeme: None, line: 392, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 392, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 392, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 392, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 392, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 392, }, Token { kind: Identifier, lexeme: "checkprogout", computed_lexeme: None, line: 393, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 393, }, Token { kind: String, lexeme: "'3\\n'", computed_lexeme: None, line: 393, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 393, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 396, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 396, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 396, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 396, }, Token { kind: Identifier, lexeme: "format", computed_lexeme: None, line: 396, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 396, }, Token { kind: MultilineString, lexeme: "[[io.output(%q); io.write('alo')]]", computed_lexeme: None, line: 396, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 396, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 396, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 396, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 396, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 397, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 397, }, Token { kind: String, lexeme: "'lua %s'", computed_lexeme: None, line: 397, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 397, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 397, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 397, }, Token { kind: Identifier, lexeme: "checkout", computed_lexeme: None, line: 398, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 398, }, Token { kind: String, lexeme: "'alo'", computed_lexeme: None, line: 398, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 398, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 401, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 401, }, Token { kind: MultilineString, lexeme: "[[lua -v -e\"print'hello'\" > %s]]", computed_lexeme: None, line: 401, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 401, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 401, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 401, }, Token { kind: Identifier, lexeme: "t", computed_lexeme: None, line: 402, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 402, }, Token { kind: Identifier, lexeme: "getoutput", computed_lexeme: None, line: 402, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 402, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 402, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 403, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 403, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 403, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 403, }, Token { kind: Identifier, lexeme: "find", computed_lexeme: None, line: 403, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 403, }, Token { kind: Identifier, lexeme: "t", computed_lexeme: None, line: 403, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 403, }, Token { kind: String, lexeme: "\"PUC%-Rio\\nhello\"", computed_lexeme: None, line: 403, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 403, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 403, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 407, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 407, }, Token { kind: String, lexeme: "\"os.exit(nil, true)\"", computed_lexeme: None, line: 407, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 407, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 408, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 408, }, Token { kind: String, lexeme: "'lua %s'", computed_lexeme: None, line: 408, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 408, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 408, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 408, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 409, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 409, }, Token { kind: String, lexeme: "\"os.exit(0, true)\"", computed_lexeme: None, line: 409, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 409, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 410, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 410, }, Token { kind: String, lexeme: "'lua %s'", computed_lexeme: None, line: 410, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 410, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 410, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 410, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 411, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 411, }, Token { kind: String, lexeme: "\"os.exit(true, true)\"", computed_lexeme: None, line: 411, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 411, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 412, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 412, }, Token { kind: String, lexeme: "'lua %s'", computed_lexeme: None, line: 412, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 412, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 412, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 412, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 413, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 413, }, Token { kind: String, lexeme: "\"os.exit(1, true)\"", computed_lexeme: None, line: 413, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 413, }, Token { kind: Identifier, lexeme: "NoRun", computed_lexeme: None, line: 414, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 414, }, Token { kind: String, lexeme: "\"\"", computed_lexeme: None, line: 414, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 414, }, Token { kind: String, lexeme: "\"lua %s\"", computed_lexeme: None, line: 414, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 414, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 414, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 414, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 415, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 415, }, Token { kind: String, lexeme: "\"os.exit(false, true)\"", computed_lexeme: None, line: 415, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 415, }, Token { kind: Identifier, lexeme: "NoRun", computed_lexeme: None, line: 416, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 416, }, Token { kind: String, lexeme: "\"\"", computed_lexeme: None, line: 416, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 416, }, Token { kind: String, lexeme: "\"lua %s\"", computed_lexeme: None, line: 416, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 416, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 416, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 416, }, Token { kind: Identifier, lexeme: "prepfile", computed_lexeme: None, line: 420, }, Token { kind: MultilineString, lexeme: "[[\n local x = setmetatable({},\n {__close = function (self, err)\n assert(err == nil)\n print(\"Ok\")\n end})\n local e1 = setmetatable({}, {__close = function () print(120) end})\n os.exit(true, true)\n]]", computed_lexeme: None, line: 428, }, Token { kind: Identifier, lexeme: "RUN", computed_lexeme: None, line: 429, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 429, }, Token { kind: String, lexeme: "'lua %s > %s'", computed_lexeme: None, line: 429, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 429, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 429, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 429, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 429, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 429, }, Token { kind: Identifier, lexeme: "checkprogout", computed_lexeme: None, line: 430, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 430, }, Token { kind: String, lexeme: "\"120\\nOk\\n\"", computed_lexeme: None, line: 430, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 430, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 434, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 434, }, Token { kind: Identifier, lexeme: "os", computed_lexeme: None, line: 434, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 434, }, Token { kind: Identifier, lexeme: "remove", computed_lexeme: None, line: 434, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 434, }, Token { kind: Identifier, lexeme: "prog", computed_lexeme: None, line: 434, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 434, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 434, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 435, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 435, }, Token { kind: Identifier, lexeme: "os", computed_lexeme: None, line: 435, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 435, }, Token { kind: Identifier, lexeme: "remove", computed_lexeme: None, line: 435, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 435, }, Token { kind: Identifier, lexeme: "otherprog", computed_lexeme: None, line: 435, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 435, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 435, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 436, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 436, }, Token { kind: Not, lexeme: "not", computed_lexeme: None, line: 436, }, Token { kind: Identifier, lexeme: "os", computed_lexeme: None, line: 436, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 436, }, Token { kind: Identifier, lexeme: "remove", computed_lexeme: None, line: 436, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 436, }, Token { kind: Identifier, lexeme: "out", computed_lexeme: None, line: 436, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 436, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 436, }, Token { kind: Identifier, lexeme: "NoRun", computed_lexeme: None, line: 439, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 439, }, Token { kind: String, lexeme: "\"unrecognized option '-h'\"", computed_lexeme: None, line: 439, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 439, }, Token { kind: String, lexeme: "\"lua -h\"", computed_lexeme: None, line: 439, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 439, }, Token { kind: Identifier, lexeme: "NoRun", computed_lexeme: None, line: 440, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 440, }, Token { kind: String, lexeme: "\"unrecognized option '---'\"", computed_lexeme: None, line: 440, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 440, }, Token { kind: String, lexeme: "\"lua ---\"", computed_lexeme: None, line: 440, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 440, }, Token { kind: Identifier, lexeme: "NoRun", computed_lexeme: None, line: 441, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 441, }, Token { kind: String, lexeme: "\"unrecognized option '-Ex'\"", computed_lexeme: None, line: 441, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 441, }, Token { kind: String, lexeme: "\"lua -Ex\"", computed_lexeme: None, line: 441, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 441, }, Token { kind: Identifier, lexeme: "NoRun", computed_lexeme: None, line: 442, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 442, }, Token { kind: String, lexeme: "\"unrecognized option '-vv'\"", computed_lexeme: None, line: 442, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 442, }, Token { kind: String, lexeme: "\"lua -vv\"", computed_lexeme: None, line: 442, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 442, }, Token { kind: Identifier, lexeme: "NoRun", computed_lexeme: None, line: 443, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 443, }, Token { kind: String, lexeme: "\"unrecognized option '-iv'\"", computed_lexeme: None, line: 443, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 443, }, Token { kind: String, lexeme: "\"lua -iv\"", computed_lexeme: None, line: 443, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 443, }, Token { kind: Identifier, lexeme: "NoRun", computed_lexeme: None, line: 444, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 444, }, Token { kind: String, lexeme: "\"'-e' needs argument\"", computed_lexeme: None, line: 444, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 444, }, Token { kind: String, lexeme: "\"lua -e\"", computed_lexeme: None, line: 444, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 444, }, Token { kind: Identifier, lexeme: "NoRun", computed_lexeme: None, line: 445, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 445, }, Token { kind: String, lexeme: "\"syntax error\"", computed_lexeme: None, line: 445, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 445, }, Token { kind: String, lexeme: "\"lua -e a\"", computed_lexeme: None, line: 445, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 445, }, Token { kind: Identifier, lexeme: "NoRun", computed_lexeme: None, line: 446, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 446, }, Token { kind: String, lexeme: "\"'-l' needs argument\"", computed_lexeme: None, line: 446, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 446, }, Token { kind: String, lexeme: "\"lua -l\"", computed_lexeme: None, line: 446, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 446, }, Token { kind: If, lexeme: "if", computed_lexeme: None, line: 449, }, Token { kind: Identifier, lexeme: "T", computed_lexeme: None, line: 449, }, Token { kind: Then, lexeme: "then", computed_lexeme: None, line: 449, }, Token { kind: Identifier, lexeme: "print", computed_lexeme: None, line: 450, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 450, }, Token { kind: String, lexeme: "\"testing 'not enough memory' to create a state\"", computed_lexeme: None, line: 450, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 450, }, Token { kind: Identifier, lexeme: "NoRun", computed_lexeme: None, line: 451, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 451, }, Token { kind: String, lexeme: "\"not enough memory\"", computed_lexeme: None, line: 451, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 451, }, Token { kind: String, lexeme: "\"env MEMLIMIT=100 lua\"", computed_lexeme: None, line: 451, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 451, }, Token { kind: Identifier, lexeme: "warn", computed_lexeme: None, line: 454, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 454, }, Token { kind: String, lexeme: "\"@store\"", computed_lexeme: None, line: 454, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 454, }, Token { kind: Identifier, lexeme: "warn", computed_lexeme: None, line: 455, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 455, }, Token { kind: String, lexeme: "\"@123\"", computed_lexeme: None, line: 455, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 455, }, Token { kind: String, lexeme: "\"456\"", computed_lexeme: None, line: 455, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 455, }, Token { kind: String, lexeme: "\"789\"", computed_lexeme: None, line: 455, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 455, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 456, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 456, }, Token { kind: Identifier, lexeme: "_WARN", computed_lexeme: None, line: 456, }, Token { kind: DoubleEquals, lexeme: "==", computed_lexeme: None, line: 456, }, Token { kind: String, lexeme: "\"@123456789\"", computed_lexeme: None, line: 456, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 456, }, Token { kind: Semicolon, lexeme: ";", computed_lexeme: None, line: 456, }, Token { kind: Identifier, lexeme: "_WARN", computed_lexeme: None, line: 456, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 456, }, Token { kind: False, lexeme: "false", computed_lexeme: None, line: 456, }, Token { kind: Identifier, lexeme: "warn", computed_lexeme: None, line: 458, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 458, }, Token { kind: String, lexeme: "\"zip\"", computed_lexeme: None, line: 458, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 458, }, Token { kind: String, lexeme: "\"\"", computed_lexeme: None, line: 458, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 458, }, Token { kind: String, lexeme: "\" \"", computed_lexeme: None, line: 458, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 458, }, Token { kind: String, lexeme: "\"zap\"", computed_lexeme: None, line: 458, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 458, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 459, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 459, }, Token { kind: Identifier, lexeme: "_WARN", computed_lexeme: None, line: 459, }, Token { kind: DoubleEquals, lexeme: "==", computed_lexeme: None, line: 459, }, Token { kind: String, lexeme: "\"zip zap\"", computed_lexeme: None, line: 459, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 459, }, Token { kind: Semicolon, lexeme: ";", computed_lexeme: None, line: 459, }, Token { kind: Identifier, lexeme: "_WARN", computed_lexeme: None, line: 459, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 459, }, Token { kind: False, lexeme: "false", computed_lexeme: None, line: 459, }, Token { kind: Identifier, lexeme: "warn", computed_lexeme: None, line: 460, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 460, }, Token { kind: String, lexeme: "\"ZIP\"", computed_lexeme: None, line: 460, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 460, }, Token { kind: String, lexeme: "\"\"", computed_lexeme: None, line: 460, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 460, }, Token { kind: String, lexeme: "\" \"", computed_lexeme: None, line: 460, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 460, }, Token { kind: String, lexeme: "\"ZAP\"", computed_lexeme: None, line: 460, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 460, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 461, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 461, }, Token { kind: Identifier, lexeme: "_WARN", computed_lexeme: None, line: 461, }, Token { kind: DoubleEquals, lexeme: "==", computed_lexeme: None, line: 461, }, Token { kind: String, lexeme: "\"ZIP ZAP\"", computed_lexeme: None, line: 461, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 461, }, Token { kind: Semicolon, lexeme: ";", computed_lexeme: None, line: 461, }, Token { kind: Identifier, lexeme: "_WARN", computed_lexeme: None, line: 461, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 461, }, Token { kind: False, lexeme: "false", computed_lexeme: None, line: 461, }, Token { kind: Identifier, lexeme: "warn", computed_lexeme: None, line: 462, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 462, }, Token { kind: String, lexeme: "\"@normal\"", computed_lexeme: None, line: 462, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 462, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 463, }, Token { kind: Do, lexeme: "do", computed_lexeme: None, line: 465, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 467, }, Token { kind: Identifier, lexeme: "st", computed_lexeme: None, line: 467, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 467, }, Token { kind: Identifier, lexeme: "msg", computed_lexeme: None, line: 467, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 467, }, Token { kind: Identifier, lexeme: "pcall", computed_lexeme: None, line: 467, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 467, }, Token { kind: Identifier, lexeme: "warn", computed_lexeme: None, line: 467, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 467, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 468, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 468, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 468, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 468, }, Token { kind: Identifier, lexeme: "find", computed_lexeme: None, line: 468, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 468, }, Token { kind: Identifier, lexeme: "msg", computed_lexeme: None, line: 468, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 468, }, Token { kind: String, lexeme: "\"string expected\"", computed_lexeme: None, line: 468, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 468, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 468, }, Token { kind: Identifier, lexeme: "st", computed_lexeme: None, line: 472, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 472, }, Token { kind: Identifier, lexeme: "msg", computed_lexeme: None, line: 472, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 472, }, Token { kind: Identifier, lexeme: "pcall", computed_lexeme: None, line: 472, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 472, }, Token { kind: Identifier, lexeme: "warn", computed_lexeme: None, line: 472, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 472, }, Token { kind: String, lexeme: "\"SHOULD NOT APPEAR\"", computed_lexeme: None, line: 472, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 472, }, Token { kind: LeftBrace, lexeme: "{", computed_lexeme: None, line: 472, }, Token { kind: RightBrace, lexeme: "}", computed_lexeme: None, line: 472, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 472, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 473, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 473, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 473, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 473, }, Token { kind: Identifier, lexeme: "find", computed_lexeme: None, line: 473, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 473, }, Token { kind: Identifier, lexeme: "msg", computed_lexeme: None, line: 473, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 473, }, Token { kind: String, lexeme: "\"string expected\"", computed_lexeme: None, line: 473, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 473, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 473, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 474, }, Token { kind: Identifier, lexeme: "print", computed_lexeme: None, line: 476, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 476, }, Token { kind: String, lexeme: "'+'", computed_lexeme: None, line: 476, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 476, }, Token { kind: Identifier, lexeme: "print", computed_lexeme: None, line: 478, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 478, }, Token { kind: String, lexeme: "'testing Ctrl C'", computed_lexeme: None, line: 478, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 478, }, Token { kind: Do, lexeme: "do", computed_lexeme: None, line: 479, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 481, }, Token { kind: Function, lexeme: "function", computed_lexeme: None, line: 481, }, Token { kind: Identifier, lexeme: "kill", computed_lexeme: None, line: 481, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 481, }, Token { kind: Identifier, lexeme: "pid", computed_lexeme: None, line: 481, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 481, }, Token { kind: Return, lexeme: "return", computed_lexeme: None, line: 482, }, Token { kind: Identifier, lexeme: "os", computed_lexeme: None, line: 482, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 482, }, Token { kind: Identifier, lexeme: "execute", computed_lexeme: None, line: 482, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 482, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 482, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 482, }, Token { kind: Identifier, lexeme: "format", computed_lexeme: None, line: 482, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 482, }, Token { kind: String, lexeme: "'kill -INT %s 2> /dev/null'", computed_lexeme: None, line: 482, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 482, }, Token { kind: Identifier, lexeme: "pid", computed_lexeme: None, line: 482, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 482, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 482, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 483, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 487, }, Token { kind: Function, lexeme: "function", computed_lexeme: None, line: 487, }, Token { kind: Identifier, lexeme: "runback", computed_lexeme: None, line: 487, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 487, }, Token { kind: Identifier, lexeme: "luaprg", computed_lexeme: None, line: 487, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 487, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 489, }, Token { kind: Identifier, lexeme: "shellprg", computed_lexeme: None, line: 489, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 489, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 489, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 489, }, Token { kind: Identifier, lexeme: "format", computed_lexeme: None, line: 489, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 489, }, Token { kind: String, lexeme: "'%s -e \"%s\" & echo $!'", computed_lexeme: None, line: 489, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 489, }, Token { kind: Identifier, lexeme: "progname", computed_lexeme: None, line: 489, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 489, }, Token { kind: Identifier, lexeme: "luaprg", computed_lexeme: None, line: 489, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 489, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 490, }, Token { kind: Identifier, lexeme: "f", computed_lexeme: None, line: 490, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 490, }, Token { kind: Identifier, lexeme: "io", computed_lexeme: None, line: 490, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 490, }, Token { kind: Identifier, lexeme: "popen", computed_lexeme: None, line: 490, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 490, }, Token { kind: Identifier, lexeme: "shellprg", computed_lexeme: None, line: 490, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 490, }, Token { kind: String, lexeme: "\"r\"", computed_lexeme: None, line: 490, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 490, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 491, }, Token { kind: Identifier, lexeme: "pid", computed_lexeme: None, line: 491, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 491, }, Token { kind: Identifier, lexeme: "f", computed_lexeme: None, line: 491, }, Token { kind: Colon, lexeme: ":", computed_lexeme: None, line: 491, }, Token { kind: Identifier, lexeme: "read", computed_lexeme: None, line: 491, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 491, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 491, }, Token { kind: Identifier, lexeme: "print", computed_lexeme: None, line: 492, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 492, }, Token { kind: String, lexeme: "\"(if test fails now, it may leave a Lua script running in \\z\n background, pid \"", computed_lexeme: None, line: 493, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 493, }, Token { kind: Identifier, lexeme: "pid", computed_lexeme: None, line: 493, }, Token { kind: DoubleDot, lexeme: "..", computed_lexeme: None, line: 493, }, Token { kind: String, lexeme: "\")\"", computed_lexeme: None, line: 493, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 493, }, Token { kind: Return, lexeme: "return", computed_lexeme: None, line: 494, }, Token { kind: Identifier, lexeme: "f", computed_lexeme: None, line: 494, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 494, }, Token { kind: Identifier, lexeme: "pid", computed_lexeme: None, line: 494, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 495, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 498, }, Token { kind: Identifier, lexeme: "f", computed_lexeme: None, line: 498, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 498, }, Token { kind: Identifier, lexeme: "pid", computed_lexeme: None, line: 498, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 498, }, Token { kind: Identifier, lexeme: "runback", computed_lexeme: None, line: 498, }, Token { kind: MultilineString, lexeme: "[[\n pcall(function () print(12); while true do end end); print(42)]]", computed_lexeme: None, line: 499, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 501, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 501, }, Token { kind: Identifier, lexeme: "f", computed_lexeme: None, line: 501, }, Token { kind: Colon, lexeme: ":", computed_lexeme: None, line: 501, }, Token { kind: Identifier, lexeme: "read", computed_lexeme: None, line: 501, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 501, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 501, }, Token { kind: DoubleEquals, lexeme: "==", computed_lexeme: None, line: 501, }, Token { kind: String, lexeme: "\"12\"", computed_lexeme: None, line: 501, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 501, }, Token { kind: Identifier, lexeme: "kill", computed_lexeme: None, line: 502, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 502, }, Token { kind: Identifier, lexeme: "pid", computed_lexeme: None, line: 502, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 502, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 504, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 504, }, Token { kind: Identifier, lexeme: "f", computed_lexeme: None, line: 504, }, Token { kind: Colon, lexeme: ":", computed_lexeme: None, line: 504, }, Token { kind: Identifier, lexeme: "read", computed_lexeme: None, line: 504, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 504, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 504, }, Token { kind: DoubleEquals, lexeme: "==", computed_lexeme: None, line: 504, }, Token { kind: String, lexeme: "\"42\"", computed_lexeme: None, line: 504, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 504, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 505, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 505, }, Token { kind: Identifier, lexeme: "f", computed_lexeme: None, line: 505, }, Token { kind: Colon, lexeme: ":", computed_lexeme: None, line: 505, }, Token { kind: Identifier, lexeme: "close", computed_lexeme: None, line: 505, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 505, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 505, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 505, }, Token { kind: Identifier, lexeme: "print", computed_lexeme: None, line: 506, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 506, }, Token { kind: String, lexeme: "\"done\"", computed_lexeme: None, line: 506, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 506, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 509, }, Token { kind: Identifier, lexeme: "f", computed_lexeme: None, line: 509, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 509, }, Token { kind: Identifier, lexeme: "pid", computed_lexeme: None, line: 509, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 509, }, Token { kind: Identifier, lexeme: "runback", computed_lexeme: None, line: 509, }, Token { kind: MultilineString, lexeme: "[[\n print(15); string.find(string.rep('a', 100000), '.*b')]]", computed_lexeme: None, line: 510, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 512, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 512, }, Token { kind: Identifier, lexeme: "f", computed_lexeme: None, line: 512, }, Token { kind: Colon, lexeme: ":", computed_lexeme: None, line: 512, }, Token { kind: Identifier, lexeme: "read", computed_lexeme: None, line: 512, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 512, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 512, }, Token { kind: DoubleEquals, lexeme: "==", computed_lexeme: None, line: 512, }, Token { kind: String, lexeme: "\"15\"", computed_lexeme: None, line: 512, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 512, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 513, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 513, }, Token { kind: Identifier, lexeme: "os", computed_lexeme: None, line: 513, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 513, }, Token { kind: Identifier, lexeme: "execute", computed_lexeme: None, line: 513, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 513, }, Token { kind: String, lexeme: "\"sleep 1\"", computed_lexeme: None, line: 513, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 513, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 513, }, Token { kind: Local, lexeme: "local", computed_lexeme: None, line: 515, }, Token { kind: Identifier, lexeme: "n", computed_lexeme: None, line: 515, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 515, }, Token { kind: Number, lexeme: "100", computed_lexeme: Some( "100", ), line: 515, }, Token { kind: For, lexeme: "for", computed_lexeme: None, line: 516, }, Token { kind: Identifier, lexeme: "i", computed_lexeme: None, line: 516, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 516, }, Token { kind: Number, lexeme: "0", computed_lexeme: Some( "0", ), line: 516, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 516, }, Token { kind: Number, lexeme: "100", computed_lexeme: Some( "100", ), line: 516, }, Token { kind: Do, lexeme: "do", computed_lexeme: None, line: 516, }, Token { kind: If, lexeme: "if", computed_lexeme: None, line: 517, }, Token { kind: Not, lexeme: "not", computed_lexeme: None, line: 517, }, Token { kind: Identifier, lexeme: "kill", computed_lexeme: None, line: 517, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 517, }, Token { kind: Identifier, lexeme: "pid", computed_lexeme: None, line: 517, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 517, }, Token { kind: Then, lexeme: "then", computed_lexeme: None, line: 517, }, Token { kind: Identifier, lexeme: "n", computed_lexeme: None, line: 518, }, Token { kind: Equals, lexeme: "=", computed_lexeme: None, line: 518, }, Token { kind: Identifier, lexeme: "i", computed_lexeme: None, line: 518, }, Token { kind: Break, lexeme: "break", computed_lexeme: None, line: 519, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 520, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 521, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 522, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 522, }, Token { kind: Identifier, lexeme: "f", computed_lexeme: None, line: 522, }, Token { kind: Colon, lexeme: ":", computed_lexeme: None, line: 522, }, Token { kind: Identifier, lexeme: "close", computed_lexeme: None, line: 522, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 522, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 522, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 522, }, Token { kind: Identifier, lexeme: "assert", computed_lexeme: None, line: 523, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 523, }, Token { kind: Identifier, lexeme: "n", computed_lexeme: None, line: 523, }, Token { kind: GreaterThanOrEqual, lexeme: ">=", computed_lexeme: None, line: 523, }, Token { kind: Number, lexeme: "2", computed_lexeme: Some( "2", ), line: 523, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 523, }, Token { kind: Identifier, lexeme: "print", computed_lexeme: None, line: 524, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 524, }, Token { kind: Identifier, lexeme: "string", computed_lexeme: None, line: 524, }, Token { kind: Dot, lexeme: ".", computed_lexeme: None, line: 524, }, Token { kind: Identifier, lexeme: "format", computed_lexeme: None, line: 524, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 524, }, Token { kind: String, lexeme: "\"done (with %d kills)\"", computed_lexeme: None, line: 524, }, Token { kind: Comma, lexeme: ",", computed_lexeme: None, line: 524, }, Token { kind: Identifier, lexeme: "n", computed_lexeme: None, line: 524, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 524, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 524, }, Token { kind: End, lexeme: "end", computed_lexeme: None, line: 526, }, Token { kind: Identifier, lexeme: "print", computed_lexeme: None, line: 528, }, Token { kind: LeftParen, lexeme: "(", computed_lexeme: None, line: 528, }, Token { kind: String, lexeme: "\"OK\"", computed_lexeme: None, line: 528, }, Token { kind: RightParen, lexeme: ")", computed_lexeme: None, line: 528, }, ]