c-next 0.2.12 → 0.2.13
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.
- package/README.md +80 -649
- package/dist/index.js +7387 -6211
- package/dist/index.js.map +4 -4
- package/grammar/C.g4 +9 -3
- package/package.json +1 -2
- package/src/__tests__/index.test.ts +1 -1
- package/src/cli/CleanCommand.ts +8 -12
- package/src/cli/Cli.ts +29 -6
- package/src/cli/Runner.ts +42 -62
- package/src/cli/__tests__/CleanCommand.test.ts +10 -10
- package/src/cli/__tests__/Cli.test.ts +59 -7
- package/src/cli/__tests__/ConfigPrinter.test.ts +12 -12
- package/src/cli/__tests__/PathNormalizer.test.ts +5 -5
- package/src/cli/__tests__/Runner.test.ts +108 -82
- package/src/cli/serve/ServeCommand.ts +1 -1
- package/src/cli/types/ICliConfig.ts +2 -2
- package/src/lib/parseWithSymbols.ts +21 -21
- package/src/transpiler/Transpiler.ts +88 -43
- package/src/transpiler/__tests__/DualCodePaths.test.ts +29 -29
- package/src/transpiler/__tests__/Transpiler.coverage.test.ts +244 -72
- package/src/transpiler/__tests__/Transpiler.test.ts +32 -72
- package/src/transpiler/__tests__/determineProjectRoot.test.ts +30 -28
- package/src/transpiler/__tests__/needsConditionalPreprocessing.test.ts +1 -1
- package/src/transpiler/data/CNextMarkerDetector.ts +34 -0
- package/src/transpiler/data/CppEntryPointScanner.ts +174 -0
- package/src/transpiler/data/FileDiscovery.ts +2 -105
- package/src/transpiler/data/InputExpansion.ts +37 -81
- package/src/transpiler/data/__tests__/CNextMarkerDetector.test.ts +62 -0
- package/src/transpiler/data/__tests__/CppEntryPointScanner.test.ts +239 -0
- package/src/transpiler/data/__tests__/FileDiscovery.test.ts +45 -191
- package/src/transpiler/data/__tests__/InputExpansion.test.ts +36 -204
- package/src/transpiler/logic/analysis/InitializationAnalyzer.ts +2 -2
- package/src/transpiler/logic/analysis/PassByValueAnalyzer.ts +4 -5
- package/src/transpiler/logic/parser/c/grammar/C.interp +19 -1
- package/src/transpiler/logic/parser/c/grammar/C.tokens +231 -213
- package/src/transpiler/logic/parser/c/grammar/CLexer.interp +28 -1
- package/src/transpiler/logic/parser/c/grammar/CLexer.tokens +231 -213
- package/src/transpiler/logic/parser/c/grammar/CLexer.ts +654 -600
- package/src/transpiler/logic/parser/c/grammar/CParser.ts +1175 -1099
- package/src/transpiler/logic/symbols/SymbolTable.ts +19 -7
- package/src/transpiler/logic/symbols/__tests__/SymbolTable.test.ts +78 -0
- package/src/transpiler/logic/symbols/cnext/__tests__/TSymbolInfoAdapter.test.ts +6 -6
- package/src/transpiler/logic/symbols/cnext/adapters/TSymbolInfoAdapter.ts +28 -27
- package/src/transpiler/logic/symbols/cnext/index.ts +4 -4
- package/src/transpiler/logic/symbols/cnext/utils/SymbolNameUtils.ts +5 -5
- package/src/transpiler/output/codegen/CodeGenerator.ts +7 -1
- package/src/transpiler/output/codegen/__tests__/CodeGenerator.test.ts +15 -0
- package/src/transpiler/output/codegen/__tests__/ExpressionWalker.test.ts +3 -3
- package/src/transpiler/output/codegen/__tests__/RequireInclude.test.ts +14 -14
- package/src/transpiler/output/codegen/__tests__/TrackVariableTypeHelpers.test.ts +2 -2
- package/src/transpiler/output/codegen/utils/QualifiedNameGenerator.ts +7 -7
- package/src/transpiler/output/codegen/utils/__tests__/QualifiedNameGenerator.test.ts +3 -3
- package/src/transpiler/output/headers/BaseHeaderGenerator.ts +10 -1
- package/src/transpiler/output/headers/HeaderGenerator.ts +3 -0
- package/src/transpiler/output/headers/HeaderGeneratorUtils.ts +6 -2
- package/src/transpiler/output/headers/__tests__/HeaderGeneratorUtils.test.ts +16 -0
- package/src/transpiler/output/headers/adapters/HeaderSymbolAdapter.ts +19 -19
- package/src/transpiler/output/headers/adapters/__tests__/HeaderSymbolAdapter.test.ts +5 -5
- package/src/transpiler/state/SymbolRegistry.ts +10 -12
- package/src/transpiler/state/__tests__/SymbolRegistry.test.ts +11 -13
- package/src/transpiler/types/IPipelineFile.ts +3 -0
- package/src/transpiler/types/ITranspilerConfig.ts +2 -2
- package/src/transpiler/types/symbols/IScopeSymbol.ts +1 -1
- package/src/utils/FunctionUtils.ts +3 -3
- package/src/utils/__tests__/FunctionUtils.test.ts +6 -4
- package/src/transpiler/data/types/IDiscoveryOptions.ts +0 -15
|
@@ -23,219 +23,237 @@ T__21=22
|
|
|
23
23
|
T__22=23
|
|
24
24
|
T__23=24
|
|
25
25
|
T__24=25
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
26
|
+
T__25=26
|
|
27
|
+
T__26=27
|
|
28
|
+
T__27=28
|
|
29
|
+
T__28=29
|
|
30
|
+
T__29=30
|
|
31
|
+
T__30=31
|
|
32
|
+
T__31=32
|
|
33
|
+
T__32=33
|
|
34
|
+
T__33=34
|
|
35
|
+
Auto=35
|
|
36
|
+
Break=36
|
|
37
|
+
Case=37
|
|
38
|
+
Char=38
|
|
39
|
+
Const=39
|
|
40
|
+
Continue=40
|
|
41
|
+
Default=41
|
|
42
|
+
Do=42
|
|
43
|
+
Double=43
|
|
44
|
+
Else=44
|
|
45
|
+
Enum=45
|
|
46
|
+
Extern=46
|
|
47
|
+
Float=47
|
|
48
|
+
For=48
|
|
49
|
+
Goto=49
|
|
50
|
+
If=50
|
|
51
|
+
Inline=51
|
|
52
|
+
Int=52
|
|
53
|
+
Long=53
|
|
54
|
+
Register=54
|
|
55
|
+
Restrict=55
|
|
56
|
+
Return=56
|
|
57
|
+
Short=57
|
|
58
|
+
Signed=58
|
|
59
|
+
Sizeof=59
|
|
60
|
+
Static=60
|
|
61
|
+
Struct=61
|
|
62
|
+
Switch=62
|
|
63
|
+
Typedef=63
|
|
64
|
+
Union=64
|
|
65
|
+
Unsigned=65
|
|
66
|
+
Void=66
|
|
67
|
+
Volatile=67
|
|
68
|
+
While=68
|
|
69
|
+
Alignas=69
|
|
70
|
+
Alignof=70
|
|
71
|
+
Atomic=71
|
|
72
|
+
Bool=72
|
|
73
|
+
Complex=73
|
|
74
|
+
Generic=74
|
|
75
|
+
Imaginary=75
|
|
76
|
+
Noreturn=76
|
|
77
|
+
StaticAssert=77
|
|
78
|
+
ThreadLocal=78
|
|
79
|
+
LeftParen=79
|
|
80
|
+
RightParen=80
|
|
81
|
+
LeftBracket=81
|
|
82
|
+
RightBracket=82
|
|
83
|
+
LeftBrace=83
|
|
84
|
+
RightBrace=84
|
|
85
|
+
Less=85
|
|
86
|
+
LessEqual=86
|
|
87
|
+
Greater=87
|
|
88
|
+
GreaterEqual=88
|
|
89
|
+
LeftShift=89
|
|
90
|
+
RightShift=90
|
|
91
|
+
Plus=91
|
|
92
|
+
PlusPlus=92
|
|
93
|
+
Minus=93
|
|
94
|
+
MinusMinus=94
|
|
95
|
+
Star=95
|
|
96
|
+
Div=96
|
|
97
|
+
Mod=97
|
|
98
|
+
And=98
|
|
99
|
+
Or=99
|
|
100
|
+
AndAnd=100
|
|
101
|
+
OrOr=101
|
|
102
|
+
Caret=102
|
|
103
|
+
Not=103
|
|
104
|
+
Tilde=104
|
|
105
|
+
Question=105
|
|
106
|
+
Colon=106
|
|
107
|
+
Semi=107
|
|
108
|
+
Comma=108
|
|
109
|
+
Assign=109
|
|
110
|
+
StarAssign=110
|
|
111
|
+
DivAssign=111
|
|
112
|
+
ModAssign=112
|
|
113
|
+
PlusAssign=113
|
|
114
|
+
MinusAssign=114
|
|
115
|
+
LeftShiftAssign=115
|
|
116
|
+
RightShiftAssign=116
|
|
117
|
+
AndAssign=117
|
|
118
|
+
XorAssign=118
|
|
119
|
+
OrAssign=119
|
|
120
|
+
Equal=120
|
|
121
|
+
NotEqual=121
|
|
122
|
+
Arrow=122
|
|
123
|
+
Dot=123
|
|
124
|
+
Ellipsis=124
|
|
125
|
+
Identifier=125
|
|
126
|
+
Constant=126
|
|
127
|
+
DigitSequence=127
|
|
128
|
+
StringLiteral=128
|
|
129
|
+
MultiLineMacro=129
|
|
130
|
+
Directive=130
|
|
131
|
+
AsmBlock=131
|
|
132
|
+
Whitespace=132
|
|
133
|
+
Newline=133
|
|
134
|
+
BlockComment=134
|
|
135
|
+
LineComment=135
|
|
127
136
|
'__extension__'=1
|
|
128
137
|
'__builtin_va_arg'=2
|
|
129
138
|
'__builtin_offsetof'=3
|
|
130
|
-
'
|
|
131
|
-
'
|
|
132
|
-
'
|
|
133
|
-
'
|
|
134
|
-
'
|
|
135
|
-
'
|
|
136
|
-
'
|
|
137
|
-
'
|
|
138
|
-
'
|
|
139
|
-
'
|
|
140
|
-
'
|
|
141
|
-
'
|
|
142
|
-
'
|
|
143
|
-
'
|
|
144
|
-
'
|
|
145
|
-
'
|
|
146
|
-
'
|
|
147
|
-
'
|
|
148
|
-
'
|
|
149
|
-
'
|
|
150
|
-
'
|
|
151
|
-
'
|
|
152
|
-
'
|
|
153
|
-
'
|
|
154
|
-
'
|
|
155
|
-
'
|
|
156
|
-
'
|
|
157
|
-
'
|
|
158
|
-
'
|
|
159
|
-
'
|
|
160
|
-
'
|
|
161
|
-
'
|
|
162
|
-
'
|
|
163
|
-
'
|
|
164
|
-
'
|
|
165
|
-
'
|
|
166
|
-
'
|
|
167
|
-
'
|
|
168
|
-
'
|
|
169
|
-
'
|
|
170
|
-
'
|
|
171
|
-
'
|
|
172
|
-
'
|
|
173
|
-
'
|
|
174
|
-
'
|
|
175
|
-
'
|
|
176
|
-
'
|
|
177
|
-
'
|
|
178
|
-
'
|
|
179
|
-
'
|
|
180
|
-
'
|
|
181
|
-
'
|
|
182
|
-
'
|
|
183
|
-
'
|
|
184
|
-
'
|
|
185
|
-
'
|
|
186
|
-
'
|
|
187
|
-
'
|
|
188
|
-
'
|
|
189
|
-
'
|
|
190
|
-
'
|
|
191
|
-
'
|
|
192
|
-
'
|
|
193
|
-
'
|
|
194
|
-
'
|
|
195
|
-
'
|
|
196
|
-
'
|
|
197
|
-
'
|
|
198
|
-
'
|
|
199
|
-
'
|
|
200
|
-
'
|
|
201
|
-
'
|
|
202
|
-
'
|
|
203
|
-
'
|
|
204
|
-
'
|
|
205
|
-
'
|
|
206
|
-
'
|
|
207
|
-
'
|
|
208
|
-
'
|
|
209
|
-
'
|
|
210
|
-
'
|
|
211
|
-
'
|
|
212
|
-
'
|
|
213
|
-
'
|
|
214
|
-
'
|
|
215
|
-
'
|
|
216
|
-
'
|
|
217
|
-
'
|
|
218
|
-
'
|
|
219
|
-
'
|
|
220
|
-
'
|
|
221
|
-
'
|
|
222
|
-
'
|
|
223
|
-
'
|
|
224
|
-
'
|
|
225
|
-
'
|
|
226
|
-
'
|
|
227
|
-
'
|
|
228
|
-
'
|
|
229
|
-
'
|
|
230
|
-
'
|
|
231
|
-
'
|
|
232
|
-
'
|
|
233
|
-
'
|
|
234
|
-
'
|
|
235
|
-
'
|
|
236
|
-
'
|
|
237
|
-
'
|
|
238
|
-
'
|
|
239
|
-
'
|
|
240
|
-
'
|
|
241
|
-
'
|
|
139
|
+
'__alignof__'=4
|
|
140
|
+
'__alignof'=5
|
|
141
|
+
'__thread'=6
|
|
142
|
+
'__signed'=7
|
|
143
|
+
'__signed__'=8
|
|
144
|
+
'__m128'=9
|
|
145
|
+
'__m128d'=10
|
|
146
|
+
'__m128i'=11
|
|
147
|
+
'__int128'=12
|
|
148
|
+
'__int128_t'=13
|
|
149
|
+
'__uint128_t'=14
|
|
150
|
+
'__typeof__'=15
|
|
151
|
+
'__typeof'=16
|
|
152
|
+
'__const'=17
|
|
153
|
+
'__const__'=18
|
|
154
|
+
'__restrict'=19
|
|
155
|
+
'__restrict__'=20
|
|
156
|
+
'__volatile'=21
|
|
157
|
+
'__volatile__'=22
|
|
158
|
+
'__inline'=23
|
|
159
|
+
'__inline__'=24
|
|
160
|
+
'__stdcall'=25
|
|
161
|
+
'__declspec'=26
|
|
162
|
+
'__cdecl'=27
|
|
163
|
+
'__clrcall'=28
|
|
164
|
+
'__fastcall'=29
|
|
165
|
+
'__thiscall'=30
|
|
166
|
+
'__vectorcall'=31
|
|
167
|
+
'__asm'=32
|
|
168
|
+
'__asm__'=33
|
|
169
|
+
'__attribute__'=34
|
|
170
|
+
'auto'=35
|
|
171
|
+
'break'=36
|
|
172
|
+
'case'=37
|
|
173
|
+
'char'=38
|
|
174
|
+
'const'=39
|
|
175
|
+
'continue'=40
|
|
176
|
+
'default'=41
|
|
177
|
+
'do'=42
|
|
178
|
+
'double'=43
|
|
179
|
+
'else'=44
|
|
180
|
+
'enum'=45
|
|
181
|
+
'extern'=46
|
|
182
|
+
'float'=47
|
|
183
|
+
'for'=48
|
|
184
|
+
'goto'=49
|
|
185
|
+
'if'=50
|
|
186
|
+
'inline'=51
|
|
187
|
+
'int'=52
|
|
188
|
+
'long'=53
|
|
189
|
+
'register'=54
|
|
190
|
+
'restrict'=55
|
|
191
|
+
'return'=56
|
|
192
|
+
'short'=57
|
|
193
|
+
'signed'=58
|
|
194
|
+
'sizeof'=59
|
|
195
|
+
'static'=60
|
|
196
|
+
'struct'=61
|
|
197
|
+
'switch'=62
|
|
198
|
+
'typedef'=63
|
|
199
|
+
'union'=64
|
|
200
|
+
'unsigned'=65
|
|
201
|
+
'void'=66
|
|
202
|
+
'volatile'=67
|
|
203
|
+
'while'=68
|
|
204
|
+
'_Alignas'=69
|
|
205
|
+
'_Alignof'=70
|
|
206
|
+
'_Atomic'=71
|
|
207
|
+
'_Bool'=72
|
|
208
|
+
'_Complex'=73
|
|
209
|
+
'_Generic'=74
|
|
210
|
+
'_Imaginary'=75
|
|
211
|
+
'_Noreturn'=76
|
|
212
|
+
'_Static_assert'=77
|
|
213
|
+
'_Thread_local'=78
|
|
214
|
+
'('=79
|
|
215
|
+
')'=80
|
|
216
|
+
'['=81
|
|
217
|
+
']'=82
|
|
218
|
+
'{'=83
|
|
219
|
+
'}'=84
|
|
220
|
+
'<'=85
|
|
221
|
+
'<='=86
|
|
222
|
+
'>'=87
|
|
223
|
+
'>='=88
|
|
224
|
+
'<<'=89
|
|
225
|
+
'>>'=90
|
|
226
|
+
'+'=91
|
|
227
|
+
'++'=92
|
|
228
|
+
'-'=93
|
|
229
|
+
'--'=94
|
|
230
|
+
'*'=95
|
|
231
|
+
'/'=96
|
|
232
|
+
'%'=97
|
|
233
|
+
'&'=98
|
|
234
|
+
'|'=99
|
|
235
|
+
'&&'=100
|
|
236
|
+
'||'=101
|
|
237
|
+
'^'=102
|
|
238
|
+
'!'=103
|
|
239
|
+
'~'=104
|
|
240
|
+
'?'=105
|
|
241
|
+
':'=106
|
|
242
|
+
';'=107
|
|
243
|
+
','=108
|
|
244
|
+
'='=109
|
|
245
|
+
'*='=110
|
|
246
|
+
'/='=111
|
|
247
|
+
'%='=112
|
|
248
|
+
'+='=113
|
|
249
|
+
'-='=114
|
|
250
|
+
'<<='=115
|
|
251
|
+
'>>='=116
|
|
252
|
+
'&='=117
|
|
253
|
+
'^='=118
|
|
254
|
+
'|='=119
|
|
255
|
+
'=='=120
|
|
256
|
+
'!='=121
|
|
257
|
+
'->'=122
|
|
258
|
+
'.'=123
|
|
259
|
+
'...'=124
|