Я пытаюсь создать AST из фрагментов Javascript, используя @babel/parser
:
const parse = require('@babel/parser').parse;
const fragment = 'if (x > 3) {';
const ast = parse(fragment, {
allowImportExportEverywhere: true,
allowAwaitOutsideFunction: true,
allowReturnOutsideFunction: true,
allowSuperOutsideMethod: true,
sourceType: 'unambiguous',
plugins: ['jsx'],
});
... который производит:
{ [SyntaxError: Unexpected token (1:12)
] pos: 12, loc: Position { line: 1, column: 12 } }
... или выброшенное исключение.
Можно ли заставить синтаксический анализатор принять эти фрагменты?Или есть альтернатива анализу babel, которая может с этим справиться?
Я понимаю, что полученный AST также будет недействительным, но это не имеет значения для моего варианта использования.