biome_js_parser 0.5.7

Biome's JavaScript parser
Documentation
JsModule {
    bom_token: missing (optional),
    interpreter_token: missing (optional),
    directives: JsDirectiveList [],
    items: JsModuleItemList [
        JsVariableStatement {
            declaration: JsVariableDeclaration {
                await_token: missing (optional),
                kind: LET_KW@0..4 "let" [] [Whitespace(" ")],
                declarators: JsVariableDeclaratorList [
                    JsVariableDeclarator {
                        id: JsIdentifierBinding {
                            name_token: IDENT@4..5 "x" [] [],
                        },
                        variable_annotation: TsTypeAnnotation {
                            colon_token: COLON@5..7 ":" [] [Whitespace(" ")],
                            ty: TsAnyType {
                                any_token: ANY_KW@7..11 "any" [] [Whitespace(" ")],
                            },
                        },
                        initializer: JsInitializerClause {
                            eq_token: EQ@11..13 "=" [] [Whitespace(" ")],
                            expression: JsStringLiteralExpression {
                                value_token: JS_STRING_LITERAL@13..21 "\"string\"" [] [],
                            },
                        },
                    },
                ],
            },
            semicolon_token: SEMICOLON@21..22 ";" [] [],
        },
        JsVariableStatement {
            declaration: JsVariableDeclaration {
                await_token: missing (optional),
                kind: LET_KW@22..27 "let" [Newline("\n")] [Whitespace(" ")],
                declarators: JsVariableDeclaratorList [
                    JsVariableDeclarator {
                        id: JsIdentifierBinding {
                            name_token: IDENT@27..29 "y" [] [Whitespace(" ")],
                        },
                        variable_annotation: missing (optional),
                        initializer: JsInitializerClause {
                            eq_token: EQ@29..31 "=" [] [Whitespace(" ")],
                            expression: TsAsExpression {
                                expression: JsIdentifierExpression {
                                    name: JsReferenceIdentifier {
                                        value_token: IDENT@31..33 "x" [] [Whitespace(" ")],
                                    },
                                },
                                as_token: AS_KW@33..36 "as" [] [Whitespace(" ")],
                                ty: TsStringType {
                                    string_token: STRING_KW@36..42 "string" [] [],
                                },
                            },
                        },
                    },
                ],
            },
            semicolon_token: SEMICOLON@42..43 ";" [] [],
        },
        JsVariableStatement {
            declaration: JsVariableDeclaration {
                await_token: missing (optional),
                kind: LET_KW@43..48 "let" [Newline("\n")] [Whitespace(" ")],
                declarators: JsVariableDeclaratorList [
                    JsVariableDeclarator {
                        id: JsIdentifierBinding {
                            name_token: IDENT@48..50 "z" [] [Whitespace(" ")],
                        },
                        variable_annotation: missing (optional),
                        initializer: JsInitializerClause {
                            eq_token: EQ@50..52 "=" [] [Whitespace(" ")],
                            expression: TsAsExpression {
                                expression: JsIdentifierExpression {
                                    name: JsReferenceIdentifier {
                                        value_token: IDENT@52..54 "x" [] [Whitespace(" ")],
                                    },
                                },
                                as_token: AS_KW@54..57 "as" [] [Whitespace(" ")],
                                ty: TsReferenceType {
                                    name: JsReferenceIdentifier {
                                        value_token: IDENT@57..62 "const" [] [],
                                    },
                                    type_arguments: missing (optional),
                                },
                            },
                        },
                    },
                ],
            },
            semicolon_token: SEMICOLON@62..63 ";" [] [],
        },
        JsVariableStatement {
            declaration: JsVariableDeclaration {
                await_token: missing (optional),
                kind: LET_KW@63..68 "let" [Newline("\n")] [Whitespace(" ")],
                declarators: JsVariableDeclaratorList [
                    JsVariableDeclarator {
                        id: JsIdentifierBinding {
                            name_token: IDENT@68..89 "not_an_as_expression" [] [Whitespace(" ")],
                        },
                        variable_annotation: missing (optional),
                        initializer: JsInitializerClause {
                            eq_token: EQ@89..91 "=" [] [Whitespace(" ")],
                            expression: JsIdentifierExpression {
                                name: JsReferenceIdentifier {
                                    value_token: IDENT@91..92 "x" [] [],
                                },
                            },
                        },
                    },
                ],
            },
            semicolon_token: missing (optional),
        },
        JsExpressionStatement {
            expression: JsIdentifierExpression {
                name: JsReferenceIdentifier {
                    value_token: IDENT@92..95 "as" [Newline("\n")] [],
                },
            },
            semicolon_token: SEMICOLON@95..96 ";" [] [],
        },
        JsVariableStatement {
            declaration: JsVariableDeclaration {
                await_token: missing (optional),
                kind: LET_KW@96..101 "let" [Newline("\n")] [Whitespace(" ")],
                declarators: JsVariableDeclaratorList [
                    JsVariableDeclarator {
                        id: JsIdentifierBinding {
                            name_token: IDENT@101..112 "precedence" [] [Whitespace(" ")],
                        },
                        variable_annotation: missing (optional),
                        initializer: JsInitializerClause {
                            eq_token: EQ@112..114 "=" [] [Whitespace(" ")],
                            expression: TsAsExpression {
                                expression: TsAsExpression {
                                    expression: JsBinaryExpression {
                                        left: TsAsExpression {
                                            expression: JsStringLiteralExpression {
                                                value_token: JS_STRING_LITERAL@114..122 "\"hello\"" [] [Whitespace(" ")],
                                            },
                                            as_token: AS_KW@122..125 "as" [] [Whitespace(" ")],
                                            ty: TsReferenceType {
                                                name: JsReferenceIdentifier {
                                                    value_token: IDENT@125..131 "const" [] [Whitespace(" ")],
                                                },
                                                type_arguments: missing (optional),
                                            },
                                        },
                                        operator_token: PLUS@131..133 "+" [] [Whitespace(" ")],
                                        right: JsNumberLiteralExpression {
                                            value_token: JS_NUMBER_LITERAL@133..135 "3" [] [Whitespace(" ")],
                                        },
                                    },
                                    as_token: AS_KW@135..138 "as" [] [Whitespace(" ")],
                                    ty: TsNumberType {
                                        number_token: NUMBER_KW@138..145 "number" [] [Whitespace(" ")],
                                    },
                                },
                                as_token: AS_KW@145..148 "as" [] [Whitespace(" ")],
                                ty: TsNumberType {
                                    number_token: NUMBER_KW@148..154 "number" [] [],
                                },
                            },
                        },
                    },
                ],
            },
            semicolon_token: SEMICOLON@154..155 ";" [] [],
        },
    ],
    eof_token: EOF@155..156 "" [Newline("\n")] [],
}

0: JS_MODULE@0..156
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..155
    0: JS_VARIABLE_STATEMENT@0..22
      0: JS_VARIABLE_DECLARATION@0..21
        0: (empty)
        1: LET_KW@0..4 "let" [] [Whitespace(" ")]
        2: JS_VARIABLE_DECLARATOR_LIST@4..21
          0: JS_VARIABLE_DECLARATOR@4..21
            0: JS_IDENTIFIER_BINDING@4..5
              0: IDENT@4..5 "x" [] []
            1: TS_TYPE_ANNOTATION@5..11
              0: COLON@5..7 ":" [] [Whitespace(" ")]
              1: TS_ANY_TYPE@7..11
                0: ANY_KW@7..11 "any" [] [Whitespace(" ")]
            2: JS_INITIALIZER_CLAUSE@11..21
              0: EQ@11..13 "=" [] [Whitespace(" ")]
              1: JS_STRING_LITERAL_EXPRESSION@13..21
                0: JS_STRING_LITERAL@13..21 "\"string\"" [] []
      1: SEMICOLON@21..22 ";" [] []
    1: JS_VARIABLE_STATEMENT@22..43
      0: JS_VARIABLE_DECLARATION@22..42
        0: (empty)
        1: LET_KW@22..27 "let" [Newline("\n")] [Whitespace(" ")]
        2: JS_VARIABLE_DECLARATOR_LIST@27..42
          0: JS_VARIABLE_DECLARATOR@27..42
            0: JS_IDENTIFIER_BINDING@27..29
              0: IDENT@27..29 "y" [] [Whitespace(" ")]
            1: (empty)
            2: JS_INITIALIZER_CLAUSE@29..42
              0: EQ@29..31 "=" [] [Whitespace(" ")]
              1: TS_AS_EXPRESSION@31..42
                0: JS_IDENTIFIER_EXPRESSION@31..33
                  0: JS_REFERENCE_IDENTIFIER@31..33
                    0: IDENT@31..33 "x" [] [Whitespace(" ")]
                1: AS_KW@33..36 "as" [] [Whitespace(" ")]
                2: TS_STRING_TYPE@36..42
                  0: STRING_KW@36..42 "string" [] []
      1: SEMICOLON@42..43 ";" [] []
    2: JS_VARIABLE_STATEMENT@43..63
      0: JS_VARIABLE_DECLARATION@43..62
        0: (empty)
        1: LET_KW@43..48 "let" [Newline("\n")] [Whitespace(" ")]
        2: JS_VARIABLE_DECLARATOR_LIST@48..62
          0: JS_VARIABLE_DECLARATOR@48..62
            0: JS_IDENTIFIER_BINDING@48..50
              0: IDENT@48..50 "z" [] [Whitespace(" ")]
            1: (empty)
            2: JS_INITIALIZER_CLAUSE@50..62
              0: EQ@50..52 "=" [] [Whitespace(" ")]
              1: TS_AS_EXPRESSION@52..62
                0: JS_IDENTIFIER_EXPRESSION@52..54
                  0: JS_REFERENCE_IDENTIFIER@52..54
                    0: IDENT@52..54 "x" [] [Whitespace(" ")]
                1: AS_KW@54..57 "as" [] [Whitespace(" ")]
                2: TS_REFERENCE_TYPE@57..62
                  0: JS_REFERENCE_IDENTIFIER@57..62
                    0: IDENT@57..62 "const" [] []
                  1: (empty)
      1: SEMICOLON@62..63 ";" [] []
    3: JS_VARIABLE_STATEMENT@63..92
      0: JS_VARIABLE_DECLARATION@63..92
        0: (empty)
        1: LET_KW@63..68 "let" [Newline("\n")] [Whitespace(" ")]
        2: JS_VARIABLE_DECLARATOR_LIST@68..92
          0: JS_VARIABLE_DECLARATOR@68..92
            0: JS_IDENTIFIER_BINDING@68..89
              0: IDENT@68..89 "not_an_as_expression" [] [Whitespace(" ")]
            1: (empty)
            2: JS_INITIALIZER_CLAUSE@89..92
              0: EQ@89..91 "=" [] [Whitespace(" ")]
              1: JS_IDENTIFIER_EXPRESSION@91..92
                0: JS_REFERENCE_IDENTIFIER@91..92
                  0: IDENT@91..92 "x" [] []
      1: (empty)
    4: JS_EXPRESSION_STATEMENT@92..96
      0: JS_IDENTIFIER_EXPRESSION@92..95
        0: JS_REFERENCE_IDENTIFIER@92..95
          0: IDENT@92..95 "as" [Newline("\n")] []
      1: SEMICOLON@95..96 ";" [] []
    5: JS_VARIABLE_STATEMENT@96..155
      0: JS_VARIABLE_DECLARATION@96..154
        0: (empty)
        1: LET_KW@96..101 "let" [Newline("\n")] [Whitespace(" ")]
        2: JS_VARIABLE_DECLARATOR_LIST@101..154
          0: JS_VARIABLE_DECLARATOR@101..154
            0: JS_IDENTIFIER_BINDING@101..112
              0: IDENT@101..112 "precedence" [] [Whitespace(" ")]
            1: (empty)
            2: JS_INITIALIZER_CLAUSE@112..154
              0: EQ@112..114 "=" [] [Whitespace(" ")]
              1: TS_AS_EXPRESSION@114..154
                0: TS_AS_EXPRESSION@114..145
                  0: JS_BINARY_EXPRESSION@114..135
                    0: TS_AS_EXPRESSION@114..131
                      0: JS_STRING_LITERAL_EXPRESSION@114..122
                        0: JS_STRING_LITERAL@114..122 "\"hello\"" [] [Whitespace(" ")]
                      1: AS_KW@122..125 "as" [] [Whitespace(" ")]
                      2: TS_REFERENCE_TYPE@125..131
                        0: JS_REFERENCE_IDENTIFIER@125..131
                          0: IDENT@125..131 "const" [] [Whitespace(" ")]
                        1: (empty)
                    1: PLUS@131..133 "+" [] [Whitespace(" ")]
                    2: JS_NUMBER_LITERAL_EXPRESSION@133..135
                      0: JS_NUMBER_LITERAL@133..135 "3" [] [Whitespace(" ")]
                  1: AS_KW@135..138 "as" [] [Whitespace(" ")]
                  2: TS_NUMBER_TYPE@138..145
                    0: NUMBER_KW@138..145 "number" [] [Whitespace(" ")]
                1: AS_KW@145..148 "as" [] [Whitespace(" ")]
                2: TS_NUMBER_TYPE@148..154
                  0: NUMBER_KW@148..154 "number" [] []
      1: SEMICOLON@154..155 ";" [] []
  4: EOF@155..156 "" [Newline("\n")] []