biome_js_parser 0.5.7

Biome's JavaScript parser
Documentation
JsModule {
    bom_token: missing (optional),
    interpreter_token: missing (optional),
    directives: JsDirectiveList [],
    items: JsModuleItemList [
        JsExpressionStatement {
            expression: JsComputedMemberExpression {
                object: JsIdentifierExpression {
                    name: JsReferenceIdentifier {
                        value_token: IDENT@0..3 "foo" [] [],
                    },
                },
                optional_chain_token: missing (optional),
                l_brack_token: L_BRACK@3..4 "[" [] [],
                member: missing (required),
                r_brack_token: R_BRACK@4..5 "]" [] [],
            },
            semicolon_token: missing (optional),
        },
        JsExpressionStatement {
            expression: JsComputedMemberExpression {
                object: JsIdentifierExpression {
                    name: JsReferenceIdentifier {
                        value_token: IDENT@5..9 "foo" [Newline("\n")] [],
                    },
                },
                optional_chain_token: QUESTIONDOT@9..11 "?." [] [],
                l_brack_token: L_BRACK@11..12 "[" [] [],
                member: missing (required),
                r_brack_token: R_BRACK@12..13 "]" [] [],
            },
            semicolon_token: missing (optional),
        },
        JsExpressionStatement {
            expression: JsComputedMemberExpression {
                object: JsIdentifierExpression {
                    name: JsReferenceIdentifier {
                        value_token: IDENT@13..17 "foo" [Newline("\n")] [],
                    },
                },
                optional_chain_token: missing (optional),
                l_brack_token: L_BRACK@17..18 "[" [] [],
                member: missing (required),
                r_brack_token: missing (required),
            },
            semicolon_token: missing (optional),
        },
    ],
    eof_token: EOF@18..19 "" [Newline("\n")] [],
}

0: JS_MODULE@0..19
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..18
    0: JS_EXPRESSION_STATEMENT@0..5
      0: JS_COMPUTED_MEMBER_EXPRESSION@0..5
        0: JS_IDENTIFIER_EXPRESSION@0..3
          0: JS_REFERENCE_IDENTIFIER@0..3
            0: IDENT@0..3 "foo" [] []
        1: (empty)
        2: L_BRACK@3..4 "[" [] []
        3: (empty)
        4: R_BRACK@4..5 "]" [] []
      1: (empty)
    1: JS_EXPRESSION_STATEMENT@5..13
      0: JS_COMPUTED_MEMBER_EXPRESSION@5..13
        0: JS_IDENTIFIER_EXPRESSION@5..9
          0: JS_REFERENCE_IDENTIFIER@5..9
            0: IDENT@5..9 "foo" [Newline("\n")] []
        1: QUESTIONDOT@9..11 "?." [] []
        2: L_BRACK@11..12 "[" [] []
        3: (empty)
        4: R_BRACK@12..13 "]" [] []
      1: (empty)
    2: JS_EXPRESSION_STATEMENT@13..18
      0: JS_COMPUTED_MEMBER_EXPRESSION@13..18
        0: JS_IDENTIFIER_EXPRESSION@13..17
          0: JS_REFERENCE_IDENTIFIER@13..17
            0: IDENT@13..17 "foo" [Newline("\n")] []
        1: (empty)
        2: L_BRACK@17..18 "[" [] []
        3: (empty)
        4: (empty)
      1: (empty)
  4: EOF@18..19 "" [Newline("\n")] []
--
bracket_expr_err.js:1:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  × Expected an expression but instead found ']'.
  
  > 1 │ foo[]
      │     ^
    2 │ foo?.[]
    3 │ foo[
  
  i Expected an expression here.
  
  > 1 │ foo[]
      │     ^
    2 │ foo?.[]
    3 │ foo[
  
--
bracket_expr_err.js:2:7 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  × Expected an expression but instead found ']'.
  
    1 │ foo[]
  > 2 │ foo?.[]
      │       ^
    3 │ foo[
    4 │ 
  
  i Expected an expression here.
  
    1 │ foo[]
  > 2 │ foo?.[]
      │       ^
    3 │ foo[
    4 │ 
  
--
bracket_expr_err.js:4:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  × Expected an expression but instead found the end of the file.
  
    2 │ foo?.[]
    3 │ foo[
  > 4 │ 
      │ 
  
  i Expected an expression here.
  
    2 │ foo?.[]
    3 │ foo[
  > 4 │ 
      │ 
  
--
foo[]
foo?.[]
foo[