JsScript { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], statements: JsStatementList [ JsExpressionStatement { expression: JsAssignmentExpression { left: JsIdentifierAssignment { name_token: IDENT@0..20 "interface" [Comments("// SCRIPT"), Newline("\n")] [Whitespace(" ")], }, operator_token: EQ@20..22 "=" [] [Whitespace(" ")], right: JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@22..23 "1" [] [], }, }, semicolon_token: SEMICOLON@23..24 ";" [] [], }, JsExpressionStatement { expression: JsAssignmentExpression { left: JsIdentifierAssignment { name_token: IDENT@24..33 "private" [Newline("\n")] [Whitespace(" ")], }, operator_token: EQ@33..35 "=" [] [Whitespace(" ")], right: JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@35..36 "2" [] [], }, }, semicolon_token: SEMICOLON@36..37 ";" [] [], }, JsExpressionStatement { expression: JsAssignmentExpression { left: JsIdentifierAssignment { name_token: IDENT@37..48 "protected" [Newline("\n")] [Whitespace(" ")], }, operator_token: EQ@48..50 "=" [] [Whitespace(" ")], right: JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@50..51 "3" [] [], }, }, semicolon_token: SEMICOLON@51..52 ";" [] [], }, JsExpressionStatement { expression: JsAssignmentExpression { left: JsIdentifierAssignment { name_token: IDENT@52..60 "public" [Newline("\n")] [Whitespace(" ")], }, operator_token: EQ@60..62 "=" [] [Whitespace(" ")], right: JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@62..63 "4" [] [], }, }, semicolon_token: SEMICOLON@63..64 ";" [] [], }, JsExpressionStatement { expression: JsAssignmentExpression { left: JsIdentifierAssignment { name_token: IDENT@64..76 "implements" [Newline("\n")] [Whitespace(" ")], }, operator_token: EQ@76..78 "=" [] [Whitespace(" ")], right: JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@78..79 "5" [] [], }, }, semicolon_token: SEMICOLON@79..80 ";" [] [], }, ], eof_token: EOF@80..81 "" [Newline("\n")] [], } 0: JS_SCRIPT@0..81 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_STATEMENT_LIST@0..80 0: JS_EXPRESSION_STATEMENT@0..24 0: JS_ASSIGNMENT_EXPRESSION@0..23 0: JS_IDENTIFIER_ASSIGNMENT@0..20 0: IDENT@0..20 "interface" [Comments("// SCRIPT"), Newline("\n")] [Whitespace(" ")] 1: EQ@20..22 "=" [] [Whitespace(" ")] 2: JS_NUMBER_LITERAL_EXPRESSION@22..23 0: JS_NUMBER_LITERAL@22..23 "1" [] [] 1: SEMICOLON@23..24 ";" [] [] 1: JS_EXPRESSION_STATEMENT@24..37 0: JS_ASSIGNMENT_EXPRESSION@24..36 0: JS_IDENTIFIER_ASSIGNMENT@24..33 0: IDENT@24..33 "private" [Newline("\n")] [Whitespace(" ")] 1: EQ@33..35 "=" [] [Whitespace(" ")] 2: JS_NUMBER_LITERAL_EXPRESSION@35..36 0: JS_NUMBER_LITERAL@35..36 "2" [] [] 1: SEMICOLON@36..37 ";" [] [] 2: JS_EXPRESSION_STATEMENT@37..52 0: JS_ASSIGNMENT_EXPRESSION@37..51 0: JS_IDENTIFIER_ASSIGNMENT@37..48 0: IDENT@37..48 "protected" [Newline("\n")] [Whitespace(" ")] 1: EQ@48..50 "=" [] [Whitespace(" ")] 2: JS_NUMBER_LITERAL_EXPRESSION@50..51 0: JS_NUMBER_LITERAL@50..51 "3" [] [] 1: SEMICOLON@51..52 ";" [] [] 3: JS_EXPRESSION_STATEMENT@52..64 0: JS_ASSIGNMENT_EXPRESSION@52..63 0: JS_IDENTIFIER_ASSIGNMENT@52..60 0: IDENT@52..60 "public" [Newline("\n")] [Whitespace(" ")] 1: EQ@60..62 "=" [] [Whitespace(" ")] 2: JS_NUMBER_LITERAL_EXPRESSION@62..63 0: JS_NUMBER_LITERAL@62..63 "4" [] [] 1: SEMICOLON@63..64 ";" [] [] 4: JS_EXPRESSION_STATEMENT@64..80 0: JS_ASSIGNMENT_EXPRESSION@64..79 0: JS_IDENTIFIER_ASSIGNMENT@64..76 0: IDENT@64..76 "implements" [Newline("\n")] [Whitespace(" ")] 1: EQ@76..78 "=" [] [Whitespace(" ")] 2: JS_NUMBER_LITERAL_EXPRESSION@78..79 0: JS_NUMBER_LITERAL@78..79 "5" [] [] 1: SEMICOLON@79..80 ";" [] [] 4: EOF@80..81 "" [Newline("\n")] []