Как разобрать потенциально недействительные фрагменты JavaScript с помощью babel / parser, конвертировать в AST? - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь создать 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 также будет недействительным, но это не имеет значения для моего варианта использования.

...