xbintsc 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +191 -0
  3. package/bin/xbintsc.js +26 -0
  4. package/dist/src/ast/factory.d.ts +11 -0
  5. package/dist/src/ast/factory.js +36 -0
  6. package/dist/src/ast/factory.js.map +1 -0
  7. package/dist/src/ast/nodes.d.ts +848 -0
  8. package/dist/src/ast/nodes.js +247 -0
  9. package/dist/src/ast/nodes.js.map +1 -0
  10. package/dist/src/ast/visitor.d.ts +18 -0
  11. package/dist/src/ast/visitor.js +52 -0
  12. package/dist/src/ast/visitor.js.map +1 -0
  13. package/dist/src/binder/binder.d.ts +82 -0
  14. package/dist/src/binder/binder.js +443 -0
  15. package/dist/src/binder/binder.js.map +1 -0
  16. package/dist/src/cli/main.d.ts +16 -0
  17. package/dist/src/cli/main.js +191 -0
  18. package/dist/src/cli/main.js.map +1 -0
  19. package/dist/src/codegen/llvm.d.ts +31 -0
  20. package/dist/src/codegen/llvm.js +1178 -0
  21. package/dist/src/codegen/llvm.js.map +1 -0
  22. package/dist/src/codegen/values.d.ts +23 -0
  23. package/dist/src/codegen/values.js +32 -0
  24. package/dist/src/codegen/values.js.map +1 -0
  25. package/dist/src/diagnostics/diagnostic.d.ts +69 -0
  26. package/dist/src/diagnostics/diagnostic.js +104 -0
  27. package/dist/src/diagnostics/diagnostic.js.map +1 -0
  28. package/dist/src/diagnostics/source.d.ts +43 -0
  29. package/dist/src/diagnostics/source.js +73 -0
  30. package/dist/src/diagnostics/source.js.map +1 -0
  31. package/dist/src/driver/cache.d.ts +37 -0
  32. package/dist/src/driver/cache.js +82 -0
  33. package/dist/src/driver/cache.js.map +1 -0
  34. package/dist/src/driver/compiler.d.ts +41 -0
  35. package/dist/src/driver/compiler.js +128 -0
  36. package/dist/src/driver/compiler.js.map +1 -0
  37. package/dist/src/driver/index.d.ts +4 -0
  38. package/dist/src/driver/index.js +5 -0
  39. package/dist/src/driver/index.js.map +1 -0
  40. package/dist/src/driver/paths.d.ts +4 -0
  41. package/dist/src/driver/paths.js +22 -0
  42. package/dist/src/driver/paths.js.map +1 -0
  43. package/dist/src/driver/toolchain.d.ts +43 -0
  44. package/dist/src/driver/toolchain.js +76 -0
  45. package/dist/src/driver/toolchain.js.map +1 -0
  46. package/dist/src/extensions/node.d.ts +9 -0
  47. package/dist/src/extensions/node.js +20 -0
  48. package/dist/src/extensions/node.js.map +1 -0
  49. package/dist/src/extensions/registry.d.ts +45 -0
  50. package/dist/src/extensions/registry.js +76 -0
  51. package/dist/src/extensions/registry.js.map +1 -0
  52. package/dist/src/index.d.ts +18 -0
  53. package/dist/src/index.js +19 -0
  54. package/dist/src/index.js.map +1 -0
  55. package/dist/src/lexer/scanner.d.ts +48 -0
  56. package/dist/src/lexer/scanner.js +650 -0
  57. package/dist/src/lexer/scanner.js.map +1 -0
  58. package/dist/src/lexer/token.d.ts +170 -0
  59. package/dist/src/lexer/token.js +250 -0
  60. package/dist/src/lexer/token.js.map +1 -0
  61. package/dist/src/parser/parser.d.ts +127 -0
  62. package/dist/src/parser/parser.js +2334 -0
  63. package/dist/src/parser/parser.js.map +1 -0
  64. package/dist/tests/binder/binder.test.d.ts +1 -0
  65. package/dist/tests/binder/binder.test.js +89 -0
  66. package/dist/tests/binder/binder.test.js.map +1 -0
  67. package/dist/tests/cli/main.test.d.ts +1 -0
  68. package/dist/tests/cli/main.test.js +68 -0
  69. package/dist/tests/cli/main.test.js.map +1 -0
  70. package/dist/tests/cli/process.test.d.ts +9 -0
  71. package/dist/tests/cli/process.test.js +57 -0
  72. package/dist/tests/cli/process.test.js.map +1 -0
  73. package/dist/tests/codegen/llvm.test.d.ts +1 -0
  74. package/dist/tests/codegen/llvm.test.js +93 -0
  75. package/dist/tests/codegen/llvm.test.js.map +1 -0
  76. package/dist/tests/driver/cache.test.d.ts +1 -0
  77. package/dist/tests/driver/cache.test.js +66 -0
  78. package/dist/tests/driver/cache.test.js.map +1 -0
  79. package/dist/tests/driver/compiler.test.d.ts +1 -0
  80. package/dist/tests/driver/compiler.test.js +80 -0
  81. package/dist/tests/driver/compiler.test.js.map +1 -0
  82. package/dist/tests/driver/toolchain.test.d.ts +1 -0
  83. package/dist/tests/driver/toolchain.test.js +60 -0
  84. package/dist/tests/driver/toolchain.test.js.map +1 -0
  85. package/dist/tests/e2e/compile.test.d.ts +5 -0
  86. package/dist/tests/e2e/compile.test.js +93 -0
  87. package/dist/tests/e2e/compile.test.js.map +1 -0
  88. package/dist/tests/extensions/registry.test.d.ts +1 -0
  89. package/dist/tests/extensions/registry.test.js +47 -0
  90. package/dist/tests/extensions/registry.test.js.map +1 -0
  91. package/dist/tests/helpers.d.ts +23 -0
  92. package/dist/tests/helpers.js +41 -0
  93. package/dist/tests/helpers.js.map +1 -0
  94. package/dist/tests/lexer/scanner.test.d.ts +1 -0
  95. package/dist/tests/lexer/scanner.test.js +95 -0
  96. package/dist/tests/lexer/scanner.test.js.map +1 -0
  97. package/dist/tests/parser/parser.test.d.ts +1 -0
  98. package/dist/tests/parser/parser.test.js +137 -0
  99. package/dist/tests/parser/parser.test.js.map +1 -0
  100. package/package.json +49 -0
  101. package/runtime/ext_node.c +42 -0
  102. package/runtime/rt.h +177 -0
  103. package/runtime/xt_runtime.c +682 -0
  104. package/scripts/build-runtime.mjs +34 -0
  105. package/src/ast/factory.ts +37 -0
  106. package/src/ast/nodes.ts +1111 -0
  107. package/src/ast/visitor.ts +60 -0
  108. package/src/binder/binder.ts +549 -0
  109. package/src/cli/main.ts +210 -0
  110. package/src/codegen/llvm.ts +1324 -0
  111. package/src/codegen/values.ts +36 -0
  112. package/src/diagnostics/diagnostic.ts +132 -0
  113. package/src/diagnostics/source.ts +97 -0
  114. package/src/driver/cache.ts +96 -0
  115. package/src/driver/compiler.ts +197 -0
  116. package/src/driver/index.ts +4 -0
  117. package/src/driver/paths.ts +24 -0
  118. package/src/driver/toolchain.ts +103 -0
  119. package/src/extensions/node.ts +23 -0
  120. package/src/extensions/registry.ts +101 -0
  121. package/src/index.ts +33 -0
  122. package/src/lexer/scanner.ts +650 -0
  123. package/src/lexer/token.ts +266 -0
  124. package/src/parser/parser.ts +2396 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../src/lexer/scanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Token taxonomy for the xbintsc lexer. Kept close to the TypeScript grammar so
3
+ * the parser can stay a direct recursive-descent transcription of the spec.
4
+ */
5
+ export declare enum TokenKind {
6
+ EndOfFile = "EndOfFile",
7
+ Identifier = "Identifier",
8
+ PrivateIdentifier = "PrivateIdentifier",
9
+ NumericLiteral = "NumericLiteral",
10
+ BigIntLiteral = "BigIntLiteral",
11
+ StringLiteral = "StringLiteral",
12
+ NoSubstitutionTemplateLiteral = "NoSubstitutionTemplateLiteral",
13
+ TemplateHead = "TemplateHead",
14
+ TemplateMiddle = "TemplateMiddle",
15
+ TemplateTail = "TemplateTail",
16
+ RegularExpressionLiteral = "RegularExpressionLiteral",
17
+ OpenBrace = "{",
18
+ CloseBrace = "}",
19
+ OpenParen = "(",
20
+ CloseParen = ")",
21
+ OpenBracket = "[",
22
+ CloseBracket = "]",
23
+ Dot = ".",
24
+ DotDotDot = "...",
25
+ Semicolon = ";",
26
+ Comma = ",",
27
+ LessThan = "<",
28
+ GreaterThan = ">",
29
+ LessThanEquals = "<=",
30
+ GreaterThanEquals = ">=",
31
+ EqualsEquals = "==",
32
+ ExclamationEquals = "!=",
33
+ EqualsEqualsEquals = "===",
34
+ ExclamationEqualsEquals = "!==",
35
+ EqualsGreaterThan = "=>",
36
+ Plus = "+",
37
+ Minus = "-",
38
+ Asterisk = "*",
39
+ AsteriskAsterisk = "**",
40
+ Slash = "/",
41
+ Percent = "%",
42
+ PlusPlus = "++",
43
+ MinusMinus = "--",
44
+ LessThanLessThan = "<<",
45
+ GreaterThanGreaterThan = ">>",
46
+ GreaterThanGreaterThanGreaterThan = ">>>",
47
+ Ampersand = "&",
48
+ Bar = "|",
49
+ Caret = "^",
50
+ Exclamation = "!",
51
+ Tilde = "~",
52
+ AmpersandAmpersand = "&&",
53
+ BarBar = "||",
54
+ Question = "?",
55
+ Colon = ":",
56
+ Equals = "=",
57
+ PlusEquals = "+=",
58
+ MinusEquals = "-=",
59
+ AsteriskEquals = "*=",
60
+ AsteriskAsteriskEquals = "**=",
61
+ SlashEquals = "/=",
62
+ PercentEquals = "%=",
63
+ LessThanLessThanEquals = "<<=",
64
+ GreaterThanGreaterThanEquals = ">>=",
65
+ GreaterThanGreaterThanGreaterThanEquals = ">>>=",
66
+ AmpersandEquals = "&=",
67
+ BarEquals = "|=",
68
+ CaretEquals = "^=",
69
+ AmpersandAmpersandEquals = "&&=",
70
+ BarBarEquals = "||=",
71
+ QuestionQuestionEquals = "??=",
72
+ QuestionQuestion = "??",
73
+ QuestionDot = "?.",
74
+ At = "@",
75
+ Hash = "#",
76
+ Backtick = "`",
77
+ AbstractKeyword = "abstract",
78
+ AnyKeyword = "any",
79
+ AsKeyword = "as",
80
+ AssertsKeyword = "asserts",
81
+ AsyncKeyword = "async",
82
+ AwaitKeyword = "await",
83
+ BigIntKeyword = "bigint",
84
+ BooleanKeyword = "boolean",
85
+ BreakKeyword = "break",
86
+ CaseKeyword = "case",
87
+ CatchKeyword = "catch",
88
+ ClassKeyword = "class",
89
+ ConstKeyword = "const",
90
+ ConstructorKeyword = "constructor",
91
+ ContinueKeyword = "continue",
92
+ DebuggerKeyword = "debugger",
93
+ DeclareKeyword = "declare",
94
+ DefaultKeyword = "default",
95
+ DeleteKeyword = "delete",
96
+ DoKeyword = "do",
97
+ ElseKeyword = "else",
98
+ EnumKeyword = "enum",
99
+ ExportKeyword = "export",
100
+ ExtendsKeyword = "extends",
101
+ FalseKeyword = "false",
102
+ FinallyKeyword = "finally",
103
+ ForKeyword = "for",
104
+ FromKeyword = "from",
105
+ FunctionKeyword = "function",
106
+ GetKeyword = "get",
107
+ IfKeyword = "if",
108
+ ImplementsKeyword = "implements",
109
+ ImportKeyword = "import",
110
+ InKeyword = "in",
111
+ InferKeyword = "infer",
112
+ InstanceOfKeyword = "instanceof",
113
+ InterfaceKeyword = "interface",
114
+ IsKeyword = "is",
115
+ KeyOfKeyword = "keyof",
116
+ LetKeyword = "let",
117
+ ModuleKeyword = "module",
118
+ NamespaceKeyword = "namespace",
119
+ NeverKeyword = "never",
120
+ NewKeyword = "new",
121
+ NullKeyword = "null",
122
+ NumberKeyword = "number",
123
+ ObjectKeyword = "object",
124
+ PackageKeyword = "package",
125
+ PrivateKeyword = "private",
126
+ ProtectedKeyword = "protected",
127
+ PublicKeyword = "public",
128
+ ReadonlyKeyword = "readonly",
129
+ ReturnKeyword = "return",
130
+ SatisfiesKeyword = "satisfies",
131
+ SetKeyword = "set",
132
+ StaticKeyword = "static",
133
+ StringKeyword = "string",
134
+ SuperKeyword = "super",
135
+ SwitchKeyword = "switch",
136
+ SymbolKeyword = "symbol",
137
+ ThisKeyword = "this",
138
+ ThrowKeyword = "throw",
139
+ TrueKeyword = "true",
140
+ TryKeyword = "try",
141
+ TypeKeyword = "type",
142
+ TypeOfKeyword = "typeof",
143
+ UndefinedKeyword = "undefined",
144
+ UniqueKeyword = "unique",
145
+ UnknownKeyword = "unknown",
146
+ VarKeyword = "var",
147
+ VoidKeyword = "void",
148
+ WhileKeyword = "while",
149
+ WithKeyword = "with",
150
+ YieldKeyword = "yield"
151
+ }
152
+ export interface Token {
153
+ readonly kind: TokenKind;
154
+ readonly start: number;
155
+ readonly end: number;
156
+ /** Raw source text of the token. */
157
+ readonly text: string;
158
+ /** Decoded value for string/number/template tokens. */
159
+ readonly value?: string | number | bigint;
160
+ /** True when a newline appeared between the previous token and this one. */
161
+ readonly precededByLineBreak: boolean;
162
+ }
163
+ export declare const KEYWORDS: Map<string, TokenKind>;
164
+ /**
165
+ * Keywords that are allowed in identifier position in some contexts and should
166
+ * therefore not be treated as hard errors when used as a name.
167
+ */
168
+ export declare const CONTEXTUAL_KEYWORDS: ReadonlySet<TokenKind>;
169
+ /** True when the token text is the contextual `of` keyword. */
170
+ export declare function isOfKeyword(token: Token): boolean;
@@ -0,0 +1,250 @@
1
+ /**
2
+ * Token taxonomy for the xbintsc lexer. Kept close to the TypeScript grammar so
3
+ * the parser can stay a direct recursive-descent transcription of the spec.
4
+ */
5
+ export var TokenKind;
6
+ (function (TokenKind) {
7
+ TokenKind["EndOfFile"] = "EndOfFile";
8
+ TokenKind["Identifier"] = "Identifier";
9
+ TokenKind["PrivateIdentifier"] = "PrivateIdentifier";
10
+ TokenKind["NumericLiteral"] = "NumericLiteral";
11
+ TokenKind["BigIntLiteral"] = "BigIntLiteral";
12
+ TokenKind["StringLiteral"] = "StringLiteral";
13
+ TokenKind["NoSubstitutionTemplateLiteral"] = "NoSubstitutionTemplateLiteral";
14
+ TokenKind["TemplateHead"] = "TemplateHead";
15
+ TokenKind["TemplateMiddle"] = "TemplateMiddle";
16
+ TokenKind["TemplateTail"] = "TemplateTail";
17
+ TokenKind["RegularExpressionLiteral"] = "RegularExpressionLiteral";
18
+ // Punctuation
19
+ TokenKind["OpenBrace"] = "{";
20
+ TokenKind["CloseBrace"] = "}";
21
+ TokenKind["OpenParen"] = "(";
22
+ TokenKind["CloseParen"] = ")";
23
+ TokenKind["OpenBracket"] = "[";
24
+ TokenKind["CloseBracket"] = "]";
25
+ TokenKind["Dot"] = ".";
26
+ TokenKind["DotDotDot"] = "...";
27
+ TokenKind["Semicolon"] = ";";
28
+ TokenKind["Comma"] = ",";
29
+ TokenKind["LessThan"] = "<";
30
+ TokenKind["GreaterThan"] = ">";
31
+ TokenKind["LessThanEquals"] = "<=";
32
+ TokenKind["GreaterThanEquals"] = ">=";
33
+ TokenKind["EqualsEquals"] = "==";
34
+ TokenKind["ExclamationEquals"] = "!=";
35
+ TokenKind["EqualsEqualsEquals"] = "===";
36
+ TokenKind["ExclamationEqualsEquals"] = "!==";
37
+ TokenKind["EqualsGreaterThan"] = "=>";
38
+ TokenKind["Plus"] = "+";
39
+ TokenKind["Minus"] = "-";
40
+ TokenKind["Asterisk"] = "*";
41
+ TokenKind["AsteriskAsterisk"] = "**";
42
+ TokenKind["Slash"] = "/";
43
+ TokenKind["Percent"] = "%";
44
+ TokenKind["PlusPlus"] = "++";
45
+ TokenKind["MinusMinus"] = "--";
46
+ TokenKind["LessThanLessThan"] = "<<";
47
+ TokenKind["GreaterThanGreaterThan"] = ">>";
48
+ TokenKind["GreaterThanGreaterThanGreaterThan"] = ">>>";
49
+ TokenKind["Ampersand"] = "&";
50
+ TokenKind["Bar"] = "|";
51
+ TokenKind["Caret"] = "^";
52
+ TokenKind["Exclamation"] = "!";
53
+ TokenKind["Tilde"] = "~";
54
+ TokenKind["AmpersandAmpersand"] = "&&";
55
+ TokenKind["BarBar"] = "||";
56
+ TokenKind["Question"] = "?";
57
+ TokenKind["Colon"] = ":";
58
+ TokenKind["Equals"] = "=";
59
+ TokenKind["PlusEquals"] = "+=";
60
+ TokenKind["MinusEquals"] = "-=";
61
+ TokenKind["AsteriskEquals"] = "*=";
62
+ TokenKind["AsteriskAsteriskEquals"] = "**=";
63
+ TokenKind["SlashEquals"] = "/=";
64
+ TokenKind["PercentEquals"] = "%=";
65
+ TokenKind["LessThanLessThanEquals"] = "<<=";
66
+ TokenKind["GreaterThanGreaterThanEquals"] = ">>=";
67
+ TokenKind["GreaterThanGreaterThanGreaterThanEquals"] = ">>>=";
68
+ TokenKind["AmpersandEquals"] = "&=";
69
+ TokenKind["BarEquals"] = "|=";
70
+ TokenKind["CaretEquals"] = "^=";
71
+ TokenKind["AmpersandAmpersandEquals"] = "&&=";
72
+ TokenKind["BarBarEquals"] = "||=";
73
+ TokenKind["QuestionQuestionEquals"] = "??=";
74
+ TokenKind["QuestionQuestion"] = "??";
75
+ TokenKind["QuestionDot"] = "?.";
76
+ TokenKind["At"] = "@";
77
+ TokenKind["Hash"] = "#";
78
+ TokenKind["Backtick"] = "`";
79
+ // Keywords (subset that xbintsc understands today, but the full set is tokenized
80
+ // so the parser can produce good "unsupported" diagnostics rather than
81
+ // confusing "unexpected token" errors).
82
+ TokenKind["AbstractKeyword"] = "abstract";
83
+ TokenKind["AnyKeyword"] = "any";
84
+ TokenKind["AsKeyword"] = "as";
85
+ TokenKind["AssertsKeyword"] = "asserts";
86
+ TokenKind["AsyncKeyword"] = "async";
87
+ TokenKind["AwaitKeyword"] = "await";
88
+ TokenKind["BigIntKeyword"] = "bigint";
89
+ TokenKind["BooleanKeyword"] = "boolean";
90
+ TokenKind["BreakKeyword"] = "break";
91
+ TokenKind["CaseKeyword"] = "case";
92
+ TokenKind["CatchKeyword"] = "catch";
93
+ TokenKind["ClassKeyword"] = "class";
94
+ TokenKind["ConstKeyword"] = "const";
95
+ TokenKind["ConstructorKeyword"] = "constructor";
96
+ TokenKind["ContinueKeyword"] = "continue";
97
+ TokenKind["DebuggerKeyword"] = "debugger";
98
+ TokenKind["DeclareKeyword"] = "declare";
99
+ TokenKind["DefaultKeyword"] = "default";
100
+ TokenKind["DeleteKeyword"] = "delete";
101
+ TokenKind["DoKeyword"] = "do";
102
+ TokenKind["ElseKeyword"] = "else";
103
+ TokenKind["EnumKeyword"] = "enum";
104
+ TokenKind["ExportKeyword"] = "export";
105
+ TokenKind["ExtendsKeyword"] = "extends";
106
+ TokenKind["FalseKeyword"] = "false";
107
+ TokenKind["FinallyKeyword"] = "finally";
108
+ TokenKind["ForKeyword"] = "for";
109
+ TokenKind["FromKeyword"] = "from";
110
+ TokenKind["FunctionKeyword"] = "function";
111
+ TokenKind["GetKeyword"] = "get";
112
+ TokenKind["IfKeyword"] = "if";
113
+ TokenKind["ImplementsKeyword"] = "implements";
114
+ TokenKind["ImportKeyword"] = "import";
115
+ TokenKind["InKeyword"] = "in";
116
+ TokenKind["InferKeyword"] = "infer";
117
+ TokenKind["InstanceOfKeyword"] = "instanceof";
118
+ TokenKind["InterfaceKeyword"] = "interface";
119
+ TokenKind["IsKeyword"] = "is";
120
+ TokenKind["KeyOfKeyword"] = "keyof";
121
+ TokenKind["LetKeyword"] = "let";
122
+ TokenKind["ModuleKeyword"] = "module";
123
+ TokenKind["NamespaceKeyword"] = "namespace";
124
+ TokenKind["NeverKeyword"] = "never";
125
+ TokenKind["NewKeyword"] = "new";
126
+ TokenKind["NullKeyword"] = "null";
127
+ TokenKind["NumberKeyword"] = "number";
128
+ TokenKind["ObjectKeyword"] = "object";
129
+ TokenKind["PackageKeyword"] = "package";
130
+ TokenKind["PrivateKeyword"] = "private";
131
+ TokenKind["ProtectedKeyword"] = "protected";
132
+ TokenKind["PublicKeyword"] = "public";
133
+ TokenKind["ReadonlyKeyword"] = "readonly";
134
+ TokenKind["ReturnKeyword"] = "return";
135
+ TokenKind["SatisfiesKeyword"] = "satisfies";
136
+ TokenKind["SetKeyword"] = "set";
137
+ TokenKind["StaticKeyword"] = "static";
138
+ TokenKind["StringKeyword"] = "string";
139
+ TokenKind["SuperKeyword"] = "super";
140
+ TokenKind["SwitchKeyword"] = "switch";
141
+ TokenKind["SymbolKeyword"] = "symbol";
142
+ TokenKind["ThisKeyword"] = "this";
143
+ TokenKind["ThrowKeyword"] = "throw";
144
+ TokenKind["TrueKeyword"] = "true";
145
+ TokenKind["TryKeyword"] = "try";
146
+ TokenKind["TypeKeyword"] = "type";
147
+ TokenKind["TypeOfKeyword"] = "typeof";
148
+ TokenKind["UndefinedKeyword"] = "undefined";
149
+ TokenKind["UniqueKeyword"] = "unique";
150
+ TokenKind["UnknownKeyword"] = "unknown";
151
+ TokenKind["VarKeyword"] = "var";
152
+ TokenKind["VoidKeyword"] = "void";
153
+ TokenKind["WhileKeyword"] = "while";
154
+ TokenKind["WithKeyword"] = "with";
155
+ TokenKind["YieldKeyword"] = "yield";
156
+ })(TokenKind || (TokenKind = {}));
157
+ export const KEYWORDS = new Map([
158
+ ["abstract", TokenKind.AbstractKeyword],
159
+ ["any", TokenKind.AnyKeyword],
160
+ ["as", TokenKind.AsKeyword],
161
+ ["asserts", TokenKind.AssertsKeyword],
162
+ ["async", TokenKind.AsyncKeyword],
163
+ ["await", TokenKind.AwaitKeyword],
164
+ ["bigint", TokenKind.BigIntKeyword],
165
+ ["boolean", TokenKind.BooleanKeyword],
166
+ ["break", TokenKind.BreakKeyword],
167
+ ["case", TokenKind.CaseKeyword],
168
+ ["catch", TokenKind.CatchKeyword],
169
+ ["class", TokenKind.ClassKeyword],
170
+ ["const", TokenKind.ConstKeyword],
171
+ ["constructor", TokenKind.ConstructorKeyword],
172
+ ["continue", TokenKind.ContinueKeyword],
173
+ ["debugger", TokenKind.DebuggerKeyword],
174
+ ["declare", TokenKind.DeclareKeyword],
175
+ ["default", TokenKind.DefaultKeyword],
176
+ ["delete", TokenKind.DeleteKeyword],
177
+ ["do", TokenKind.DoKeyword],
178
+ ["else", TokenKind.ElseKeyword],
179
+ ["enum", TokenKind.EnumKeyword],
180
+ ["export", TokenKind.ExportKeyword],
181
+ ["extends", TokenKind.ExtendsKeyword],
182
+ ["false", TokenKind.FalseKeyword],
183
+ ["finally", TokenKind.FinallyKeyword],
184
+ ["for", TokenKind.ForKeyword],
185
+ ["from", TokenKind.FromKeyword],
186
+ ["function", TokenKind.FunctionKeyword],
187
+ ["get", TokenKind.GetKeyword],
188
+ ["if", TokenKind.IfKeyword],
189
+ ["implements", TokenKind.ImplementsKeyword],
190
+ ["import", TokenKind.ImportKeyword],
191
+ ["in", TokenKind.InKeyword],
192
+ ["infer", TokenKind.InferKeyword],
193
+ ["instanceof", TokenKind.InstanceOfKeyword],
194
+ ["interface", TokenKind.InterfaceKeyword],
195
+ ["is", TokenKind.IsKeyword],
196
+ ["keyof", TokenKind.KeyOfKeyword],
197
+ ["let", TokenKind.LetKeyword],
198
+ ["module", TokenKind.ModuleKeyword],
199
+ ["namespace", TokenKind.NamespaceKeyword],
200
+ ["never", TokenKind.NeverKeyword],
201
+ ["new", TokenKind.NewKeyword],
202
+ ["null", TokenKind.NullKeyword],
203
+ ["number", TokenKind.NumberKeyword],
204
+ ["object", TokenKind.ObjectKeyword],
205
+ ["package", TokenKind.PackageKeyword],
206
+ ["private", TokenKind.PrivateKeyword],
207
+ ["protected", TokenKind.ProtectedKeyword],
208
+ ["public", TokenKind.PublicKeyword],
209
+ ["readonly", TokenKind.ReadonlyKeyword],
210
+ ["return", TokenKind.ReturnKeyword],
211
+ ["satisfies", TokenKind.SatisfiesKeyword],
212
+ ["set", TokenKind.SetKeyword],
213
+ ["static", TokenKind.StaticKeyword],
214
+ ["string", TokenKind.StringKeyword],
215
+ ["super", TokenKind.SuperKeyword],
216
+ ["switch", TokenKind.SwitchKeyword],
217
+ ["symbol", TokenKind.SymbolKeyword],
218
+ ["this", TokenKind.ThisKeyword],
219
+ ["throw", TokenKind.ThrowKeyword],
220
+ ["true", TokenKind.TrueKeyword],
221
+ ["try", TokenKind.TryKeyword],
222
+ ["type", TokenKind.TypeKeyword],
223
+ ["typeof", TokenKind.TypeOfKeyword],
224
+ ["undefined", TokenKind.UndefinedKeyword],
225
+ ["unique", TokenKind.UniqueKeyword],
226
+ ["unknown", TokenKind.UnknownKeyword],
227
+ ["var", TokenKind.VarKeyword],
228
+ ["void", TokenKind.VoidKeyword],
229
+ ["while", TokenKind.WhileKeyword],
230
+ ["with", TokenKind.WithKeyword],
231
+ ["yield", TokenKind.YieldKeyword],
232
+ ]);
233
+ /**
234
+ * Keywords that are allowed in identifier position in some contexts and should
235
+ * therefore not be treated as hard errors when used as a name.
236
+ */
237
+ export const CONTEXTUAL_KEYWORDS = new Set([
238
+ TokenKind.AsKeyword,
239
+ TokenKind.SatisfiesKeyword,
240
+ TokenKind.FromKeyword,
241
+ TokenKind.TypeKeyword,
242
+ TokenKind.GetKeyword,
243
+ TokenKind.SetKeyword,
244
+ TokenKind.AsyncKeyword,
245
+ ]);
246
+ /** True when the token text is the contextual `of` keyword. */
247
+ export function isOfKeyword(token) {
248
+ return token.kind === TokenKind.Identifier && token.text === "of";
249
+ }
250
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/lexer/token.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ import { DiagnosticBag } from "../diagnostics/diagnostic.js";
2
+ import type { SourceFile } from "../diagnostics/source.js";
3
+ import { type Expression, type SourceFileNode, type TypeNode } from "../ast/nodes.js";
4
+ /**
5
+ * Recursive-descent parser for TypeScript.
6
+ *
7
+ * Type syntax is parsed for structure but erased before code generation; the
8
+ * parser is therefore permissive about types while the backend focuses on the
9
+ * value-level language.
10
+ */
11
+ export declare class Parser {
12
+ private readonly scanner;
13
+ private readonly diagnostics;
14
+ private readonly source;
15
+ private tokens;
16
+ private index;
17
+ /** Non-zero while a speculative parse is running; errors abort the attempt. */
18
+ private speculating;
19
+ /** Monotonic count of tokens consumed; used to detect lack of progress. */
20
+ private consumed;
21
+ constructor(source: SourceFile, diagnostics: DiagnosticBag);
22
+ private get token();
23
+ /**
24
+ * Compare the current token kind without triggering TypeScript's control-flow
25
+ * narrowing of `this.token.kind`, which would otherwise be invalidated by the
26
+ * calls to `nextToken()` that occur between checks.
27
+ */
28
+ private at;
29
+ private atAhead;
30
+ private lookAhead;
31
+ private nextToken;
32
+ private parseExpected;
33
+ private error;
34
+ /**
35
+ * Run `fn` speculatively. Any diagnostic raised while it runs (which aborts
36
+ * the attempt via `SpeculationError`) is rolled back along with the scanner
37
+ * position, so the parser can try a different production cleanly.
38
+ */
39
+ private tryParse;
40
+ private isIdentifierLike;
41
+ private parseIdentifier;
42
+ private parseIdentifierName;
43
+ private parseSemicolon;
44
+ private canInsertSemicolon;
45
+ private parseDelimitedList;
46
+ parseSourceFile(): SourceFileNode;
47
+ private tryParseModifiers;
48
+ private hasModifier;
49
+ private parseStatement;
50
+ private parseStatementWithModifiers;
51
+ private parseBlock;
52
+ private parseVariableStatement;
53
+ private parseVariableDeclarationList;
54
+ private parseVariableDeclaration;
55
+ private parseIfStatement;
56
+ private parseWhileStatement;
57
+ private parseDoStatement;
58
+ private parseForStatement;
59
+ private parseReturnStatement;
60
+ private parseBreakStatement;
61
+ private parseContinueStatement;
62
+ private parseThrowStatement;
63
+ private parseTryStatement;
64
+ private parseSwitchStatement;
65
+ private parseExpressionStatement;
66
+ private parseFunctionDeclaration;
67
+ private parseTypeParameters;
68
+ /** Consume a `>` that may have been lexed as `>>` / `>>>`, splitting it. */
69
+ private parseGreaterThan;
70
+ private parseParameters;
71
+ private parseReturnType;
72
+ private parseClassDeclaration;
73
+ private parseHeritageClauses;
74
+ private parseClassMembers;
75
+ private parseClassElement;
76
+ private parsePropertyName;
77
+ private parseInterfaceDeclaration;
78
+ private parseTypeAliasDeclaration;
79
+ private parseEnumDeclaration;
80
+ private parseModuleDeclaration;
81
+ private parseTypeMembers;
82
+ private parseTypeMember;
83
+ private parseSemicolonOrComma;
84
+ private parseImportDeclaration;
85
+ private parseNamedImports;
86
+ private parseExportDeclaration;
87
+ private parseNamedExports;
88
+ private stringLiteralFromToken;
89
+ private saveState;
90
+ private restoreState;
91
+ parseExpression(noIn?: boolean): Expression;
92
+ private parseAssignmentExpression;
93
+ private tryParseArrowFunction;
94
+ private countTypeParameterTokens;
95
+ private findMatchingParen;
96
+ private skipTypeTokens;
97
+ private parseConditionalExpression;
98
+ private parseBinaryExpression;
99
+ private parseUnaryExpression;
100
+ private parsePostfixExpression;
101
+ private parseLeftHandSideExpression;
102
+ private parseNewExpression;
103
+ private parseMemberOnlyExpression;
104
+ private parsePrimaryExpression;
105
+ private parseCallAndMemberTail;
106
+ private previousEnd;
107
+ private parsePropertyAccess;
108
+ private parseArguments;
109
+ private parseArrayLiteral;
110
+ private parseObjectLiteral;
111
+ private parseFunctionExpression;
112
+ private parseClassExpression;
113
+ private parseTemplateLiteral;
114
+ private parseRegularExpression;
115
+ private parseTypeArguments;
116
+ parseType(): TypeNode;
117
+ private parseUnionType;
118
+ private parseIntersectionType;
119
+ private parseTypeOperatorOrHigher;
120
+ private parsePostfixType;
121
+ private parsePrimaryType;
122
+ private previousTypeEnd;
123
+ private parseEntityName;
124
+ private parseFunctionType;
125
+ private parseTupleType;
126
+ private parseTypeLiteral;
127
+ }