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