Parser
Expressionss
Operator priority
Operator/Expression | Associativity | Parser fn name | Impl |
---|---|---|---|
Calls, Identifiers, Literals | Left to Right | call | ✅ |
Members | Left to Right | dot | ✅ |
block expr | Right to Left | block_expr | ✅ |
new | Right to Left | new_expr | ✅ |
delete | Right to Left | delete_expr | ✅ |
await | Right to Left | await_expr | ✅ |
! ++ -- () ~ (unary - + ) [] {} | Left to Right | factor | ✅ |
^ | Left to Left | power | ✅ |
* / % | Left to Right | term | ✅ |
+ - | Left to Right | add_sub | ✅ |
>> << | Left to Right | shift | ✅ |
& | Left to Right | bit_and | ✅ |
bxor | Left to Right | bit_xor | ✅ |
| | Left to Right | bit_or | ✅ |
== != < <= > >= | Left to Right | cmp | ✅ |
&& | Left to Right | logical_and | ✅ |
|| | Left to Right | logical_or | ✅ |
.. | Left to Right | range | ✅ |
?: | Right to Left | ternary | ✅ |
= := += -= *= /= ^= %= | Right to Left | assign | ✅ |
, | None | comma | ✅ |
Statements
Statement | Parser fn name | Trigger token | Impl |
---|---|---|---|
Variable declaration | var_decl | Let | ✅ |
Async function declaration | fn_decl | Async | ✅ |
Function declaration | fn_decl | Function | ✅ |
Scope declaration | scope_decl | Scope | ✅ |
Return statement | return_stmt | Return | ✅ |
Yield statement | yield_stmt | Yield | ✅ |
Break statement | break_stmt | Break | ✅ |
Continue statement | continue_stmt | Continue | ✅ |
If statement | if_stmt | If | ✅ |
While statement | while_stmt | While | ✅ |
For statement | for_stmt | For | ✅ |
Loop statement | loop_stmt | Loop | ✅ |
Try statement | try_stmt | Try | ✅ |
Throw statement | throw_stmt | Throw | ✅ |
Expression statement | expr_stmt | Other | ✅ |