summaryrefslogtreecommitdiff
path: root/src/compiler/parse/acorn.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/parse/acorn.ts')
-rw-r--r--src/compiler/parse/acorn.ts18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/compiler/parse/acorn.ts b/src/compiler/parse/acorn.ts
new file mode 100644
index 000000000..f017b6dec
--- /dev/null
+++ b/src/compiler/parse/acorn.ts
@@ -0,0 +1,18 @@
+import { Node } from 'acorn';
+import acorn from 'acorn';
+// @ts-ignore
+import jsx from 'acorn-jsx';
+
+const acornJsx = acorn.Parser.extend(jsx());
+
+export const parse = (source: string): Node => acorn.parse(source, {
+ sourceType: 'module',
+ ecmaVersion: 2020,
+ locations: true
+});
+
+export const parse_expression_at = (source: string, index: number): Node => acornJsx.parseExpressionAt(source, index, {
+ sourceType: 'module',
+ ecmaVersion: 2020,
+ locations: true
+});