aboutsummaryrefslogtreecommitdiff
path: root/src/ast/ast.js
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-09-24 15:33:02 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-09-24 15:33:02 -0700
commitbdfb5a91b14a129df1b1a5d46aae5c8ef2ea2fd8 (patch)
treea05e1fff6e3cfbdaaf8fbbf247d62f4a0be56ced /src/ast/ast.js
parent29b986684dd157183b258a2598df102e0e4c9055 (diff)
downloadbun-bdfb5a91b14a129df1b1a5d46aae5c8ef2ea2fd8.tar.gz
bun-bdfb5a91b14a129df1b1a5d46aae5c8ef2ea2fd8.tar.zst
bun-bdfb5a91b14a129df1b1a5d46aae5c8ef2ea2fd8.zip
macro
Diffstat (limited to 'src/ast/ast.js')
-rw-r--r--src/ast/ast.js106
1 files changed, 106 insertions, 0 deletions
diff --git a/src/ast/ast.js b/src/ast/ast.js
new file mode 100644
index 000000000..06be333c5
--- /dev/null
+++ b/src/ast/ast.js
@@ -0,0 +1,106 @@
+globalThis.BunASTNode ??= class BunASTNode {
+ position = -1;
+};
+
+if (!globalThis.BunAST) {
+ globalThis.BunAST = {
+ EArray: class EArray extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EUnary: class EUnary extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EBinary: class EBinary extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EClass: class EClass extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ ENew: class ENew extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EFunction: class EFunction extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ ECall: class ECall extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EDot: class EDot extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EIndex: class EIndex extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EArrow: class EArrow extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EIdentifier: class EIdentifier extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EImportIdentifier: class EImportIdentifier extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EPrivateIdentifier: class EPrivateIdentifier extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EJsxElement: class EJsxElement extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EObject: class EObject extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ ESpread: class ESpread extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ ETemplatePart: class ETemplatePart extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ ETemplate: class ETemplate extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ ERegExp: class ERegExp extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EAwait: class EAwait extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EYield: class EYield extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EIf: class EIf extends BunASTNode {
+ no = Number.MAX_SAFE_INTEGER;
+ yes = Number.MAX_SAFE_INTEGER;
+ },
+ ERequire: class ERequire extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EImport: class EImport extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EBoolean: class EBoolean extends BunASTNode {
+ val = false;
+ },
+ ENumber: class ENumber extends BunASTNode {
+ val = 0;
+ },
+ EBigInt: class EBigInt extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EString: class EString extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EMissing: class EMissing extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EThis: class EThis extends BunASTNode {},
+ ESuper: class ESuper extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ ENull: class ENull extends BunASTNode {},
+ EUndefined: class EUndefined extends BunASTNode {},
+ ENewTarget: class ENewTarget extends BunASTNode {
+ #ptr = Number.MAX_SAFE_INTEGER;
+ },
+ EImportMeta: class EImportMeta extends BunASTNode {},
+ };
+}