rslint_parser 0.3.1

An extremely fast ECMAScript parser made for the rslint project
Documentation
MODULE@0..35
  EXPR_STMT@0..11
    CALL_EXPR@0..10
      NAME_REF@0..3
        IDENT@0..3 "foo"
      ARG_LIST@3..10
        L_PAREN@3..4 "("
        BIN_EXPR@4..9
          NAME_REF@4..7
            IDENT@4..7 "foo"
          WHITESPACE@7..8 " "
          PLUS@8..9 "+"
        R_PAREN@9..10 ")"
    SEMICOLON@10..11 ";"
  WHITESPACE@11..12 "\n"
  EXPR_STMT@12..22
    BIN_EXPR@12..21
      NAME_REF@12..15
        IDENT@12..15 "foo"
      WHITESPACE@15..16 " "
      PLUS@16..17 "+"
      WHITESPACE@17..18 " "
      BIN_EXPR@18..21
        STAR@18..19 "*"
        WHITESPACE@19..20 " "
        LITERAL@20..21
          NUMBER@20..21 "2"
    SEMICOLON@21..22 ";"
  WHITESPACE@22..23 "\n"
  EXPR_STMT@23..34
    BIN_EXPR@23..33
      UNARY_EXPR@23..27
        BANG@23..24 "!"
        NAME_REF@24..27
          IDENT@24..27 "foo"
      WHITESPACE@27..28 " "
      STAR@28..29 "*"
      WHITESPACE@29..30 " "
      NAME_REF@30..33
        IDENT@30..33 "bar"
    SEMICOLON@33..34 ";"
  WHITESPACE@34..35 "\n"
--
error[SyntaxError]: Expected an expression, but found none
  ┌─ binary_expressions_err.js:1:10
  │
1 │ foo(foo +);
  │          ^ Expected an expression here

--
error[SyntaxError]: Expected an expression for the right hand side of a `+`, but found an operator instead
  ┌─ binary_expressions_err.js:2:7
  │
2 │ foo + * 2;
  │     - ^ But this operator was encountered instead
  │     │  
  │     This operator requires a right hand side value

--
foo(foo +);
foo + * 2;
!foo * bar;