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;