Skip to main content

Module parser

Module parser 

Source
Expand description

再帰下降 + 優先順位クライミングの JS パーサ。

全トークンを Vec<Token> に集めてインデックスで走査するため、アロー関数判定の ような任意先読みが容易。エラーは致命的にせずベストエフォートで継続する (失敗箇所は Expression::Undefined / Statement::Empty にフォールバック)。 セミコロンは任意(改行ベースの ASI は簡易扱い)。

Structs§

ChunkedVec
固定長の塊を並べた追記専用の配列(索引で引ける)。
ParseError
回復して解析を続けた構文エラー 1 件。
Parser

Constants§

LAZY_MIN_TOKENS 🔒
これ未満のトークン数の関数本体は遅延させずにその場で解析する(小さい関数は保持コストの方が大きい)。
MAX_RECORDED_ERRORS 🔒
記録する構文エラーの上限。壊れきった入力で無制限にメモリを食わないため。

Functions§

bin_prec 🔒
describe_token 🔒
エラーメッセージ用にトークンを短く説明する。
is_assign_op 🔒
is_right_assoc 🔒
parse_function_body_source
遅延した関数本体のソース({ と } の内側)を解析する。入れ子の関数もまた遅延する。
to_binop 🔒
to_logical 🔒