--- source: full-moon/tests/pass_cases.rs assertion_line: 52 expression: ast.nodes() input_file: full-moon/tests/roblox_cases/pass/string_interpolation_conformance --- stmts: - - LocalFunction: local_token: leading_trivia: [] token: start_position: bytes: 0 line: 1 character: 1 end_position: bytes: 5 line: 1 character: 6 token_type: type: Symbol symbol: local trailing_trivia: - start_position: bytes: 5 line: 1 character: 6 end_position: bytes: 6 line: 1 character: 7 token_type: type: Whitespace characters: " " function_token: leading_trivia: [] token: start_position: bytes: 6 line: 1 character: 7 end_position: bytes: 14 line: 1 character: 15 token_type: type: Symbol symbol: function trailing_trivia: - start_position: bytes: 14 line: 1 character: 15 end_position: bytes: 15 line: 1 character: 16 token_type: type: Whitespace characters: " " name: leading_trivia: [] token: start_position: bytes: 15 line: 1 character: 16 end_position: bytes: 23 line: 1 character: 24 token_type: type: Identifier identifier: assertEq trailing_trivia: [] body: generics: ~ parameters_parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 23 line: 1 character: 24 end_position: bytes: 24 line: 1 character: 25 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 35 line: 1 character: 36 end_position: bytes: 36 line: 1 character: 37 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 36 line: 1 character: 37 end_position: bytes: 37 line: 1 character: 37 token_type: type: Whitespace characters: "\n" parameters: pairs: - Punctuated: - Name: leading_trivia: [] token: start_position: bytes: 24 line: 1 character: 25 end_position: bytes: 28 line: 1 character: 29 token_type: type: Identifier identifier: left trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 28 line: 1 character: 29 end_position: bytes: 29 line: 1 character: 30 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 29 line: 1 character: 30 end_position: bytes: 30 line: 1 character: 31 token_type: type: Whitespace characters: " " - End: Name: leading_trivia: [] token: start_position: bytes: 30 line: 1 character: 31 end_position: bytes: 35 line: 1 character: 36 token_type: type: Identifier identifier: right trailing_trivia: [] type_specifiers: - ~ - ~ block: stmts: - - FunctionCall: prefix: Name: leading_trivia: - start_position: bytes: 37 line: 2 character: 1 end_position: bytes: 38 line: 2 character: 2 token_type: type: Whitespace characters: "\t" token: start_position: bytes: 38 line: 2 character: 2 end_position: bytes: 44 line: 2 character: 8 token_type: type: Identifier identifier: assert trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 44 line: 2 character: 8 end_position: bytes: 45 line: 2 character: 9 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 99 line: 2 character: 63 end_position: bytes: 100 line: 2 character: 64 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 100 line: 2 character: 64 end_position: bytes: 101 line: 2 character: 64 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - BinaryOperator: lhs: FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 45 line: 2 character: 9 end_position: bytes: 51 line: 2 character: 15 token_type: type: Identifier identifier: typeof trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 51 line: 2 character: 15 end_position: bytes: 52 line: 2 character: 16 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 56 line: 2 character: 20 end_position: bytes: 57 line: 2 character: 21 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 57 line: 2 character: 21 end_position: bytes: 58 line: 2 character: 22 token_type: type: Whitespace characters: " " arguments: pairs: - End: Var: Name: leading_trivia: [] token: start_position: bytes: 52 line: 2 character: 16 end_position: bytes: 56 line: 2 character: 20 token_type: type: Identifier identifier: left trailing_trivia: [] binop: TwoEqual: leading_trivia: [] token: start_position: bytes: 58 line: 2 character: 22 end_position: bytes: 60 line: 2 character: 24 token_type: type: Symbol symbol: "==" trailing_trivia: - start_position: bytes: 60 line: 2 character: 24 end_position: bytes: 61 line: 2 character: 25 token_type: type: Whitespace characters: " " rhs: String: leading_trivia: [] token: start_position: bytes: 61 line: 2 character: 25 end_position: bytes: 69 line: 2 character: 33 token_type: type: StringLiteral literal: string quote_type: Double trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 69 line: 2 character: 33 end_position: bytes: 70 line: 2 character: 34 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 70 line: 2 character: 34 end_position: bytes: 71 line: 2 character: 35 token_type: type: Whitespace characters: " " - End: BinaryOperator: lhs: String: leading_trivia: [] token: start_position: bytes: 71 line: 2 character: 35 end_position: bytes: 83 line: 2 character: 47 token_type: type: StringLiteral literal: "left is a " quote_type: Double trailing_trivia: - start_position: bytes: 83 line: 2 character: 47 end_position: bytes: 84 line: 2 character: 48 token_type: type: Whitespace characters: " " binop: TwoDots: leading_trivia: [] token: start_position: bytes: 84 line: 2 character: 48 end_position: bytes: 86 line: 2 character: 50 token_type: type: Symbol symbol: ".." trailing_trivia: - start_position: bytes: 86 line: 2 character: 50 end_position: bytes: 87 line: 2 character: 51 token_type: type: Whitespace characters: " " rhs: FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 87 line: 2 character: 51 end_position: bytes: 93 line: 2 character: 57 token_type: type: Identifier identifier: typeof trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 93 line: 2 character: 57 end_position: bytes: 94 line: 2 character: 58 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 98 line: 2 character: 62 end_position: bytes: 99 line: 2 character: 63 token_type: type: Symbol symbol: ) trailing_trivia: [] arguments: pairs: - End: Var: Name: leading_trivia: [] token: start_position: bytes: 94 line: 2 character: 58 end_position: bytes: 98 line: 2 character: 62 token_type: type: Identifier identifier: left trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: - start_position: bytes: 101 line: 3 character: 1 end_position: bytes: 102 line: 3 character: 2 token_type: type: Whitespace characters: "\t" token: start_position: bytes: 102 line: 3 character: 2 end_position: bytes: 108 line: 3 character: 8 token_type: type: Identifier identifier: assert trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 108 line: 3 character: 8 end_position: bytes: 109 line: 3 character: 9 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 166 line: 3 character: 66 end_position: bytes: 167 line: 3 character: 67 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 167 line: 3 character: 67 end_position: bytes: 168 line: 3 character: 67 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - BinaryOperator: lhs: FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 109 line: 3 character: 9 end_position: bytes: 115 line: 3 character: 15 token_type: type: Identifier identifier: typeof trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 115 line: 3 character: 15 end_position: bytes: 116 line: 3 character: 16 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 121 line: 3 character: 21 end_position: bytes: 122 line: 3 character: 22 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 122 line: 3 character: 22 end_position: bytes: 123 line: 3 character: 23 token_type: type: Whitespace characters: " " arguments: pairs: - End: Var: Name: leading_trivia: [] token: start_position: bytes: 116 line: 3 character: 16 end_position: bytes: 121 line: 3 character: 21 token_type: type: Identifier identifier: right trailing_trivia: [] binop: TwoEqual: leading_trivia: [] token: start_position: bytes: 123 line: 3 character: 23 end_position: bytes: 125 line: 3 character: 25 token_type: type: Symbol symbol: "==" trailing_trivia: - start_position: bytes: 125 line: 3 character: 25 end_position: bytes: 126 line: 3 character: 26 token_type: type: Whitespace characters: " " rhs: String: leading_trivia: [] token: start_position: bytes: 126 line: 3 character: 26 end_position: bytes: 134 line: 3 character: 34 token_type: type: StringLiteral literal: string quote_type: Double trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 134 line: 3 character: 34 end_position: bytes: 135 line: 3 character: 35 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 135 line: 3 character: 35 end_position: bytes: 136 line: 3 character: 36 token_type: type: Whitespace characters: " " - End: BinaryOperator: lhs: String: leading_trivia: [] token: start_position: bytes: 136 line: 3 character: 36 end_position: bytes: 149 line: 3 character: 49 token_type: type: StringLiteral literal: "right is a " quote_type: Double trailing_trivia: - start_position: bytes: 149 line: 3 character: 49 end_position: bytes: 150 line: 3 character: 50 token_type: type: Whitespace characters: " " binop: TwoDots: leading_trivia: [] token: start_position: bytes: 150 line: 3 character: 50 end_position: bytes: 152 line: 3 character: 52 token_type: type: Symbol symbol: ".." trailing_trivia: - start_position: bytes: 152 line: 3 character: 52 end_position: bytes: 153 line: 3 character: 53 token_type: type: Whitespace characters: " " rhs: FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 153 line: 3 character: 53 end_position: bytes: 159 line: 3 character: 59 token_type: type: Identifier identifier: typeof trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 159 line: 3 character: 59 end_position: bytes: 160 line: 3 character: 60 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 165 line: 3 character: 65 end_position: bytes: 166 line: 3 character: 66 token_type: type: Symbol symbol: ) trailing_trivia: [] arguments: pairs: - End: Var: Name: leading_trivia: [] token: start_position: bytes: 160 line: 3 character: 60 end_position: bytes: 165 line: 3 character: 65 token_type: type: Identifier identifier: right trailing_trivia: [] - ~ - - If: if_token: leading_trivia: - start_position: bytes: 168 line: 4 character: 1 end_position: bytes: 169 line: 4 character: 1 token_type: type: Whitespace characters: "\n" - start_position: bytes: 169 line: 5 character: 1 end_position: bytes: 170 line: 5 character: 2 token_type: type: Whitespace characters: "\t" token: start_position: bytes: 170 line: 5 character: 2 end_position: bytes: 172 line: 5 character: 4 token_type: type: Symbol symbol: if trailing_trivia: - start_position: bytes: 172 line: 5 character: 4 end_position: bytes: 173 line: 5 character: 5 token_type: type: Whitespace characters: " " condition: BinaryOperator: lhs: Var: Name: leading_trivia: [] token: start_position: bytes: 173 line: 5 character: 5 end_position: bytes: 177 line: 5 character: 9 token_type: type: Identifier identifier: left trailing_trivia: - start_position: bytes: 177 line: 5 character: 9 end_position: bytes: 178 line: 5 character: 10 token_type: type: Whitespace characters: " " binop: TildeEqual: leading_trivia: [] token: start_position: bytes: 178 line: 5 character: 10 end_position: bytes: 180 line: 5 character: 12 token_type: type: Symbol symbol: ~= trailing_trivia: - start_position: bytes: 180 line: 5 character: 12 end_position: bytes: 181 line: 5 character: 13 token_type: type: Whitespace characters: " " rhs: Var: Name: leading_trivia: [] token: start_position: bytes: 181 line: 5 character: 13 end_position: bytes: 186 line: 5 character: 18 token_type: type: Identifier identifier: right trailing_trivia: - start_position: bytes: 186 line: 5 character: 18 end_position: bytes: 187 line: 5 character: 19 token_type: type: Whitespace characters: " " then_token: leading_trivia: [] token: start_position: bytes: 187 line: 5 character: 19 end_position: bytes: 191 line: 5 character: 23 token_type: type: Symbol symbol: then trailing_trivia: - start_position: bytes: 191 line: 5 character: 23 end_position: bytes: 192 line: 5 character: 23 token_type: type: Whitespace characters: "\n" block: stmts: - - FunctionCall: prefix: Name: leading_trivia: - start_position: bytes: 192 line: 6 character: 1 end_position: bytes: 194 line: 6 character: 3 token_type: type: Whitespace characters: "\t\t" token: start_position: bytes: 194 line: 6 character: 3 end_position: bytes: 199 line: 6 character: 8 token_type: type: Identifier identifier: error trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 199 line: 6 character: 8 end_position: bytes: 200 line: 6 character: 9 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 238 line: 6 character: 47 end_position: bytes: 239 line: 6 character: 48 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 239 line: 6 character: 48 end_position: bytes: 240 line: 6 character: 48 token_type: type: Whitespace characters: "\n" arguments: pairs: - End: FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 200 line: 6 character: 9 end_position: bytes: 206 line: 6 character: 15 token_type: type: Identifier identifier: string trailing_trivia: [] suffixes: - Index: Dot: dot: leading_trivia: [] token: start_position: bytes: 206 line: 6 character: 15 end_position: bytes: 207 line: 6 character: 16 token_type: type: Symbol symbol: "." trailing_trivia: [] name: leading_trivia: [] token: start_position: bytes: 207 line: 6 character: 16 end_position: bytes: 213 line: 6 character: 22 token_type: type: Identifier identifier: format trailing_trivia: [] - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 213 line: 6 character: 22 end_position: bytes: 214 line: 6 character: 23 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 237 line: 6 character: 46 end_position: bytes: 238 line: 6 character: 47 token_type: type: Symbol symbol: ) trailing_trivia: [] arguments: pairs: - Punctuated: - String: leading_trivia: [] token: start_position: bytes: 214 line: 6 character: 23 end_position: bytes: 224 line: 6 character: 33 token_type: type: StringLiteral literal: "%q ~= %q" quote_type: Double trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 224 line: 6 character: 33 end_position: bytes: 225 line: 6 character: 34 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 225 line: 6 character: 34 end_position: bytes: 226 line: 6 character: 35 token_type: type: Whitespace characters: " " - Punctuated: - Var: Name: leading_trivia: [] token: start_position: bytes: 226 line: 6 character: 35 end_position: bytes: 230 line: 6 character: 39 token_type: type: Identifier identifier: left trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 230 line: 6 character: 39 end_position: bytes: 231 line: 6 character: 40 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 231 line: 6 character: 40 end_position: bytes: 232 line: 6 character: 41 token_type: type: Whitespace characters: " " - End: Var: Name: leading_trivia: [] token: start_position: bytes: 232 line: 6 character: 41 end_position: bytes: 237 line: 6 character: 46 token_type: type: Identifier identifier: right trailing_trivia: [] - ~ else_if: ~ else_token: ~ else: ~ end_token: leading_trivia: - start_position: bytes: 240 line: 7 character: 1 end_position: bytes: 241 line: 7 character: 2 token_type: type: Whitespace characters: "\t" token: start_position: bytes: 241 line: 7 character: 2 end_position: bytes: 244 line: 7 character: 5 token_type: type: Symbol symbol: end trailing_trivia: - start_position: bytes: 244 line: 7 character: 5 end_position: bytes: 245 line: 7 character: 5 token_type: type: Whitespace characters: "\n" - ~ end_token: leading_trivia: [] token: start_position: bytes: 245 line: 8 character: 1 end_position: bytes: 248 line: 8 character: 4 token_type: type: Symbol symbol: end trailing_trivia: - start_position: bytes: 248 line: 8 character: 4 end_position: bytes: 249 line: 8 character: 4 token_type: type: Whitespace characters: "\n" - ~ - - FunctionCall: prefix: Name: leading_trivia: - start_position: bytes: 249 line: 9 character: 1 end_position: bytes: 250 line: 9 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 250 line: 10 character: 1 end_position: bytes: 258 line: 10 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 258 line: 10 character: 9 end_position: bytes: 259 line: 10 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 291 line: 10 character: 42 end_position: bytes: 292 line: 10 character: 43 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 292 line: 10 character: 43 end_position: bytes: 293 line: 10 character: 43 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 259 line: 10 character: 10 end_position: bytes: 267 line: 10 character: 18 token_type: type: InterpolatedString literal: "hello " kind: Begin trailing_trivia: [] expression: String: leading_trivia: [] token: start_position: bytes: 267 line: 10 character: 18 end_position: bytes: 274 line: 10 character: 25 token_type: type: StringLiteral literal: world quote_type: Double trailing_trivia: [] last_string: leading_trivia: [] token: start_position: bytes: 274 line: 10 character: 25 end_position: bytes: 276 line: 10 character: 27 token_type: type: InterpolatedString literal: "" kind: End trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 276 line: 10 character: 27 end_position: bytes: 277 line: 10 character: 28 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 277 line: 10 character: 28 end_position: bytes: 278 line: 10 character: 29 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 278 line: 10 character: 29 end_position: bytes: 291 line: 10 character: 42 token_type: type: StringLiteral literal: hello world quote_type: Double trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 293 line: 11 character: 1 end_position: bytes: 301 line: 11 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 301 line: 11 character: 9 end_position: bytes: 302 line: 11 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 348 line: 11 character: 56 end_position: bytes: 349 line: 11 character: 57 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 349 line: 11 character: 57 end_position: bytes: 350 line: 11 character: 57 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 302 line: 11 character: 10 end_position: bytes: 312 line: 11 character: 20 token_type: type: InterpolatedString literal: "Welcome " kind: Begin trailing_trivia: [] expression: String: leading_trivia: [] token: start_position: bytes: 312 line: 11 character: 20 end_position: bytes: 316 line: 11 character: 24 token_type: type: StringLiteral literal: to quote_type: Double trailing_trivia: [] - literal: leading_trivia: [] token: start_position: bytes: 316 line: 11 character: 24 end_position: bytes: 319 line: 11 character: 27 token_type: type: InterpolatedString literal: " " kind: Middle trailing_trivia: [] expression: String: leading_trivia: [] token: start_position: bytes: 319 line: 11 character: 27 end_position: bytes: 325 line: 11 character: 33 token_type: type: StringLiteral literal: Luau quote_type: Double trailing_trivia: [] last_string: leading_trivia: [] token: start_position: bytes: 325 line: 11 character: 33 end_position: bytes: 328 line: 11 character: 36 token_type: type: InterpolatedString literal: "!" kind: End trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 328 line: 11 character: 36 end_position: bytes: 329 line: 11 character: 37 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 329 line: 11 character: 37 end_position: bytes: 330 line: 11 character: 38 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 330 line: 11 character: 38 end_position: bytes: 348 line: 11 character: 56 token_type: type: StringLiteral literal: Welcome to Luau! quote_type: Double trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: - start_position: bytes: 350 line: 12 character: 1 end_position: bytes: 351 line: 12 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 351 line: 13 character: 1 end_position: bytes: 359 line: 13 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 359 line: 13 character: 9 end_position: bytes: 360 line: 13 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 390 line: 13 character: 40 end_position: bytes: 391 line: 13 character: 41 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 391 line: 13 character: 41 end_position: bytes: 392 line: 13 character: 41 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 360 line: 13 character: 10 end_position: bytes: 370 line: 13 character: 20 token_type: type: InterpolatedString literal: "2 + 2 = " kind: Begin trailing_trivia: [] expression: BinaryOperator: lhs: Number: leading_trivia: [] token: start_position: bytes: 370 line: 13 character: 20 end_position: bytes: 371 line: 13 character: 21 token_type: type: Number text: "2" trailing_trivia: - start_position: bytes: 371 line: 13 character: 21 end_position: bytes: 372 line: 13 character: 22 token_type: type: Whitespace characters: " " binop: Plus: leading_trivia: [] token: start_position: bytes: 372 line: 13 character: 22 end_position: bytes: 373 line: 13 character: 23 token_type: type: Symbol symbol: + trailing_trivia: - start_position: bytes: 373 line: 13 character: 23 end_position: bytes: 374 line: 13 character: 24 token_type: type: Whitespace characters: " " rhs: Number: leading_trivia: [] token: start_position: bytes: 374 line: 13 character: 24 end_position: bytes: 375 line: 13 character: 25 token_type: type: Number text: "2" trailing_trivia: [] last_string: leading_trivia: [] token: start_position: bytes: 375 line: 13 character: 25 end_position: bytes: 377 line: 13 character: 27 token_type: type: InterpolatedString literal: "" kind: End trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 377 line: 13 character: 27 end_position: bytes: 378 line: 13 character: 28 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 378 line: 13 character: 28 end_position: bytes: 379 line: 13 character: 29 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 379 line: 13 character: 29 end_position: bytes: 390 line: 13 character: 40 token_type: type: StringLiteral literal: 2 + 2 = 4 quote_type: Double trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: - start_position: bytes: 392 line: 14 character: 1 end_position: bytes: 393 line: 14 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 393 line: 15 character: 1 end_position: bytes: 401 line: 15 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 401 line: 15 character: 9 end_position: bytes: 402 line: 15 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 448 line: 15 character: 56 end_position: bytes: 449 line: 15 character: 57 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 449 line: 15 character: 57 end_position: bytes: 450 line: 15 character: 57 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 402 line: 15 character: 10 end_position: bytes: 404 line: 15 character: 12 token_type: type: InterpolatedString literal: "" kind: Begin trailing_trivia: [] expression: Number: leading_trivia: [] token: start_position: bytes: 404 line: 15 character: 12 end_position: bytes: 405 line: 15 character: 13 token_type: type: Number text: "1" trailing_trivia: [] - literal: leading_trivia: [] token: start_position: bytes: 405 line: 15 character: 13 end_position: bytes: 408 line: 15 character: 16 token_type: type: InterpolatedString literal: " " kind: Middle trailing_trivia: [] expression: Number: leading_trivia: [] token: start_position: bytes: 408 line: 15 character: 16 end_position: bytes: 409 line: 15 character: 17 token_type: type: Number text: "2" trailing_trivia: [] - literal: leading_trivia: [] token: start_position: bytes: 409 line: 15 character: 17 end_position: bytes: 412 line: 15 character: 20 token_type: type: InterpolatedString literal: " " kind: Middle trailing_trivia: [] expression: Number: leading_trivia: [] token: start_position: bytes: 412 line: 15 character: 20 end_position: bytes: 413 line: 15 character: 21 token_type: type: Number text: "3" trailing_trivia: [] - literal: leading_trivia: [] token: start_position: bytes: 413 line: 15 character: 21 end_position: bytes: 416 line: 15 character: 24 token_type: type: InterpolatedString literal: " " kind: Middle trailing_trivia: [] expression: Number: leading_trivia: [] token: start_position: bytes: 416 line: 15 character: 24 end_position: bytes: 417 line: 15 character: 25 token_type: type: Number text: "4" trailing_trivia: [] - literal: leading_trivia: [] token: start_position: bytes: 417 line: 15 character: 25 end_position: bytes: 420 line: 15 character: 28 token_type: type: InterpolatedString literal: " " kind: Middle trailing_trivia: [] expression: Number: leading_trivia: [] token: start_position: bytes: 420 line: 15 character: 28 end_position: bytes: 421 line: 15 character: 29 token_type: type: Number text: "5" trailing_trivia: [] - literal: leading_trivia: [] token: start_position: bytes: 421 line: 15 character: 29 end_position: bytes: 424 line: 15 character: 32 token_type: type: InterpolatedString literal: " " kind: Middle trailing_trivia: [] expression: Number: leading_trivia: [] token: start_position: bytes: 424 line: 15 character: 32 end_position: bytes: 425 line: 15 character: 33 token_type: type: Number text: "6" trailing_trivia: [] - literal: leading_trivia: [] token: start_position: bytes: 425 line: 15 character: 33 end_position: bytes: 428 line: 15 character: 36 token_type: type: InterpolatedString literal: " " kind: Middle trailing_trivia: [] expression: Number: leading_trivia: [] token: start_position: bytes: 428 line: 15 character: 36 end_position: bytes: 429 line: 15 character: 37 token_type: type: Number text: "7" trailing_trivia: [] last_string: leading_trivia: [] token: start_position: bytes: 429 line: 15 character: 37 end_position: bytes: 431 line: 15 character: 39 token_type: type: InterpolatedString literal: "" kind: End trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 431 line: 15 character: 39 end_position: bytes: 432 line: 15 character: 40 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 432 line: 15 character: 40 end_position: bytes: 433 line: 15 character: 41 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 433 line: 15 character: 41 end_position: bytes: 448 line: 15 character: 56 token_type: type: StringLiteral literal: 1 2 3 4 5 6 7 quote_type: Double trailing_trivia: [] - ~ - - LocalAssignment: local_token: leading_trivia: - start_position: bytes: 450 line: 16 character: 1 end_position: bytes: 451 line: 16 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 451 line: 17 character: 1 end_position: bytes: 456 line: 17 character: 6 token_type: type: Symbol symbol: local trailing_trivia: - start_position: bytes: 456 line: 17 character: 6 end_position: bytes: 457 line: 17 character: 7 token_type: type: Whitespace characters: " " name_list: pairs: - End: leading_trivia: [] token: start_position: bytes: 457 line: 17 character: 7 end_position: bytes: 462 line: 17 character: 12 token_type: type: Identifier identifier: combo trailing_trivia: - start_position: bytes: 462 line: 17 character: 12 end_position: bytes: 463 line: 17 character: 13 token_type: type: Whitespace characters: " " equal_token: leading_trivia: [] token: start_position: bytes: 463 line: 17 character: 13 end_position: bytes: 464 line: 17 character: 14 token_type: type: Symbol symbol: "=" trailing_trivia: - start_position: bytes: 464 line: 17 character: 14 end_position: bytes: 465 line: 17 character: 15 token_type: type: Whitespace characters: " " expr_list: pairs: - End: TableConstructor: braces: tokens: - leading_trivia: [] token: start_position: bytes: 465 line: 17 character: 15 end_position: bytes: 466 line: 17 character: 16 token_type: type: Symbol symbol: "{" trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 476 line: 17 character: 26 end_position: bytes: 477 line: 17 character: 27 token_type: type: Symbol symbol: "}" trailing_trivia: - start_position: bytes: 477 line: 17 character: 27 end_position: bytes: 478 line: 17 character: 27 token_type: type: Whitespace characters: "\n" fields: pairs: - Punctuated: - NoKey: Number: leading_trivia: [] token: start_position: bytes: 466 line: 17 character: 16 end_position: bytes: 467 line: 17 character: 17 token_type: type: Number text: "5" trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 467 line: 17 character: 17 end_position: bytes: 468 line: 17 character: 18 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 468 line: 17 character: 18 end_position: bytes: 469 line: 17 character: 19 token_type: type: Whitespace characters: " " - Punctuated: - NoKey: Number: leading_trivia: [] token: start_position: bytes: 469 line: 17 character: 19 end_position: bytes: 470 line: 17 character: 20 token_type: type: Number text: "2" trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 470 line: 17 character: 20 end_position: bytes: 471 line: 17 character: 21 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 471 line: 17 character: 21 end_position: bytes: 472 line: 17 character: 22 token_type: type: Whitespace characters: " " - Punctuated: - NoKey: Number: leading_trivia: [] token: start_position: bytes: 472 line: 17 character: 22 end_position: bytes: 473 line: 17 character: 23 token_type: type: Number text: "8" trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 473 line: 17 character: 23 end_position: bytes: 474 line: 17 character: 24 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 474 line: 17 character: 24 end_position: bytes: 475 line: 17 character: 25 token_type: type: Whitespace characters: " " - End: NoKey: Number: leading_trivia: [] token: start_position: bytes: 475 line: 17 character: 25 end_position: bytes: 476 line: 17 character: 26 token_type: type: Number text: "9" trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 478 line: 18 character: 1 end_position: bytes: 486 line: 18 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 486 line: 18 character: 9 end_position: bytes: 487 line: 18 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 584 line: 18 character: 107 end_position: bytes: 585 line: 18 character: 108 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 585 line: 18 character: 108 end_position: bytes: 586 line: 18 character: 108 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 487 line: 18 character: 10 end_position: bytes: 516 line: 18 character: 39 token_type: type: InterpolatedString literal: "The lock combinations are: " kind: Begin trailing_trivia: [] expression: FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 516 line: 18 character: 39 end_position: bytes: 521 line: 18 character: 44 token_type: type: Identifier identifier: table trailing_trivia: [] suffixes: - Index: Dot: dot: leading_trivia: [] token: start_position: bytes: 521 line: 18 character: 44 end_position: bytes: 522 line: 18 character: 45 token_type: type: Symbol symbol: "." trailing_trivia: [] name: leading_trivia: [] token: start_position: bytes: 522 line: 18 character: 45 end_position: bytes: 528 line: 18 character: 51 token_type: type: Identifier identifier: concat trailing_trivia: [] - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 528 line: 18 character: 51 end_position: bytes: 529 line: 18 character: 52 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 540 line: 18 character: 63 end_position: bytes: 541 line: 18 character: 64 token_type: type: Symbol symbol: ) trailing_trivia: [] arguments: pairs: - Punctuated: - Var: Name: leading_trivia: [] token: start_position: bytes: 529 line: 18 character: 52 end_position: bytes: 534 line: 18 character: 57 token_type: type: Identifier identifier: combo trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 534 line: 18 character: 57 end_position: bytes: 535 line: 18 character: 58 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 535 line: 18 character: 58 end_position: bytes: 536 line: 18 character: 59 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 536 line: 18 character: 59 end_position: bytes: 540 line: 18 character: 63 token_type: type: StringLiteral literal: ", " quote_type: Double trailing_trivia: [] last_string: leading_trivia: [] token: start_position: bytes: 541 line: 18 character: 64 end_position: bytes: 543 line: 18 character: 66 token_type: type: InterpolatedString literal: "" kind: End trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 543 line: 18 character: 66 end_position: bytes: 544 line: 18 character: 67 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 544 line: 18 character: 67 end_position: bytes: 545 line: 18 character: 68 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 545 line: 18 character: 68 end_position: bytes: 584 line: 18 character: 107 token_type: type: StringLiteral literal: "The lock combinations are: 5, 2, 8, 9" quote_type: Double trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: - start_position: bytes: 586 line: 19 character: 1 end_position: bytes: 587 line: 19 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 587 line: 20 character: 1 end_position: bytes: 595 line: 20 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 595 line: 20 character: 9 end_position: bytes: 596 line: 20 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 626 line: 20 character: 40 end_position: bytes: 627 line: 20 character: 41 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 627 line: 20 character: 41 end_position: bytes: 628 line: 20 character: 41 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 596 line: 20 character: 10 end_position: bytes: 605 line: 20 character: 19 token_type: type: InterpolatedString literal: "true = " kind: Begin trailing_trivia: [] expression: Symbol: leading_trivia: [] token: start_position: bytes: 605 line: 20 character: 19 end_position: bytes: 609 line: 20 character: 23 token_type: type: Symbol symbol: "true" trailing_trivia: [] last_string: leading_trivia: [] token: start_position: bytes: 609 line: 20 character: 23 end_position: bytes: 611 line: 20 character: 25 token_type: type: InterpolatedString literal: "" kind: End trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 611 line: 20 character: 25 end_position: bytes: 612 line: 20 character: 26 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 612 line: 20 character: 26 end_position: bytes: 613 line: 20 character: 27 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 613 line: 20 character: 27 end_position: bytes: 626 line: 20 character: 40 token_type: type: StringLiteral literal: true = true quote_type: Double trailing_trivia: [] - ~ - - LocalAssignment: local_token: leading_trivia: - start_position: bytes: 628 line: 21 character: 1 end_position: bytes: 629 line: 21 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 629 line: 22 character: 1 end_position: bytes: 634 line: 22 character: 6 token_type: type: Symbol symbol: local trailing_trivia: - start_position: bytes: 634 line: 22 character: 6 end_position: bytes: 635 line: 22 character: 7 token_type: type: Whitespace characters: " " name_list: pairs: - End: leading_trivia: [] token: start_position: bytes: 635 line: 22 character: 7 end_position: bytes: 639 line: 22 character: 11 token_type: type: Identifier identifier: name trailing_trivia: - start_position: bytes: 639 line: 22 character: 11 end_position: bytes: 640 line: 22 character: 12 token_type: type: Whitespace characters: " " equal_token: leading_trivia: [] token: start_position: bytes: 640 line: 22 character: 12 end_position: bytes: 641 line: 22 character: 13 token_type: type: Symbol symbol: "=" trailing_trivia: - start_position: bytes: 641 line: 22 character: 13 end_position: bytes: 642 line: 22 character: 14 token_type: type: Whitespace characters: " " expr_list: pairs: - End: String: leading_trivia: [] token: start_position: bytes: 642 line: 22 character: 14 end_position: bytes: 648 line: 22 character: 20 token_type: type: StringLiteral literal: Luau quote_type: Double trailing_trivia: - start_position: bytes: 648 line: 22 character: 20 end_position: bytes: 649 line: 22 character: 20 token_type: type: Whitespace characters: "\n" - ~ - - FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 649 line: 23 character: 1 end_position: bytes: 657 line: 23 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 657 line: 23 character: 9 end_position: bytes: 658 line: 23 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 701 line: 25 character: 24 end_position: bytes: 702 line: 25 character: 25 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 702 line: 25 character: 25 end_position: bytes: 703 line: 25 character: 25 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 658 line: 23 character: 10 end_position: bytes: 671 line: 23 character: 23 token_type: type: InterpolatedString literal: "Welcome to " kind: Begin trailing_trivia: - start_position: bytes: 671 line: 23 character: 23 end_position: bytes: 672 line: 23 character: 23 token_type: type: Whitespace characters: "\n" expression: Var: Name: leading_trivia: - start_position: bytes: 672 line: 24 character: 1 end_position: bytes: 673 line: 24 character: 2 token_type: type: Whitespace characters: "\t" token: start_position: bytes: 673 line: 24 character: 2 end_position: bytes: 677 line: 24 character: 6 token_type: type: Identifier identifier: name trailing_trivia: - start_position: bytes: 677 line: 24 character: 6 end_position: bytes: 678 line: 24 character: 6 token_type: type: Whitespace characters: "\n" last_string: leading_trivia: [] token: start_position: bytes: 678 line: 25 character: 1 end_position: bytes: 681 line: 25 character: 4 token_type: type: InterpolatedString literal: "!" kind: End trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 681 line: 25 character: 4 end_position: bytes: 682 line: 25 character: 5 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 682 line: 25 character: 5 end_position: bytes: 683 line: 25 character: 6 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 683 line: 25 character: 6 end_position: bytes: 701 line: 25 character: 24 token_type: type: StringLiteral literal: Welcome to Luau! quote_type: Double trailing_trivia: [] - ~ - - LocalAssignment: local_token: leading_trivia: - start_position: bytes: 703 line: 26 character: 1 end_position: bytes: 704 line: 26 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 704 line: 27 character: 1 end_position: bytes: 709 line: 27 character: 6 token_type: type: Symbol symbol: local trailing_trivia: - start_position: bytes: 709 line: 27 character: 6 end_position: bytes: 710 line: 27 character: 7 token_type: type: Whitespace characters: " " name_list: pairs: - End: leading_trivia: [] token: start_position: bytes: 710 line: 27 character: 7 end_position: bytes: 734 line: 27 character: 31 token_type: type: Identifier identifier: nameNotConstantEvaluated trailing_trivia: - start_position: bytes: 734 line: 27 character: 31 end_position: bytes: 735 line: 27 character: 32 token_type: type: Whitespace characters: " " equal_token: leading_trivia: [] token: start_position: bytes: 735 line: 27 character: 32 end_position: bytes: 736 line: 27 character: 33 token_type: type: Symbol symbol: "=" trailing_trivia: - start_position: bytes: 736 line: 27 character: 33 end_position: bytes: 737 line: 27 character: 34 token_type: type: Whitespace characters: " " expr_list: pairs: - End: FunctionCall: prefix: Expression: Parentheses: contained: tokens: - leading_trivia: [] token: start_position: bytes: 737 line: 27 character: 34 end_position: bytes: 738 line: 27 character: 35 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 766 line: 27 character: 63 end_position: bytes: 767 line: 27 character: 64 token_type: type: Symbol symbol: ) trailing_trivia: [] expression: Function: - leading_trivia: [] token: start_position: bytes: 738 line: 27 character: 35 end_position: bytes: 746 line: 27 character: 43 token_type: type: Symbol symbol: function trailing_trivia: [] - generics: ~ parameters_parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 746 line: 27 character: 43 end_position: bytes: 747 line: 27 character: 44 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 747 line: 27 character: 44 end_position: bytes: 748 line: 27 character: 45 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 748 line: 27 character: 45 end_position: bytes: 749 line: 27 character: 46 token_type: type: Whitespace characters: " " parameters: pairs: [] type_specifiers: [] block: stmts: [] last_stmt: - Return: token: leading_trivia: [] token: start_position: bytes: 749 line: 27 character: 46 end_position: bytes: 755 line: 27 character: 52 token_type: type: Symbol symbol: return trailing_trivia: - start_position: bytes: 755 line: 27 character: 52 end_position: bytes: 756 line: 27 character: 53 token_type: type: Whitespace characters: " " returns: pairs: - End: String: leading_trivia: [] token: start_position: bytes: 756 line: 27 character: 53 end_position: bytes: 762 line: 27 character: 59 token_type: type: StringLiteral literal: Luau quote_type: Double trailing_trivia: - start_position: bytes: 762 line: 27 character: 59 end_position: bytes: 763 line: 27 character: 60 token_type: type: Whitespace characters: " " - ~ end_token: leading_trivia: [] token: start_position: bytes: 763 line: 27 character: 60 end_position: bytes: 766 line: 27 character: 63 token_type: type: Symbol symbol: end trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 767 line: 27 character: 64 end_position: bytes: 768 line: 27 character: 65 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 768 line: 27 character: 65 end_position: bytes: 769 line: 27 character: 66 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 769 line: 27 character: 66 end_position: bytes: 770 line: 27 character: 66 token_type: type: Whitespace characters: "\n" arguments: pairs: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 770 line: 28 character: 1 end_position: bytes: 778 line: 28 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 778 line: 28 character: 9 end_position: bytes: 779 line: 28 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 839 line: 28 character: 70 end_position: bytes: 840 line: 28 character: 71 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 840 line: 28 character: 71 end_position: bytes: 841 line: 28 character: 71 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 779 line: 28 character: 10 end_position: bytes: 792 line: 28 character: 23 token_type: type: InterpolatedString literal: "Welcome to " kind: Begin trailing_trivia: [] expression: Var: Name: leading_trivia: [] token: start_position: bytes: 792 line: 28 character: 23 end_position: bytes: 816 line: 28 character: 47 token_type: type: Identifier identifier: nameNotConstantEvaluated trailing_trivia: [] last_string: leading_trivia: [] token: start_position: bytes: 816 line: 28 character: 47 end_position: bytes: 819 line: 28 character: 50 token_type: type: InterpolatedString literal: "!" kind: End trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 819 line: 28 character: 50 end_position: bytes: 820 line: 28 character: 51 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 820 line: 28 character: 51 end_position: bytes: 821 line: 28 character: 52 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 821 line: 28 character: 52 end_position: bytes: 839 line: 28 character: 70 token_type: type: StringLiteral literal: Welcome to Luau! quote_type: Double trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: - start_position: bytes: 841 line: 29 character: 1 end_position: bytes: 842 line: 29 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 842 line: 30 character: 1 end_position: bytes: 850 line: 30 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 850 line: 30 character: 9 end_position: bytes: 851 line: 30 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 911 line: 30 character: 70 end_position: bytes: 912 line: 30 character: 71 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 912 line: 30 character: 71 end_position: bytes: 913 line: 30 character: 71 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 851 line: 30 character: 10 end_position: bytes: 858 line: 30 character: 17 token_type: type: InterpolatedString literal: "This " kind: Begin trailing_trivia: [] expression: Var: Name: leading_trivia: [] token: start_position: bytes: 858 line: 30 character: 17 end_position: bytes: 867 line: 30 character: 26 token_type: type: Identifier identifier: localName trailing_trivia: [] last_string: leading_trivia: [] token: start_position: bytes: 867 line: 30 character: 26 end_position: bytes: 884 line: 30 character: 43 token_type: type: InterpolatedString literal: " does not exist" kind: End trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 884 line: 30 character: 43 end_position: bytes: 885 line: 30 character: 44 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 885 line: 30 character: 44 end_position: bytes: 886 line: 30 character: 45 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 886 line: 30 character: 45 end_position: bytes: 911 line: 30 character: 70 token_type: type: StringLiteral literal: This nil does not exist quote_type: Double trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: - start_position: bytes: 913 line: 31 character: 1 end_position: bytes: 914 line: 31 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 914 line: 32 character: 1 end_position: bytes: 922 line: 32 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 922 line: 32 character: 9 end_position: bytes: 923 line: 32 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 967 line: 33 character: 31 end_position: bytes: 968 line: 33 character: 32 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 968 line: 33 character: 32 end_position: bytes: 969 line: 33 character: 32 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 923 line: 32 character: 10 end_position: bytes: 938 line: 33 character: 2 token_type: type: InterpolatedString literal: "Welcome to \\\n" kind: Begin trailing_trivia: [] expression: Var: Name: leading_trivia: [] token: start_position: bytes: 938 line: 33 character: 2 end_position: bytes: 942 line: 33 character: 6 token_type: type: Identifier identifier: name trailing_trivia: [] last_string: leading_trivia: [] token: start_position: bytes: 942 line: 33 character: 6 end_position: bytes: 945 line: 33 character: 9 token_type: type: InterpolatedString literal: "!" kind: End trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 945 line: 33 character: 9 end_position: bytes: 946 line: 33 character: 10 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 946 line: 33 character: 10 end_position: bytes: 947 line: 33 character: 11 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 947 line: 33 character: 11 end_position: bytes: 967 line: 33 character: 31 token_type: type: StringLiteral literal: "Welcome to \\nLuau!" quote_type: Double trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: - start_position: bytes: 969 line: 34 character: 1 end_position: bytes: 970 line: 34 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 970 line: 35 character: 1 end_position: bytes: 978 line: 35 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 978 line: 35 character: 9 end_position: bytes: 979 line: 35 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 995 line: 35 character: 26 end_position: bytes: 996 line: 35 character: 27 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 996 line: 35 character: 27 end_position: bytes: 997 line: 35 character: 27 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: [] last_string: leading_trivia: [] token: start_position: bytes: 979 line: 35 character: 10 end_position: bytes: 986 line: 35 character: 17 token_type: type: InterpolatedString literal: empty kind: Simple trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 986 line: 35 character: 17 end_position: bytes: 987 line: 35 character: 18 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 987 line: 35 character: 18 end_position: bytes: 988 line: 35 character: 19 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 988 line: 35 character: 19 end_position: bytes: 995 line: 35 character: 26 token_type: type: StringLiteral literal: empty quote_type: Double trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: - start_position: bytes: 997 line: 36 character: 1 end_position: bytes: 998 line: 36 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 998 line: 37 character: 1 end_position: bytes: 1006 line: 37 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 1006 line: 37 character: 9 end_position: bytes: 1007 line: 37 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1048 line: 37 character: 51 end_position: bytes: 1049 line: 37 character: 52 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 1049 line: 37 character: 52 end_position: bytes: 1050 line: 37 character: 52 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: [] last_string: leading_trivia: [] token: start_position: bytes: 1007 line: 37 character: 10 end_position: bytes: 1027 line: 37 character: 30 token_type: type: InterpolatedString literal: "Escaped brace: \\{}" kind: Simple trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1027 line: 37 character: 30 end_position: bytes: 1028 line: 37 character: 31 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 1028 line: 37 character: 31 end_position: bytes: 1029 line: 37 character: 32 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 1029 line: 37 character: 32 end_position: bytes: 1048 line: 37 character: 51 token_type: type: StringLiteral literal: "Escaped brace: {}" quote_type: Double trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 1050 line: 38 character: 1 end_position: bytes: 1058 line: 38 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 1058 line: 38 character: 9 end_position: bytes: 1059 line: 38 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1134 line: 38 character: 85 end_position: bytes: 1135 line: 38 character: 86 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 1135 line: 38 character: 86 end_position: bytes: 1136 line: 38 character: 86 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 1059 line: 38 character: 10 end_position: bytes: 1084 line: 38 character: 35 token_type: type: InterpolatedString literal: "Escaped brace \\{} with " kind: Begin trailing_trivia: [] expression: String: leading_trivia: [] token: start_position: bytes: 1084 line: 38 character: 35 end_position: bytes: 1096 line: 38 character: 47 token_type: type: StringLiteral literal: expression quote_type: Double trailing_trivia: [] last_string: leading_trivia: [] token: start_position: bytes: 1096 line: 38 character: 47 end_position: bytes: 1098 line: 38 character: 49 token_type: type: InterpolatedString literal: "" kind: End trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1098 line: 38 character: 49 end_position: bytes: 1099 line: 38 character: 50 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 1099 line: 38 character: 50 end_position: bytes: 1100 line: 38 character: 51 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 1100 line: 38 character: 51 end_position: bytes: 1134 line: 38 character: 85 token_type: type: StringLiteral literal: "Escaped brace {} with expression" quote_type: Double trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 1136 line: 39 character: 1 end_position: bytes: 1144 line: 39 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 1144 line: 39 character: 9 end_position: bytes: 1145 line: 39 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1280 line: 39 character: 145 end_position: bytes: 1281 line: 39 character: 146 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 1281 line: 39 character: 146 end_position: bytes: 1282 line: 39 character: 146 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: [] last_string: leading_trivia: [] token: start_position: bytes: 1145 line: 39 character: 10 end_position: bytes: 1212 line: 39 character: 77 token_type: type: InterpolatedString literal: "Backslash \\ that escapes the space is not a part of the string..." kind: Simple trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1212 line: 39 character: 77 end_position: bytes: 1213 line: 39 character: 78 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 1213 line: 39 character: 78 end_position: bytes: 1214 line: 39 character: 79 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 1214 line: 39 character: 79 end_position: bytes: 1280 line: 39 character: 145 token_type: type: StringLiteral literal: Backslash that escapes the space is not a part of the string... quote_type: Double trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 1282 line: 40 character: 1 end_position: bytes: 1290 line: 40 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 1290 line: 40 character: 9 end_position: bytes: 1291 line: 40 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1337 line: 40 character: 56 end_position: bytes: 1338 line: 40 character: 57 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 1338 line: 40 character: 57 end_position: bytes: 1339 line: 40 character: 57 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: [] last_string: leading_trivia: [] token: start_position: bytes: 1291 line: 40 character: 10 end_position: bytes: 1313 line: 40 character: 32 token_type: type: InterpolatedString literal: "Escaped backslash \\\\" kind: Simple trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1313 line: 40 character: 32 end_position: bytes: 1314 line: 40 character: 33 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 1314 line: 40 character: 33 end_position: bytes: 1315 line: 40 character: 34 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 1315 line: 40 character: 34 end_position: bytes: 1337 line: 40 character: 56 token_type: type: StringLiteral literal: "Escaped backslash \\\\" quote_type: Double trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 1339 line: 41 character: 1 end_position: bytes: 1347 line: 41 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 1347 line: 41 character: 9 end_position: bytes: 1348 line: 41 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1393 line: 41 character: 55 end_position: bytes: 1394 line: 41 character: 56 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 1394 line: 41 character: 56 end_position: bytes: 1395 line: 41 character: 56 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: [] last_string: leading_trivia: [] token: start_position: bytes: 1348 line: 41 character: 10 end_position: bytes: 1370 line: 41 character: 32 token_type: type: InterpolatedString literal: "Escaped backtick: \\`" kind: Simple trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1370 line: 41 character: 32 end_position: bytes: 1371 line: 41 character: 33 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 1371 line: 41 character: 33 end_position: bytes: 1372 line: 41 character: 34 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 1372 line: 41 character: 34 end_position: bytes: 1393 line: 41 character: 55 token_type: type: StringLiteral literal: "Escaped backtick: `" quote_type: Double trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: - start_position: bytes: 1395 line: 42 character: 1 end_position: bytes: 1396 line: 42 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 1396 line: 43 character: 1 end_position: bytes: 1404 line: 43 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 1404 line: 43 character: 9 end_position: bytes: 1405 line: 43 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1485 line: 43 character: 90 end_position: bytes: 1486 line: 43 character: 91 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 1486 line: 43 character: 91 end_position: bytes: 1487 line: 43 character: 91 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 1405 line: 43 character: 10 end_position: bytes: 1413 line: 43 character: 18 token_type: type: InterpolatedString literal: "Hello " kind: Begin trailing_trivia: [] expression: InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 1413 line: 43 character: 18 end_position: bytes: 1427 line: 43 character: 32 token_type: type: InterpolatedString literal: "from inside " kind: Begin trailing_trivia: [] expression: String: leading_trivia: [] token: start_position: bytes: 1427 line: 43 character: 32 end_position: bytes: 1444 line: 43 character: 49 token_type: type: StringLiteral literal: a nested string quote_type: Double trailing_trivia: [] last_string: leading_trivia: [] token: start_position: bytes: 1444 line: 43 character: 49 end_position: bytes: 1446 line: 43 character: 51 token_type: type: InterpolatedString literal: "" kind: End trailing_trivia: [] last_string: leading_trivia: [] token: start_position: bytes: 1446 line: 43 character: 51 end_position: bytes: 1448 line: 43 character: 53 token_type: type: InterpolatedString literal: "" kind: End trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1448 line: 43 character: 53 end_position: bytes: 1449 line: 43 character: 54 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 1449 line: 43 character: 54 end_position: bytes: 1450 line: 43 character: 55 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 1450 line: 43 character: 55 end_position: bytes: 1485 line: 43 character: 90 token_type: type: StringLiteral literal: Hello from inside a nested string quote_type: Double trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: - start_position: bytes: 1487 line: 44 character: 1 end_position: bytes: 1488 line: 44 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 1488 line: 45 character: 1 end_position: bytes: 1496 line: 45 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 1496 line: 45 character: 9 end_position: bytes: 1497 line: 45 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1527 line: 45 character: 40 end_position: bytes: 1528 line: 45 character: 41 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 1528 line: 45 character: 41 end_position: bytes: 1529 line: 45 character: 41 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 1497 line: 45 character: 10 end_position: bytes: 1501 line: 45 character: 14 token_type: type: InterpolatedString literal: "1 " kind: Begin trailing_trivia: [] expression: InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 1501 line: 45 character: 14 end_position: bytes: 1505 line: 45 character: 18 token_type: type: InterpolatedString literal: "2 " kind: Begin trailing_trivia: [] expression: InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 1505 line: 45 character: 18 end_position: bytes: 1509 line: 45 character: 22 token_type: type: InterpolatedString literal: "3 " kind: Begin trailing_trivia: [] expression: Number: leading_trivia: [] token: start_position: bytes: 1509 line: 45 character: 22 end_position: bytes: 1510 line: 45 character: 23 token_type: type: Number text: "4" trailing_trivia: [] last_string: leading_trivia: [] token: start_position: bytes: 1510 line: 45 character: 23 end_position: bytes: 1512 line: 45 character: 25 token_type: type: InterpolatedString literal: "" kind: End trailing_trivia: [] last_string: leading_trivia: [] token: start_position: bytes: 1512 line: 45 character: 25 end_position: bytes: 1514 line: 45 character: 27 token_type: type: InterpolatedString literal: "" kind: End trailing_trivia: [] last_string: leading_trivia: [] token: start_position: bytes: 1514 line: 45 character: 27 end_position: bytes: 1516 line: 45 character: 29 token_type: type: InterpolatedString literal: "" kind: End trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1516 line: 45 character: 29 end_position: bytes: 1517 line: 45 character: 30 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 1517 line: 45 character: 30 end_position: bytes: 1518 line: 45 character: 31 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 1518 line: 45 character: 31 end_position: bytes: 1527 line: 45 character: 40 token_type: type: StringLiteral literal: 1 2 3 4 quote_type: Double trailing_trivia: [] - ~ - - LocalAssignment: local_token: leading_trivia: - start_position: bytes: 1529 line: 46 character: 1 end_position: bytes: 1530 line: 46 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 1530 line: 47 character: 1 end_position: bytes: 1535 line: 47 character: 6 token_type: type: Symbol symbol: local trailing_trivia: - start_position: bytes: 1535 line: 47 character: 6 end_position: bytes: 1536 line: 47 character: 7 token_type: type: Whitespace characters: " " name_list: pairs: - End: leading_trivia: [] token: start_position: bytes: 1536 line: 47 character: 7 end_position: bytes: 1542 line: 47 character: 13 token_type: type: Identifier identifier: health trailing_trivia: - start_position: bytes: 1542 line: 47 character: 13 end_position: bytes: 1543 line: 47 character: 14 token_type: type: Whitespace characters: " " equal_token: leading_trivia: [] token: start_position: bytes: 1543 line: 47 character: 14 end_position: bytes: 1544 line: 47 character: 15 token_type: type: Symbol symbol: "=" trailing_trivia: - start_position: bytes: 1544 line: 47 character: 15 end_position: bytes: 1545 line: 47 character: 16 token_type: type: Whitespace characters: " " expr_list: pairs: - End: Number: leading_trivia: [] token: start_position: bytes: 1545 line: 47 character: 16 end_position: bytes: 1547 line: 47 character: 18 token_type: type: Number text: "50" trailing_trivia: - start_position: bytes: 1547 line: 47 character: 18 end_position: bytes: 1548 line: 47 character: 18 token_type: type: Whitespace characters: "\n" - ~ - - FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 1548 line: 48 character: 1 end_position: bytes: 1554 line: 48 character: 7 token_type: type: Identifier identifier: assert trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 1554 line: 48 character: 7 end_position: bytes: 1555 line: 48 character: 8 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1607 line: 48 character: 60 end_position: bytes: 1608 line: 48 character: 61 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 1608 line: 48 character: 61 end_position: bytes: 1609 line: 48 character: 61 token_type: type: Whitespace characters: "\n" arguments: pairs: - End: BinaryOperator: lhs: InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 1555 line: 48 character: 8 end_position: bytes: 1566 line: 48 character: 19 token_type: type: InterpolatedString literal: "You have " kind: Begin trailing_trivia: [] expression: Var: Name: leading_trivia: [] token: start_position: bytes: 1566 line: 48 character: 19 end_position: bytes: 1572 line: 48 character: 25 token_type: type: Identifier identifier: health trailing_trivia: [] last_string: leading_trivia: [] token: start_position: bytes: 1572 line: 48 character: 25 end_position: bytes: 1582 line: 48 character: 35 token_type: type: InterpolatedString literal: "% health" kind: End trailing_trivia: - start_position: bytes: 1582 line: 48 character: 35 end_position: bytes: 1583 line: 48 character: 36 token_type: type: Whitespace characters: " " binop: TwoEqual: leading_trivia: [] token: start_position: bytes: 1583 line: 48 character: 36 end_position: bytes: 1585 line: 48 character: 38 token_type: type: Symbol symbol: "==" trailing_trivia: - start_position: bytes: 1585 line: 48 character: 38 end_position: bytes: 1586 line: 48 character: 39 token_type: type: Whitespace characters: " " rhs: String: leading_trivia: [] token: start_position: bytes: 1586 line: 48 character: 39 end_position: bytes: 1607 line: 48 character: 60 token_type: type: StringLiteral literal: You have 50% health quote_type: Double trailing_trivia: [] - ~ - - LocalFunction: local_token: leading_trivia: - start_position: bytes: 1609 line: 49 character: 1 end_position: bytes: 1610 line: 49 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 1610 line: 50 character: 1 end_position: bytes: 1615 line: 50 character: 6 token_type: type: Symbol symbol: local trailing_trivia: - start_position: bytes: 1615 line: 50 character: 6 end_position: bytes: 1616 line: 50 character: 7 token_type: type: Whitespace characters: " " function_token: leading_trivia: [] token: start_position: bytes: 1616 line: 50 character: 7 end_position: bytes: 1624 line: 50 character: 15 token_type: type: Symbol symbol: function trailing_trivia: - start_position: bytes: 1624 line: 50 character: 15 end_position: bytes: 1625 line: 50 character: 16 token_type: type: Whitespace characters: " " name: leading_trivia: [] token: start_position: bytes: 1625 line: 50 character: 16 end_position: bytes: 1638 line: 50 character: 29 token_type: type: Identifier identifier: shadowsString trailing_trivia: [] body: generics: ~ parameters_parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 1638 line: 50 character: 29 end_position: bytes: 1639 line: 50 character: 30 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1645 line: 50 character: 36 end_position: bytes: 1646 line: 50 character: 37 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 1646 line: 50 character: 37 end_position: bytes: 1647 line: 50 character: 37 token_type: type: Whitespace characters: "\n" parameters: pairs: - End: Name: leading_trivia: [] token: start_position: bytes: 1639 line: 50 character: 30 end_position: bytes: 1645 line: 50 character: 36 token_type: type: Identifier identifier: string trailing_trivia: [] type_specifiers: - ~ block: stmts: [] last_stmt: - Return: token: leading_trivia: - start_position: bytes: 1647 line: 51 character: 1 end_position: bytes: 1648 line: 51 character: 2 token_type: type: Whitespace characters: "\t" token: start_position: bytes: 1648 line: 51 character: 2 end_position: bytes: 1654 line: 51 character: 8 token_type: type: Symbol symbol: return trailing_trivia: - start_position: bytes: 1654 line: 51 character: 8 end_position: bytes: 1655 line: 51 character: 9 token_type: type: Whitespace characters: " " returns: pairs: - End: InterpolatedString: segments: - literal: leading_trivia: [] token: start_position: bytes: 1655 line: 51 character: 9 end_position: bytes: 1666 line: 51 character: 20 token_type: type: InterpolatedString literal: "Value is " kind: Begin trailing_trivia: [] expression: Var: Name: leading_trivia: [] token: start_position: bytes: 1666 line: 51 character: 20 end_position: bytes: 1672 line: 51 character: 26 token_type: type: Identifier identifier: string trailing_trivia: [] last_string: leading_trivia: [] token: start_position: bytes: 1672 line: 51 character: 26 end_position: bytes: 1674 line: 51 character: 28 token_type: type: InterpolatedString literal: "" kind: End trailing_trivia: - start_position: bytes: 1674 line: 51 character: 28 end_position: bytes: 1675 line: 51 character: 28 token_type: type: Whitespace characters: "\n" - ~ end_token: leading_trivia: [] token: start_position: bytes: 1675 line: 52 character: 1 end_position: bytes: 1678 line: 52 character: 4 token_type: type: Symbol symbol: end trailing_trivia: - start_position: bytes: 1678 line: 52 character: 4 end_position: bytes: 1679 line: 52 character: 4 token_type: type: Whitespace characters: "\n" - ~ - - FunctionCall: prefix: Name: leading_trivia: - start_position: bytes: 1679 line: 53 character: 1 end_position: bytes: 1680 line: 53 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 1680 line: 54 character: 1 end_position: bytes: 1688 line: 54 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 1688 line: 54 character: 9 end_position: bytes: 1689 line: 54 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1729 line: 54 character: 50 end_position: bytes: 1730 line: 54 character: 51 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 1730 line: 54 character: 51 end_position: bytes: 1731 line: 54 character: 51 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 1689 line: 54 character: 10 end_position: bytes: 1702 line: 54 character: 23 token_type: type: Identifier identifier: shadowsString trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 1702 line: 54 character: 23 end_position: bytes: 1703 line: 54 character: 24 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1710 line: 54 character: 31 end_position: bytes: 1711 line: 54 character: 32 token_type: type: Symbol symbol: ) trailing_trivia: [] arguments: pairs: - End: String: leading_trivia: [] token: start_position: bytes: 1703 line: 54 character: 24 end_position: bytes: 1710 line: 54 character: 31 token_type: type: StringLiteral literal: hello quote_type: Double trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1711 line: 54 character: 32 end_position: bytes: 1712 line: 54 character: 33 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 1712 line: 54 character: 33 end_position: bytes: 1713 line: 54 character: 34 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 1713 line: 54 character: 34 end_position: bytes: 1729 line: 54 character: 50 token_type: type: StringLiteral literal: Value is hello quote_type: Double trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 1731 line: 55 character: 1 end_position: bytes: 1739 line: 55 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 1739 line: 55 character: 9 end_position: bytes: 1740 line: 55 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1770 line: 55 character: 40 end_position: bytes: 1771 line: 55 character: 41 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 1771 line: 55 character: 41 end_position: bytes: 1772 line: 55 character: 41 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - FunctionCall: prefix: Name: leading_trivia: [] token: start_position: bytes: 1740 line: 55 character: 10 end_position: bytes: 1753 line: 55 character: 23 token_type: type: Identifier identifier: shadowsString trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 1753 line: 55 character: 23 end_position: bytes: 1754 line: 55 character: 24 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1755 line: 55 character: 25 end_position: bytes: 1756 line: 55 character: 26 token_type: type: Symbol symbol: ) trailing_trivia: [] arguments: pairs: - End: Number: leading_trivia: [] token: start_position: bytes: 1754 line: 55 character: 24 end_position: bytes: 1755 line: 55 character: 25 token_type: type: Number text: "1" trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1756 line: 55 character: 26 end_position: bytes: 1757 line: 55 character: 27 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 1757 line: 55 character: 27 end_position: bytes: 1758 line: 55 character: 28 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 1758 line: 55 character: 28 end_position: bytes: 1770 line: 55 character: 40 token_type: type: StringLiteral literal: Value is 1 quote_type: Double trailing_trivia: [] - ~ - - FunctionCall: prefix: Name: leading_trivia: - start_position: bytes: 1772 line: 56 character: 1 end_position: bytes: 1773 line: 56 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 1773 line: 57 character: 1 end_position: bytes: 1781 line: 57 character: 9 token_type: type: Identifier identifier: assertEq trailing_trivia: [] suffixes: - Call: AnonymousCall: Parentheses: parentheses: tokens: - leading_trivia: [] token: start_position: bytes: 1781 line: 57 character: 9 end_position: bytes: 1782 line: 57 character: 10 token_type: type: Symbol symbol: ( trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1801 line: 57 character: 29 end_position: bytes: 1802 line: 57 character: 30 token_type: type: Symbol symbol: ) trailing_trivia: - start_position: bytes: 1802 line: 57 character: 30 end_position: bytes: 1803 line: 57 character: 30 token_type: type: Whitespace characters: "\n" arguments: pairs: - Punctuated: - InterpolatedString: segments: [] last_string: leading_trivia: [] token: start_position: bytes: 1782 line: 57 character: 10 end_position: bytes: 1794 line: 57 character: 22 token_type: type: InterpolatedString literal: "\\u{0041}\\t" kind: Simple trailing_trivia: [] - leading_trivia: [] token: start_position: bytes: 1794 line: 57 character: 22 end_position: bytes: 1795 line: 57 character: 23 token_type: type: Symbol symbol: "," trailing_trivia: - start_position: bytes: 1795 line: 57 character: 23 end_position: bytes: 1796 line: 57 character: 24 token_type: type: Whitespace characters: " " - End: String: leading_trivia: [] token: start_position: bytes: 1796 line: 57 character: 24 end_position: bytes: 1801 line: 57 character: 29 token_type: type: StringLiteral literal: "A\\t" quote_type: Double trailing_trivia: [] - ~ last_stmt: - Return: token: leading_trivia: - start_position: bytes: 1803 line: 58 character: 1 end_position: bytes: 1804 line: 58 character: 1 token_type: type: Whitespace characters: "\n" token: start_position: bytes: 1804 line: 59 character: 1 end_position: bytes: 1810 line: 59 character: 7 token_type: type: Symbol symbol: return trailing_trivia: - start_position: bytes: 1810 line: 59 character: 7 end_position: bytes: 1811 line: 59 character: 8 token_type: type: Whitespace characters: " " returns: pairs: - End: String: leading_trivia: [] token: start_position: bytes: 1811 line: 59 character: 8 end_position: bytes: 1815 line: 59 character: 12 token_type: type: StringLiteral literal: OK quote_type: Double trailing_trivia: - start_position: bytes: 1815 line: 59 character: 12 end_position: bytes: 1816 line: 59 character: 12 token_type: type: Whitespace characters: "\n" - ~