@harmoniclabs/pebble 0.1.0-dev0 → 0.1.0-dev2

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 (769) hide show
  1. package/package.json +1 -1
  2. package/dist/IR/IRHash.d.ts +0 -8
  3. package/dist/IR/IRHash.js +0 -78
  4. package/dist/IR/IRNodeKind.d.ts +0 -17
  5. package/dist/IR/IRNodeKind.js +0 -19
  6. package/dist/IR/IRNodes/BaseIRMetadata.d.ts +0 -3
  7. package/dist/IR/IRNodes/BaseIRMetadata.js +0 -1
  8. package/dist/IR/IRNodes/IRApp.d.ts +0 -36
  9. package/dist/IR/IRNodes/IRApp.js +0 -91
  10. package/dist/IR/IRNodes/IRCase.d.ts +0 -32
  11. package/dist/IR/IRNodes/IRCase.js +0 -91
  12. package/dist/IR/IRNodes/IRConst.d.ts +0 -49
  13. package/dist/IR/IRNodes/IRConst.js +0 -273
  14. package/dist/IR/IRNodes/IRConstr.d.ts +0 -30
  15. package/dist/IR/IRNodes/IRConstr.js +0 -87
  16. package/dist/IR/IRNodes/IRDelayed.d.ts +0 -31
  17. package/dist/IR/IRNodes/IRDelayed.js +0 -68
  18. package/dist/IR/IRNodes/IRError.d.ts +0 -32
  19. package/dist/IR/IRNodes/IRError.js +0 -44
  20. package/dist/IR/IRNodes/IRForced.d.ts +0 -31
  21. package/dist/IR/IRNodes/IRForced.js +0 -69
  22. package/dist/IR/IRNodes/IRFunc.d.ts +0 -33
  23. package/dist/IR/IRNodes/IRFunc.js +0 -91
  24. package/dist/IR/IRNodes/IRHoisted.d.ts +0 -55
  25. package/dist/IR/IRNodes/IRHoisted.js +0 -212
  26. package/dist/IR/IRNodes/IRLetted.d.ts +0 -108
  27. package/dist/IR/IRNodes/IRLetted.js +0 -444
  28. package/dist/IR/IRNodes/IRNative/IRNativeTag.d.ts +0 -138
  29. package/dist/IR/IRNodes/IRNative/IRNativeTag.js +0 -204
  30. package/dist/IR/IRNodes/IRNative/index.d.ts +0 -165
  31. package/dist/IR/IRNodes/IRNative/index.js +0 -240
  32. package/dist/IR/IRNodes/IRNative/isForcedNative.d.ts +0 -3
  33. package/dist/IR/IRNodes/IRNative/isForcedNative.js +0 -18
  34. package/dist/IR/IRNodes/IRRecursive.d.ts +0 -29
  35. package/dist/IR/IRNodes/IRRecursive.js +0 -90
  36. package/dist/IR/IRNodes/IRSelfCall.d.ts +0 -46
  37. package/dist/IR/IRNodes/IRSelfCall.js +0 -127
  38. package/dist/IR/IRNodes/IRVar.d.ts +0 -41
  39. package/dist/IR/IRNodes/IRVar.js +0 -93
  40. package/dist/IR/IRNodes/index.d.ts +0 -12
  41. package/dist/IR/IRNodes/index.js +0 -12
  42. package/dist/IR/IRNodes/utils/dependsByDbns.d.ts +0 -5
  43. package/dist/IR/IRNodes/utils/dependsByDbns.js +0 -29
  44. package/dist/IR/IRNodes/utils/isClosedAtDbn.d.ts +0 -2
  45. package/dist/IR/IRNodes/utils/isClosedAtDbn.js +0 -22
  46. package/dist/IR/IRNodes/utils/makeArrayLikeProxy.d.ts +0 -1
  47. package/dist/IR/IRNodes/utils/makeArrayLikeProxy.js +0 -34
  48. package/dist/IR/IRNodes/utils/mapArrayLike.d.ts +0 -1
  49. package/dist/IR/IRNodes/utils/mapArrayLike.js +0 -8
  50. package/dist/IR/IRTerm.d.ts +0 -15
  51. package/dist/IR/IRTerm.js +0 -1
  52. package/dist/IR/index.d.ts +0 -5
  53. package/dist/IR/index.js +0 -5
  54. package/dist/IR/interfaces/IHash.d.ts +0 -6
  55. package/dist/IR/interfaces/IHash.js +0 -1
  56. package/dist/IR/interfaces/IIRParent.d.ts +0 -4
  57. package/dist/IR/interfaces/IIRParent.js +0 -1
  58. package/dist/IR/interfaces/IRMetadata.d.ts +0 -3
  59. package/dist/IR/interfaces/IRMetadata.js +0 -2
  60. package/dist/IR/interfaces/ToIR.d.ts +0 -5
  61. package/dist/IR/interfaces/ToIR.js +0 -1
  62. package/dist/IR/interfaces/index.d.ts +0 -4
  63. package/dist/IR/interfaces/index.js +0 -4
  64. package/dist/IR/toUPLC/CompilerOptions.d.ts +0 -80
  65. package/dist/IR/toUPLC/CompilerOptions.js +0 -98
  66. package/dist/IR/toUPLC/_internal/_addDepth.d.ts +0 -2
  67. package/dist/IR/toUPLC/_internal/_addDepth.js +0 -58
  68. package/dist/IR/toUPLC/_internal/_irToUplc.d.ts +0 -9
  69. package/dist/IR/toUPLC/_internal/_irToUplc.js +0 -156
  70. package/dist/IR/toUPLC/_internal/_makeAllNegativeNativesHoisted.d.ts +0 -2
  71. package/dist/IR/toUPLC/_internal/_makeAllNegativeNativesHoisted.js +0 -12
  72. package/dist/IR/toUPLC/_internal/_modifyChildFromTo.d.ts +0 -10
  73. package/dist/IR/toUPLC/_internal/_modifyChildFromTo.js +0 -141
  74. package/dist/IR/toUPLC/_internal/depth.d.ts +0 -5
  75. package/dist/IR/toUPLC/_internal/depth.js +0 -8
  76. package/dist/IR/toUPLC/_internal/findAll.d.ts +0 -3
  77. package/dist/IR/toUPLC/_internal/findAll.js +0 -99
  78. package/dist/IR/toUPLC/_internal/getDebruijnInTerm.d.ts +0 -2
  79. package/dist/IR/toUPLC/_internal/getDebruijnInTerm.js +0 -51
  80. package/dist/IR/toUPLC/_internal/getDiffDbn.d.ts +0 -2
  81. package/dist/IR/toUPLC/_internal/getDiffDbn.js +0 -55
  82. package/dist/IR/toUPLC/_internal/includesLettedTerms.d.ts +0 -2
  83. package/dist/IR/toUPLC/_internal/includesLettedTerms.js +0 -50
  84. package/dist/IR/toUPLC/_internal/includesNode.d.ts +0 -2
  85. package/dist/IR/toUPLC/_internal/includesNode.js +0 -54
  86. package/dist/IR/toUPLC/_internal/iterTree.d.ts +0 -2
  87. package/dist/IR/toUPLC/_internal/iterTree.js +0 -93
  88. package/dist/IR/toUPLC/_internal/lowestCommonAncestor.d.ts +0 -3
  89. package/dist/IR/toUPLC/_internal/lowestCommonAncestor.js +0 -41
  90. package/dist/IR/toUPLC/compileIRToUPLC.d.ts +0 -4
  91. package/dist/IR/toUPLC/compileIRToUPLC.js +0 -118
  92. package/dist/IR/toUPLC/index.d.ts +0 -1
  93. package/dist/IR/toUPLC/index.js +0 -1
  94. package/dist/IR/toUPLC/subRoutines/handleHoistedAndReturnRoot/index.d.ts +0 -2
  95. package/dist/IR/toUPLC/subRoutines/handleHoistedAndReturnRoot/index.js +0 -161
  96. package/dist/IR/toUPLC/subRoutines/handleLetted/findHighestRecursiveParent.d.ts +0 -5
  97. package/dist/IR/toUPLC/subRoutines/handleLetted/findHighestRecursiveParent.js +0 -14
  98. package/dist/IR/toUPLC/subRoutines/handleLetted/groupByScope.d.ts +0 -20
  99. package/dist/IR/toUPLC/subRoutines/handleLetted/groupByScope.js +0 -107
  100. package/dist/IR/toUPLC/subRoutines/handleLetted/incrementUnboundDbns.d.ts +0 -9
  101. package/dist/IR/toUPLC/subRoutines/handleLetted/incrementUnboundDbns.js +0 -73
  102. package/dist/IR/toUPLC/subRoutines/handleLetted/index.d.ts +0 -2
  103. package/dist/IR/toUPLC/subRoutines/handleLetted/index.js +0 -304
  104. package/dist/IR/toUPLC/subRoutines/handleRecursiveTerms.d.ts +0 -3
  105. package/dist/IR/toUPLC/subRoutines/handleRecursiveTerms.js +0 -32
  106. package/dist/IR/toUPLC/subRoutines/hoistForcedNatives.d.ts +0 -2
  107. package/dist/IR/toUPLC/subRoutines/hoistForcedNatives.js +0 -58
  108. package/dist/IR/toUPLC/subRoutines/inlineSingleUseApplications.d.ts +0 -1
  109. package/dist/IR/toUPLC/subRoutines/inlineSingleUseApplications.js +0 -12
  110. package/dist/IR/toUPLC/subRoutines/markRecursiveHoistsAsForced.d.ts +0 -2
  111. package/dist/IR/toUPLC/subRoutines/markRecursiveHoistsAsForced.js +0 -82
  112. package/dist/IR/toUPLC/subRoutines/performUplcOptimizationsAndReturnRoot/expandFuncsAndReturnRoot.d.ts +0 -4
  113. package/dist/IR/toUPLC/subRoutines/performUplcOptimizationsAndReturnRoot/expandFuncsAndReturnRoot.js +0 -68
  114. package/dist/IR/toUPLC/subRoutines/performUplcOptimizationsAndReturnRoot/index.d.ts +0 -5
  115. package/dist/IR/toUPLC/subRoutines/performUplcOptimizationsAndReturnRoot/index.js +0 -227
  116. package/dist/IR/toUPLC/subRoutines/replaceClosedLettedWithHoisted.d.ts +0 -2
  117. package/dist/IR/toUPLC/subRoutines/replaceClosedLettedWithHoisted.js +0 -13
  118. package/dist/IR/toUPLC/subRoutines/replaceForcedNativesWithHoisted.d.ts +0 -2
  119. package/dist/IR/toUPLC/subRoutines/replaceForcedNativesWithHoisted.js +0 -11
  120. package/dist/IR/toUPLC/subRoutines/replaceHoistedWithLetted.d.ts +0 -2
  121. package/dist/IR/toUPLC/subRoutines/replaceHoistedWithLetted.js +0 -16
  122. package/dist/IR/toUPLC/subRoutines/replaceNatives/index.d.ts +0 -2
  123. package/dist/IR/toUPLC/subRoutines/replaceNatives/index.js +0 -16
  124. package/dist/IR/toUPLC/subRoutines/replaceNatives/nativeToIR.d.ts +0 -3
  125. package/dist/IR/toUPLC/subRoutines/replaceNatives/nativeToIR.js +0 -520
  126. package/dist/IR/toUPLC/subRoutines/sanifyTree.d.ts +0 -5
  127. package/dist/IR/toUPLC/subRoutines/sanifyTree.js +0 -84
  128. package/dist/IR/tree_utils/_ir_apps.d.ts +0 -3
  129. package/dist/IR/tree_utils/_ir_apps.js +0 -8
  130. package/dist/IR/tree_utils/_ir_lazyChooseList.d.ts +0 -3
  131. package/dist/IR/tree_utils/_ir_lazyChooseList.js +0 -5
  132. package/dist/IR/tree_utils/_ir_lazyIfThenElse.d.ts +0 -3
  133. package/dist/IR/tree_utils/_ir_lazyIfThenElse.js +0 -5
  134. package/dist/IR/tree_utils/_ir_let.d.ts +0 -3
  135. package/dist/IR/tree_utils/_ir_let.js +0 -4
  136. package/dist/IR/tree_utils/getChildren.d.ts +0 -2
  137. package/dist/IR/tree_utils/getChildren.js +0 -33
  138. package/dist/IR/tree_utils/getRoot.d.ts +0 -2
  139. package/dist/IR/tree_utils/getRoot.js +0 -6
  140. package/dist/IR/utils/MutArrayLike.d.ts +0 -5
  141. package/dist/IR/utils/MutArrayLike.js +0 -1
  142. package/dist/IR/utils/concatUint8Arr.d.ts +0 -1
  143. package/dist/IR/utils/concatUint8Arr.js +0 -11
  144. package/dist/IR/utils/equalIRTerm.d.ts +0 -12
  145. package/dist/IR/utils/equalIRTerm.js +0 -19
  146. package/dist/IR/utils/index.d.ts +0 -3
  147. package/dist/IR/utils/index.js +0 -3
  148. package/dist/IR/utils/isClosedIRTerm.d.ts +0 -2
  149. package/dist/IR/utils/isClosedIRTerm.js +0 -58
  150. package/dist/IR/utils/isIRParentTerm.d.ts +0 -12
  151. package/dist/IR/utils/isIRParentTerm.js +0 -26
  152. package/dist/IR/utils/isIRTerm.d.ts +0 -2
  153. package/dist/IR/utils/isIRTerm.js +0 -30
  154. package/dist/IR/utils/positiveIntAsBytes.d.ts +0 -5
  155. package/dist/IR/utils/positiveIntAsBytes.js +0 -27
  156. package/dist/IR/utils/showIR.d.ts +0 -43
  157. package/dist/IR/utils/showIR.js +0 -372
  158. package/dist/ast/PebbleAst.d.ts +0 -8
  159. package/dist/ast/PebbleAst.js +0 -15
  160. package/dist/ast/Source/Source.d.ts +0 -47
  161. package/dist/ast/Source/Source.js +0 -89
  162. package/dist/ast/Source/SourceRange.d.ts +0 -16
  163. package/dist/ast/Source/SourceRange.js +0 -49
  164. package/dist/ast/nodes/HasSourceRange.d.ts +0 -5
  165. package/dist/ast/nodes/HasSourceRange.js +0 -6
  166. package/dist/ast/nodes/common/Identifier.d.ts +0 -13
  167. package/dist/ast/nodes/common/Identifier.js +0 -20
  168. package/dist/ast/nodes/expr/CaseExpr.d.ts +0 -22
  169. package/dist/ast/nodes/expr/CaseExpr.js +0 -30
  170. package/dist/ast/nodes/expr/ElemAccessExpr.d.ts +0 -12
  171. package/dist/ast/nodes/expr/ElemAccessExpr.js +0 -13
  172. package/dist/ast/nodes/expr/IsExpr.d.ts +0 -1
  173. package/dist/ast/nodes/expr/IsExpr.js +0 -14
  174. package/dist/ast/nodes/expr/ParentesizedExpr.d.ts +0 -8
  175. package/dist/ast/nodes/expr/ParentesizedExpr.js +0 -8
  176. package/dist/ast/nodes/expr/PebbleExpr.d.ts +0 -18
  177. package/dist/ast/nodes/expr/PebbleExpr.js +0 -31
  178. package/dist/ast/nodes/expr/PropAccessExpr.d.ts +0 -28
  179. package/dist/ast/nodes/expr/PropAccessExpr.js +0 -46
  180. package/dist/ast/nodes/expr/TernaryExpr.d.ts +0 -10
  181. package/dist/ast/nodes/expr/TernaryExpr.js +0 -12
  182. package/dist/ast/nodes/expr/TypeConversionExpr.d.ts +0 -10
  183. package/dist/ast/nodes/expr/TypeConversionExpr.js +0 -11
  184. package/dist/ast/nodes/expr/binary/BinaryExpr.d.ts +0 -133
  185. package/dist/ast/nodes/expr/binary/BinaryExpr.js +0 -253
  186. package/dist/ast/nodes/expr/functions/ArrowKind.d.ts +0 -9
  187. package/dist/ast/nodes/expr/functions/ArrowKind.js +0 -11
  188. package/dist/ast/nodes/expr/functions/CallExpr.d.ts +0 -17
  189. package/dist/ast/nodes/expr/functions/CallExpr.js +0 -16
  190. package/dist/ast/nodes/expr/functions/FuncExpr.d.ts +0 -21
  191. package/dist/ast/nodes/expr/functions/FuncExpr.js +0 -21
  192. package/dist/ast/nodes/expr/litteral/LitArrExpr.d.ts +0 -8
  193. package/dist/ast/nodes/expr/litteral/LitArrExpr.js +0 -8
  194. package/dist/ast/nodes/expr/litteral/LitFalseExpr.d.ts +0 -6
  195. package/dist/ast/nodes/expr/litteral/LitFalseExpr.js +0 -6
  196. package/dist/ast/nodes/expr/litteral/LitHexBytesExpr.d.ts +0 -7
  197. package/dist/ast/nodes/expr/litteral/LitHexBytesExpr.js +0 -8
  198. package/dist/ast/nodes/expr/litteral/LitIntExpr.d.ts +0 -7
  199. package/dist/ast/nodes/expr/litteral/LitIntExpr.js +0 -8
  200. package/dist/ast/nodes/expr/litteral/LitNamedObjExpr.d.ts +0 -12
  201. package/dist/ast/nodes/expr/litteral/LitNamedObjExpr.js +0 -12
  202. package/dist/ast/nodes/expr/litteral/LitObjExpr.d.ts +0 -14
  203. package/dist/ast/nodes/expr/litteral/LitObjExpr.js +0 -10
  204. package/dist/ast/nodes/expr/litteral/LitStrExpr.d.ts +0 -7
  205. package/dist/ast/nodes/expr/litteral/LitStrExpr.js +0 -8
  206. package/dist/ast/nodes/expr/litteral/LitThisExpr.d.ts +0 -6
  207. package/dist/ast/nodes/expr/litteral/LitThisExpr.js +0 -6
  208. package/dist/ast/nodes/expr/litteral/LitTrueExpr.d.ts +0 -6
  209. package/dist/ast/nodes/expr/litteral/LitTrueExpr.js +0 -6
  210. package/dist/ast/nodes/expr/litteral/LitUndefExpr.d.ts +0 -6
  211. package/dist/ast/nodes/expr/litteral/LitUndefExpr.js +0 -6
  212. package/dist/ast/nodes/expr/litteral/LitVoidExpr.d.ts +0 -6
  213. package/dist/ast/nodes/expr/litteral/LitVoidExpr.js +0 -6
  214. package/dist/ast/nodes/expr/litteral/LitteralExpr.d.ts +0 -13
  215. package/dist/ast/nodes/expr/litteral/LitteralExpr.js +0 -24
  216. package/dist/ast/nodes/expr/unary/IUnaryExpression.d.ts +0 -4
  217. package/dist/ast/nodes/expr/unary/IUnaryExpression.js +0 -1
  218. package/dist/ast/nodes/expr/unary/NonNullExpr.d.ts +0 -8
  219. package/dist/ast/nodes/expr/unary/NonNullExpr.js +0 -8
  220. package/dist/ast/nodes/expr/unary/UnaryExclamation.d.ts +0 -9
  221. package/dist/ast/nodes/expr/unary/UnaryExclamation.js +0 -8
  222. package/dist/ast/nodes/expr/unary/UnaryMinus.d.ts +0 -9
  223. package/dist/ast/nodes/expr/unary/UnaryMinus.js +0 -8
  224. package/dist/ast/nodes/expr/unary/UnaryPlus.d.ts +0 -9
  225. package/dist/ast/nodes/expr/unary/UnaryPlus.js +0 -8
  226. package/dist/ast/nodes/expr/unary/UnaryPrefixExpr.d.ts +0 -14
  227. package/dist/ast/nodes/expr/unary/UnaryPrefixExpr.js +0 -27
  228. package/dist/ast/nodes/expr/unary/UnaryTilde.d.ts +0 -9
  229. package/dist/ast/nodes/expr/unary/UnaryTilde.js +0 -8
  230. package/dist/ast/nodes/statements/AssertStmt.d.ts +0 -15
  231. package/dist/ast/nodes/statements/AssertStmt.js +0 -14
  232. package/dist/ast/nodes/statements/AssignmentStmt.d.ts +0 -105
  233. package/dist/ast/nodes/statements/AssignmentStmt.js +0 -211
  234. package/dist/ast/nodes/statements/BlockStmt.d.ts +0 -8
  235. package/dist/ast/nodes/statements/BlockStmt.js +0 -8
  236. package/dist/ast/nodes/statements/BreakStmt.d.ts +0 -6
  237. package/dist/ast/nodes/statements/BreakStmt.js +0 -6
  238. package/dist/ast/nodes/statements/ContinueStmt.d.ts +0 -6
  239. package/dist/ast/nodes/statements/ContinueStmt.js +0 -6
  240. package/dist/ast/nodes/statements/DecrStmt.d.ts +0 -11
  241. package/dist/ast/nodes/statements/DecrStmt.js +0 -11
  242. package/dist/ast/nodes/statements/DoWhileStmt.d.ts +0 -10
  243. package/dist/ast/nodes/statements/DoWhileStmt.js +0 -10
  244. package/dist/ast/nodes/statements/EmptyStmt.d.ts +0 -6
  245. package/dist/ast/nodes/statements/EmptyStmt.js +0 -6
  246. package/dist/ast/nodes/statements/ExportImportStmt.d.ts +0 -15
  247. package/dist/ast/nodes/statements/ExportImportStmt.js +0 -15
  248. package/dist/ast/nodes/statements/ExportStarStmt.d.ts +0 -8
  249. package/dist/ast/nodes/statements/ExportStarStmt.js +0 -8
  250. package/dist/ast/nodes/statements/ExportStmt.d.ts +0 -13
  251. package/dist/ast/nodes/statements/ExportStmt.js +0 -13
  252. package/dist/ast/nodes/statements/ExprStmt.d.ts +0 -8
  253. package/dist/ast/nodes/statements/ExprStmt.js +0 -18
  254. package/dist/ast/nodes/statements/FailStmt.d.ts +0 -11
  255. package/dist/ast/nodes/statements/FailStmt.js +0 -10
  256. package/dist/ast/nodes/statements/ForOfStmt.d.ts +0 -16
  257. package/dist/ast/nodes/statements/ForOfStmt.js +0 -15
  258. package/dist/ast/nodes/statements/ForStmt.d.ts +0 -19
  259. package/dist/ast/nodes/statements/ForStmt.js +0 -19
  260. package/dist/ast/nodes/statements/IfStmt.d.ts +0 -11
  261. package/dist/ast/nodes/statements/IfStmt.js +0 -12
  262. package/dist/ast/nodes/statements/ImportStarStmt.d.ts +0 -15
  263. package/dist/ast/nodes/statements/ImportStarStmt.js +0 -15
  264. package/dist/ast/nodes/statements/ImportStmt.d.ts +0 -21
  265. package/dist/ast/nodes/statements/ImportStmt.js +0 -25
  266. package/dist/ast/nodes/statements/IncrStmt.d.ts +0 -8
  267. package/dist/ast/nodes/statements/IncrStmt.js +0 -8
  268. package/dist/ast/nodes/statements/MatchStmt.d.ts +0 -17
  269. package/dist/ast/nodes/statements/MatchStmt.js +0 -20
  270. package/dist/ast/nodes/statements/PebbleStmt.d.ts +0 -29
  271. package/dist/ast/nodes/statements/PebbleStmt.js +0 -62
  272. package/dist/ast/nodes/statements/ReturnStmt.d.ts +0 -8
  273. package/dist/ast/nodes/statements/ReturnStmt.js +0 -8
  274. package/dist/ast/nodes/statements/TestStmt.d.ts +0 -10
  275. package/dist/ast/nodes/statements/TestStmt.js +0 -10
  276. package/dist/ast/nodes/statements/TypeImplementsStmt.d.ts +0 -21
  277. package/dist/ast/nodes/statements/TypeImplementsStmt.js +0 -26
  278. package/dist/ast/nodes/statements/UsingStmt.d.ts +0 -16
  279. package/dist/ast/nodes/statements/UsingStmt.js +0 -20
  280. package/dist/ast/nodes/statements/VarStmt.d.ts +0 -10
  281. package/dist/ast/nodes/statements/VarStmt.js +0 -11
  282. package/dist/ast/nodes/statements/WhileStmt.d.ts +0 -10
  283. package/dist/ast/nodes/statements/WhileStmt.js +0 -10
  284. package/dist/ast/nodes/statements/declarations/EnumDecl.d.ts +0 -18
  285. package/dist/ast/nodes/statements/declarations/EnumDecl.js +0 -22
  286. package/dist/ast/nodes/statements/declarations/FuncDecl.d.ts +0 -8
  287. package/dist/ast/nodes/statements/declarations/FuncDecl.js +0 -9
  288. package/dist/ast/nodes/statements/declarations/InterfaceDecl.d.ts +0 -19
  289. package/dist/ast/nodes/statements/declarations/InterfaceDecl.js +0 -26
  290. package/dist/ast/nodes/statements/declarations/PebbleTypeDecl.d.ts +0 -5
  291. package/dist/ast/nodes/statements/declarations/PebbleTypeDecl.js +0 -8
  292. package/dist/ast/nodes/statements/declarations/StructDecl.d.ts +0 -25
  293. package/dist/ast/nodes/statements/declarations/StructDecl.js +0 -36
  294. package/dist/ast/nodes/statements/declarations/TypeAliasDecl.d.ts +0 -11
  295. package/dist/ast/nodes/statements/declarations/TypeAliasDecl.js +0 -12
  296. package/dist/ast/nodes/statements/declarations/VarDecl/ArrayLikeDeconstr.d.ts +0 -19
  297. package/dist/ast/nodes/statements/declarations/VarDecl/ArrayLikeDeconstr.js +0 -19
  298. package/dist/ast/nodes/statements/declarations/VarDecl/HasInit.d.ts +0 -5
  299. package/dist/ast/nodes/statements/declarations/VarDecl/HasInit.js +0 -7
  300. package/dist/ast/nodes/statements/declarations/VarDecl/NamedDeconstructVarDecl.d.ts +0 -24
  301. package/dist/ast/nodes/statements/declarations/VarDecl/NamedDeconstructVarDecl.js +0 -30
  302. package/dist/ast/nodes/statements/declarations/VarDecl/SimpleVarDecl.d.ts +0 -17
  303. package/dist/ast/nodes/statements/declarations/VarDecl/SimpleVarDecl.js +0 -21
  304. package/dist/ast/nodes/statements/declarations/VarDecl/SingleDeconstructVarDecl.d.ts +0 -24
  305. package/dist/ast/nodes/statements/declarations/VarDecl/SingleDeconstructVarDecl.js +0 -20
  306. package/dist/ast/nodes/statements/declarations/VarDecl/VarDecl.d.ts +0 -8
  307. package/dist/ast/nodes/statements/declarations/VarDecl/VarDecl.js +0 -13
  308. package/dist/ast/nodes/types/AstNamedTypeExpr.d.ts +0 -14
  309. package/dist/ast/nodes/types/AstNamedTypeExpr.js +0 -14
  310. package/dist/ast/nodes/types/AstNativeTypeExpr.d.ts +0 -52
  311. package/dist/ast/nodes/types/AstNativeTypeExpr.js +0 -82
  312. package/dist/ast/nodes/types/AstTypeExpr.d.ts +0 -4
  313. package/dist/ast/nodes/types/AstTypeExpr.js +0 -7
  314. package/dist/common.d.ts +0 -194
  315. package/dist/common.js +0 -224
  316. package/dist/compiler/AstCompiler/AstCompilationCtx.d.ts +0 -35
  317. package/dist/compiler/AstCompiler/AstCompilationCtx.js +0 -43
  318. package/dist/compiler/AstCompiler/AstCompiler.d.ts +0 -73
  319. package/dist/compiler/AstCompiler/AstCompiler.js +0 -532
  320. package/dist/compiler/AstCompiler/compileAst.d.ts +0 -0
  321. package/dist/compiler/AstCompiler/compileAst.js +0 -0
  322. package/dist/compiler/AstCompiler/index.d.ts +0 -1
  323. package/dist/compiler/AstCompiler/index.js +0 -1
  324. package/dist/compiler/AstCompiler/internal/exprs/_compileBinaryExpr.d.ts +0 -5
  325. package/dist/compiler/AstCompiler/internal/exprs/_compileBinaryExpr.js +0 -66
  326. package/dist/compiler/AstCompiler/internal/exprs/_compileCallExpr.d.ts +0 -5
  327. package/dist/compiler/AstCompiler/internal/exprs/_compileCallExpr.js +0 -36
  328. package/dist/compiler/AstCompiler/internal/exprs/_compileCaseExpr.d.ts +0 -6
  329. package/dist/compiler/AstCompiler/internal/exprs/_compileCaseExpr.js +0 -47
  330. package/dist/compiler/AstCompiler/internal/exprs/_compileElemAccessExpr.d.ts +0 -5
  331. package/dist/compiler/AstCompiler/internal/exprs/_compileElemAccessExpr.js +0 -23
  332. package/dist/compiler/AstCompiler/internal/exprs/_compileExpr.d.ts +0 -22
  333. package/dist/compiler/AstCompiler/internal/exprs/_compileExpr.js +0 -77
  334. package/dist/compiler/AstCompiler/internal/exprs/_compileFuncExpr.d.ts +0 -26
  335. package/dist/compiler/AstCompiler/internal/exprs/_compileFuncExpr.js +0 -163
  336. package/dist/compiler/AstCompiler/internal/exprs/_compileIsExpr.d.ts +0 -1
  337. package/dist/compiler/AstCompiler/internal/exprs/_compileIsExpr.js +0 -43
  338. package/dist/compiler/AstCompiler/internal/exprs/_compileLitteralExpr.d.ts +0 -19
  339. package/dist/compiler/AstCompiler/internal/exprs/_compileLitteralExpr.js +0 -202
  340. package/dist/compiler/AstCompiler/internal/exprs/_compileNonNullExpr.d.ts +0 -5
  341. package/dist/compiler/AstCompiler/internal/exprs/_compileNonNullExpr.js +0 -43
  342. package/dist/compiler/AstCompiler/internal/exprs/_compilePropAccessExpr.d.ts +0 -9
  343. package/dist/compiler/AstCompiler/internal/exprs/_compilePropAccessExpr.js +0 -102
  344. package/dist/compiler/AstCompiler/internal/exprs/_compileTernaryExpr.d.ts +0 -5
  345. package/dist/compiler/AstCompiler/internal/exprs/_compileTernaryExpr.js +0 -22
  346. package/dist/compiler/AstCompiler/internal/exprs/_compileTypeConversionExpr.d.ts +0 -5
  347. package/dist/compiler/AstCompiler/internal/exprs/_compileTypeConversionExpr.js +0 -25
  348. package/dist/compiler/AstCompiler/internal/exprs/_compileUnaryPrefixExpr.d.ts +0 -5
  349. package/dist/compiler/AstCompiler/internal/exprs/_compileUnaryPrefixExpr.js +0 -54
  350. package/dist/compiler/AstCompiler/internal/exprs/_compileVarAccessExpr.d.ts +0 -5
  351. package/dist/compiler/AstCompiler/internal/exprs/_compileVarAccessExpr.js +0 -9
  352. package/dist/compiler/AstCompiler/internal/exprs/_hasDuplicateTypeParams.d.ts +0 -3
  353. package/dist/compiler/AstCompiler/internal/exprs/_hasDuplicateTypeParams.js +0 -13
  354. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileAddExpr.d.ts +0 -5
  355. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileAddExpr.js +0 -20
  356. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileBitwiseAndExpr.d.ts +0 -5
  357. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileBitwiseAndExpr.js +0 -20
  358. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileBitwiseOrExpr.d.ts +0 -5
  359. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileBitwiseOrExpr.js +0 -20
  360. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileBitwiseXorExpr.d.ts +0 -5
  361. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileBitwiseXorExpr.js +0 -20
  362. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileDivExpr.d.ts +0 -5
  363. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileDivExpr.js +0 -20
  364. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileEqualExpr.d.ts +0 -5
  365. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileEqualExpr.js +0 -18
  366. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileExponentiationExpr.d.ts +0 -5
  367. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileExponentiationExpr.js +0 -20
  368. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileGreaterThanEqualExpr.d.ts +0 -5
  369. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileGreaterThanEqualExpr.js +0 -27
  370. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileGreaterThanExpr.d.ts +0 -5
  371. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileGreaterThanExpr.js +0 -26
  372. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileLessThanEqualExpr.d.ts +0 -5
  373. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileLessThanEqualExpr.js +0 -25
  374. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileLessThanExpr.d.ts +0 -5
  375. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileLessThanExpr.js +0 -26
  376. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileLogicalAndExpr.d.ts +0 -5
  377. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileLogicalAndExpr.js +0 -22
  378. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileLogicalOrExpr.d.ts +0 -5
  379. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileLogicalOrExpr.js +0 -22
  380. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileModuloExpr.d.ts +0 -5
  381. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileModuloExpr.js +0 -20
  382. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileMultExpr.d.ts +0 -5
  383. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileMultExpr.js +0 -20
  384. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileNotEqualExpr.d.ts +0 -5
  385. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileNotEqualExpr.js +0 -18
  386. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileOptionalDefaultExpr.d.ts +0 -5
  387. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileOptionalDefaultExpr.js +0 -60
  388. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileShiftLeftExpr.d.ts +0 -5
  389. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileShiftLeftExpr.js +0 -21
  390. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileShiftRightExpr.d.ts +0 -5
  391. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileShiftRightExpr.js +0 -21
  392. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileSubExpr.d.ts +0 -5
  393. package/dist/compiler/AstCompiler/internal/exprs/binary/_compileSubExpr.js +0 -20
  394. package/dist/compiler/AstCompiler/internal/statements/_compileAssertStmt.d.ts +0 -4
  395. package/dist/compiler/AstCompiler/internal/statements/_compileAssertStmt.js +0 -30
  396. package/dist/compiler/AstCompiler/internal/statements/_compileAssignmentStmt.d.ts +0 -8
  397. package/dist/compiler/AstCompiler/internal/statements/_compileAssignmentStmt.js +0 -154
  398. package/dist/compiler/AstCompiler/internal/statements/_compileBlockStmt.d.ts +0 -4
  399. package/dist/compiler/AstCompiler/internal/statements/_compileBlockStmt.js +0 -14
  400. package/dist/compiler/AstCompiler/internal/statements/_compileBreakStmt.d.ts +0 -4
  401. package/dist/compiler/AstCompiler/internal/statements/_compileBreakStmt.js +0 -7
  402. package/dist/compiler/AstCompiler/internal/statements/_compileContinueStmt.d.ts +0 -4
  403. package/dist/compiler/AstCompiler/internal/statements/_compileContinueStmt.js +0 -7
  404. package/dist/compiler/AstCompiler/internal/statements/_compileExprStmt.d.ts +0 -1
  405. package/dist/compiler/AstCompiler/internal/statements/_compileExprStmt.js +0 -12
  406. package/dist/compiler/AstCompiler/internal/statements/_compileFailStmt.d.ts +0 -4
  407. package/dist/compiler/AstCompiler/internal/statements/_compileFailStmt.js +0 -18
  408. package/dist/compiler/AstCompiler/internal/statements/_compileForOfStmt.d.ts +0 -4
  409. package/dist/compiler/AstCompiler/internal/statements/_compileForOfStmt.js +0 -30
  410. package/dist/compiler/AstCompiler/internal/statements/_compileForStmt.d.ts +0 -7
  411. package/dist/compiler/AstCompiler/internal/statements/_compileForStmt.js +0 -46
  412. package/dist/compiler/AstCompiler/internal/statements/_compileIfStmt.d.ts +0 -4
  413. package/dist/compiler/AstCompiler/internal/statements/_compileIfStmt.js +0 -27
  414. package/dist/compiler/AstCompiler/internal/statements/_compileMatchStmt.d.ts +0 -6
  415. package/dist/compiler/AstCompiler/internal/statements/_compileMatchStmt.js +0 -182
  416. package/dist/compiler/AstCompiler/internal/statements/_compileReturnStmt.d.ts +0 -4
  417. package/dist/compiler/AstCompiler/internal/statements/_compileReturnStmt.js +0 -17
  418. package/dist/compiler/AstCompiler/internal/statements/_compileStatement.d.ts +0 -11
  419. package/dist/compiler/AstCompiler/internal/statements/_compileStatement.js +0 -73
  420. package/dist/compiler/AstCompiler/internal/statements/_compileTestStmt.d.ts +0 -1
  421. package/dist/compiler/AstCompiler/internal/statements/_compileTestStmt.js +0 -32
  422. package/dist/compiler/AstCompiler/internal/statements/_compileUsingStmt.d.ts +0 -11
  423. package/dist/compiler/AstCompiler/internal/statements/_compileUsingStmt.js +0 -41
  424. package/dist/compiler/AstCompiler/internal/statements/_compileVarStmt.d.ts +0 -34
  425. package/dist/compiler/AstCompiler/internal/statements/_compileVarStmt.js +0 -207
  426. package/dist/compiler/AstCompiler/internal/statements/_compileWhileStmt.d.ts +0 -4
  427. package/dist/compiler/AstCompiler/internal/statements/_compileWhileStmt.js +0 -19
  428. package/dist/compiler/AstCompiler/internal/types/_compileDataEncodedConcreteType.d.ts +0 -4
  429. package/dist/compiler/AstCompiler/internal/types/_compileDataEncodedConcreteType.js +0 -61
  430. package/dist/compiler/AstCompiler/internal/types/_compileSopEncodedConcreteType.d.ts +0 -4
  431. package/dist/compiler/AstCompiler/internal/types/_compileSopEncodedConcreteType.js +0 -59
  432. package/dist/compiler/AstCompiler/scope/AstScope.d.ts +0 -102
  433. package/dist/compiler/AstCompiler/scope/AstScope.js +0 -195
  434. package/dist/compiler/AstCompiler/utils/deps/ResolveStackNode.d.ts +0 -14
  435. package/dist/compiler/AstCompiler/utils/deps/ResolveStackNode.js +0 -36
  436. package/dist/compiler/AstCompiler/utils/getPropAccessReturnType.d.ts +0 -4
  437. package/dist/compiler/AstCompiler/utils/getPropAccessReturnType.js +0 -121
  438. package/dist/compiler/AstCompiler/utils/getTirFuncSigTree/TirFuncSigTree.d.ts +0 -39
  439. package/dist/compiler/AstCompiler/utils/getTirFuncSigTree/TirFuncSigTree.js +0 -129
  440. package/dist/compiler/AstCompiler/utils/getTirFuncSigTree/getTirFuncSigTree.d.ts +0 -4
  441. package/dist/compiler/AstCompiler/utils/getTirFuncSigTree/getTirFuncSigTree.js +0 -49
  442. package/dist/compiler/AstCompiler/utils/wrapManyStatementsOrReturnSame.d.ts +0 -3
  443. package/dist/compiler/AstCompiler/utils/wrapManyStatementsOrReturnSame.js +0 -12
  444. package/dist/compiler/Compiler.d.ts +0 -10
  445. package/dist/compiler/Compiler.js +0 -39
  446. package/dist/compiler/TirCompiler/TirCompilerCtx.d.ts +0 -7
  447. package/dist/compiler/TirCompiler/TirCompilerCtx.js +0 -8
  448. package/dist/compiler/TirCompiler/compileTirProgram.d.ts +0 -9
  449. package/dist/compiler/TirCompiler/compileTirProgram.js +0 -18
  450. package/dist/compiler/TirCompiler/expressify/ExpressifyCtx.d.ts +0 -72
  451. package/dist/compiler/TirCompiler/expressify/ExpressifyCtx.js +0 -282
  452. package/dist/compiler/TirCompiler/expressify/determineReassignedVariablesAndReturn.d.ts +0 -27
  453. package/dist/compiler/TirCompiler/expressify/determineReassignedVariablesAndReturn.js +0 -248
  454. package/dist/compiler/TirCompiler/expressify/expressify.d.ts +0 -15
  455. package/dist/compiler/TirCompiler/expressify/expressify.js +0 -403
  456. package/dist/compiler/TirCompiler/expressify/expressifyForStmt.d.ts +0 -8
  457. package/dist/compiler/TirCompiler/expressify/expressifyForStmt.js +0 -115
  458. package/dist/compiler/TirCompiler/expressify/expressifyIfBranch.d.ts +0 -6
  459. package/dist/compiler/TirCompiler/expressify/expressifyIfBranch.js +0 -105
  460. package/dist/compiler/TirCompiler/expressify/expressifyTerminatingIfStmt.d.ts +0 -5
  461. package/dist/compiler/TirCompiler/expressify/expressifyTerminatingIfStmt.js +0 -15
  462. package/dist/compiler/TirCompiler/expressify/expressifyVarAssignmentStmt.d.ts +0 -4
  463. package/dist/compiler/TirCompiler/expressify/expressifyVarAssignmentStmt.js +0 -20
  464. package/dist/compiler/TirCompiler/expressify/expressifyVarDecl.d.ts +0 -3
  465. package/dist/compiler/TirCompiler/expressify/expressifyVarDecl.js +0 -34
  466. package/dist/compiler/TirCompiler/expressify/expressifyVars.d.ts +0 -10
  467. package/dist/compiler/TirCompiler/expressify/expressifyVars.js +0 -320
  468. package/dist/compiler/TirCompiler/expressify/flattenSopNamedDeconstructInplace_addTopDestructToCtx_getNestedDeconstruct.d.ts +0 -9
  469. package/dist/compiler/TirCompiler/expressify/flattenSopNamedDeconstructInplace_addTopDestructToCtx_getNestedDeconstruct.js +0 -59
  470. package/dist/compiler/TirCompiler/expressify/isSingleConstrStruct.d.ts +0 -3
  471. package/dist/compiler/TirCompiler/expressify/isSingleConstrStruct.js +0 -9
  472. package/dist/compiler/TirCompiler/expressify/toNamedDeconstructVarDecl.d.ts +0 -3
  473. package/dist/compiler/TirCompiler/expressify/toNamedDeconstructVarDecl.js +0 -15
  474. package/dist/compiler/TirCompiler/index.d.ts +0 -2
  475. package/dist/compiler/TirCompiler/index.js +0 -2
  476. package/dist/compiler/TirCompiler/internal/_compileHoistedDeps.d.ts +0 -5
  477. package/dist/compiler/TirCompiler/internal/_compileHoistedDeps.js +0 -37
  478. package/dist/compiler/TirCompiler/internal/deps/DepsNode.d.ts +0 -13
  479. package/dist/compiler/TirCompiler/internal/deps/DepsNode.js +0 -36
  480. package/dist/compiler/index.d.ts +0 -4
  481. package/dist/compiler/index.js +0 -4
  482. package/dist/compiler/internalVar.d.ts +0 -19
  483. package/dist/compiler/internalVar.js +0 -56
  484. package/dist/compiler/io/CompilerIoApi.d.ts +0 -36
  485. package/dist/compiler/io/CompilerIoApi.js +0 -62
  486. package/dist/compiler/io/IOutputStream.d.ts +0 -28
  487. package/dist/compiler/io/IOutputStream.js +0 -45
  488. package/dist/compiler/io/index.d.ts +0 -2
  489. package/dist/compiler/io/index.js +0 -2
  490. package/dist/compiler/path/getAbsolutePath.d.ts +0 -12
  491. package/dist/compiler/path/getAbsolutePath.js +0 -114
  492. package/dist/compiler/path/path.d.ts +0 -5
  493. package/dist/compiler/path/path.js +0 -160
  494. package/dist/compiler/tir/expressions/ITirExpr.d.ts +0 -11
  495. package/dist/compiler/tir/expressions/ITirExpr.js +0 -1
  496. package/dist/compiler/tir/expressions/TirAssertAndContinueExpr.d.ts +0 -19
  497. package/dist/compiler/tir/expressions/TirAssertAndContinueExpr.js +0 -41
  498. package/dist/compiler/tir/expressions/TirCallExpr.d.ts +0 -17
  499. package/dist/compiler/tir/expressions/TirCallExpr.js +0 -28
  500. package/dist/compiler/tir/expressions/TirCaseExpr.d.ts +0 -36
  501. package/dist/compiler/tir/expressions/TirCaseExpr.js +0 -257
  502. package/dist/compiler/tir/expressions/TirElemAccessExpr.d.ts +0 -20
  503. package/dist/compiler/tir/expressions/TirElemAccessExpr.js +0 -43
  504. package/dist/compiler/tir/expressions/TirExpr.d.ts +0 -23
  505. package/dist/compiler/tir/expressions/TirExpr.js +0 -46
  506. package/dist/compiler/tir/expressions/TirFailExpr.d.ts +0 -19
  507. package/dist/compiler/tir/expressions/TirFailExpr.js +0 -28
  508. package/dist/compiler/tir/expressions/TirFromDataExpr.d.ts +0 -22
  509. package/dist/compiler/tir/expressions/TirFromDataExpr.js +0 -196
  510. package/dist/compiler/tir/expressions/TirFuncExpr.d.ts +0 -37
  511. package/dist/compiler/tir/expressions/TirFuncExpr.js +0 -92
  512. package/dist/compiler/tir/expressions/TirHoistedExpr.d.ts +0 -18
  513. package/dist/compiler/tir/expressions/TirHoistedExpr.js +0 -28
  514. package/dist/compiler/tir/expressions/TirInlineClosedIR.d.ts +0 -16
  515. package/dist/compiler/tir/expressions/TirInlineClosedIR.js +0 -25
  516. package/dist/compiler/tir/expressions/TirLettedExpr.d.ts +0 -18
  517. package/dist/compiler/tir/expressions/TirLettedExpr.js +0 -28
  518. package/dist/compiler/tir/expressions/TirNativeFunc.d.ts +0 -104
  519. package/dist/compiler/tir/expressions/TirNativeFunc.js +0 -805
  520. package/dist/compiler/tir/expressions/TirParentesizedExpr.d.ts +0 -17
  521. package/dist/compiler/tir/expressions/TirParentesizedExpr.js +0 -20
  522. package/dist/compiler/tir/expressions/TirPropAccessExpr.d.ts +0 -18
  523. package/dist/compiler/tir/expressions/TirPropAccessExpr.js +0 -29
  524. package/dist/compiler/tir/expressions/TirTernaryExpr.d.ts +0 -18
  525. package/dist/compiler/tir/expressions/TirTernaryExpr.js +0 -36
  526. package/dist/compiler/tir/expressions/TirToDataExpr.d.ts +0 -28
  527. package/dist/compiler/tir/expressions/TirToDataExpr.js +0 -172
  528. package/dist/compiler/tir/expressions/TirTraceIfFalseExpr.d.ts +0 -23
  529. package/dist/compiler/tir/expressions/TirTraceIfFalseExpr.js +0 -32
  530. package/dist/compiler/tir/expressions/TirTypeConversionExpr.d.ts +0 -16
  531. package/dist/compiler/tir/expressions/TirTypeConversionExpr.js +0 -66
  532. package/dist/compiler/tir/expressions/TirVariableAccessExpr.d.ts +0 -18
  533. package/dist/compiler/tir/expressions/TirVariableAccessExpr.js +0 -30
  534. package/dist/compiler/tir/expressions/ToIRTermCtx.d.ts +0 -29
  535. package/dist/compiler/tir/expressions/ToIRTermCtx.js +0 -77
  536. package/dist/compiler/tir/expressions/binary/TirBinaryExpr.d.ts +0 -221
  537. package/dist/compiler/tir/expressions/binary/TirBinaryExpr.js +0 -532
  538. package/dist/compiler/tir/expressions/litteral/TirLitArrExpr.d.ts +0 -16
  539. package/dist/compiler/tir/expressions/litteral/TirLitArrExpr.js +0 -60
  540. package/dist/compiler/tir/expressions/litteral/TirLitFalseExpr.d.ts +0 -14
  541. package/dist/compiler/tir/expressions/litteral/TirLitFalseExpr.js +0 -17
  542. package/dist/compiler/tir/expressions/litteral/TirLitHexBytesExpr.d.ts +0 -15
  543. package/dist/compiler/tir/expressions/litteral/TirLitHexBytesExpr.js +0 -19
  544. package/dist/compiler/tir/expressions/litteral/TirLitIntExpr.d.ts +0 -15
  545. package/dist/compiler/tir/expressions/litteral/TirLitIntExpr.js +0 -19
  546. package/dist/compiler/tir/expressions/litteral/TirLitNamedObjExpr.d.ts +0 -22
  547. package/dist/compiler/tir/expressions/litteral/TirLitNamedObjExpr.js +0 -105
  548. package/dist/compiler/tir/expressions/litteral/TirLitObjExpr.d.ts +0 -22
  549. package/dist/compiler/tir/expressions/litteral/TirLitObjExpr.js +0 -102
  550. package/dist/compiler/tir/expressions/litteral/TirLitStrExpr.d.ts +0 -15
  551. package/dist/compiler/tir/expressions/litteral/TirLitStrExpr.js +0 -20
  552. package/dist/compiler/tir/expressions/litteral/TirLitThisExpr.d.ts +0 -14
  553. package/dist/compiler/tir/expressions/litteral/TirLitThisExpr.js +0 -20
  554. package/dist/compiler/tir/expressions/litteral/TirLitTrueExpr.d.ts +0 -14
  555. package/dist/compiler/tir/expressions/litteral/TirLitTrueExpr.js +0 -17
  556. package/dist/compiler/tir/expressions/litteral/TirLitUndefExpr.d.ts +0 -18
  557. package/dist/compiler/tir/expressions/litteral/TirLitUndefExpr.js +0 -23
  558. package/dist/compiler/tir/expressions/litteral/TirLitVoidExpr.d.ts +0 -14
  559. package/dist/compiler/tir/expressions/litteral/TirLitVoidExpr.js +0 -17
  560. package/dist/compiler/tir/expressions/litteral/TirLitteralExpr.d.ts +0 -13
  561. package/dist/compiler/tir/expressions/litteral/TirLitteralExpr.js +0 -24
  562. package/dist/compiler/tir/expressions/unary/ITirUnaryExpression.d.ts +0 -4
  563. package/dist/compiler/tir/expressions/unary/ITirUnaryExpression.js +0 -1
  564. package/dist/compiler/tir/expressions/unary/TirUnaryExclamation.d.ts +0 -17
  565. package/dist/compiler/tir/expressions/unary/TirUnaryExclamation.js +0 -23
  566. package/dist/compiler/tir/expressions/unary/TirUnaryMinus.d.ts +0 -17
  567. package/dist/compiler/tir/expressions/unary/TirUnaryMinus.js +0 -22
  568. package/dist/compiler/tir/expressions/unary/TirUnaryPlus.d.ts +0 -15
  569. package/dist/compiler/tir/expressions/unary/TirUnaryPlus.js +0 -20
  570. package/dist/compiler/tir/expressions/unary/TirUnaryPrefixExpr.d.ts +0 -6
  571. package/dist/compiler/tir/expressions/unary/TirUnaryPrefixExpr.js +0 -10
  572. package/dist/compiler/tir/expressions/unary/TirUnaryTilde.d.ts +0 -17
  573. package/dist/compiler/tir/expressions/unary/TirUnaryTilde.js +0 -22
  574. package/dist/compiler/tir/expressions/utils/NamedExpr.d.ts +0 -5
  575. package/dist/compiler/tir/expressions/utils/NamedExpr.js +0 -1
  576. package/dist/compiler/tir/program/TypedProgram.d.ts +0 -44
  577. package/dist/compiler/tir/program/TypedProgram.js +0 -126
  578. package/dist/compiler/tir/program/stdScope/StdTypes.d.ts +0 -34
  579. package/dist/compiler/tir/program/stdScope/StdTypes.js +0 -40
  580. package/dist/compiler/tir/program/stdScope/prelude/preludeTypesSrc.d.ts +0 -0
  581. package/dist/compiler/tir/program/stdScope/prelude/preludeTypesSrc.js +0 -288
  582. package/dist/compiler/tir/program/stdScope/stdScope.d.ts +0 -15
  583. package/dist/compiler/tir/program/stdScope/stdScope.js +0 -730
  584. package/dist/compiler/tir/statements/TirAssertStmt.d.ts +0 -18
  585. package/dist/compiler/tir/statements/TirAssertStmt.js +0 -29
  586. package/dist/compiler/tir/statements/TirAssignmentStmt.d.ts +0 -12
  587. package/dist/compiler/tir/statements/TirAssignmentStmt.js +0 -14
  588. package/dist/compiler/tir/statements/TirBlockStmt.d.ts +0 -9
  589. package/dist/compiler/tir/statements/TirBlockStmt.js +0 -25
  590. package/dist/compiler/tir/statements/TirBreakStmt.d.ts +0 -8
  591. package/dist/compiler/tir/statements/TirBreakStmt.js +0 -11
  592. package/dist/compiler/tir/statements/TirContinueStmt.d.ts +0 -8
  593. package/dist/compiler/tir/statements/TirContinueStmt.js +0 -13
  594. package/dist/compiler/tir/statements/TirFailStmt.d.ts +0 -13
  595. package/dist/compiler/tir/statements/TirFailStmt.js +0 -14
  596. package/dist/compiler/tir/statements/TirForOfStmt.d.ts +0 -16
  597. package/dist/compiler/tir/statements/TirForOfStmt.js +0 -25
  598. package/dist/compiler/tir/statements/TirForStmt.d.ts +0 -19
  599. package/dist/compiler/tir/statements/TirForStmt.js +0 -39
  600. package/dist/compiler/tir/statements/TirIfStmt.d.ts +0 -12
  601. package/dist/compiler/tir/statements/TirIfStmt.js +0 -23
  602. package/dist/compiler/tir/statements/TirMatchStmt.d.ts +0 -27
  603. package/dist/compiler/tir/statements/TirMatchStmt.js +0 -51
  604. package/dist/compiler/tir/statements/TirReturnStmt.d.ts +0 -10
  605. package/dist/compiler/tir/statements/TirReturnStmt.js +0 -12
  606. package/dist/compiler/tir/statements/TirStmt.d.ts +0 -32
  607. package/dist/compiler/tir/statements/TirStmt.js +0 -40
  608. package/dist/compiler/tir/statements/TirVarDecl/TirArrayLikeDeconstr.d.ts +0 -17
  609. package/dist/compiler/tir/statements/TirVarDecl/TirArrayLikeDeconstr.js +0 -30
  610. package/dist/compiler/tir/statements/TirVarDecl/TirNamedDeconstructVarDecl.d.ts +0 -21
  611. package/dist/compiler/tir/statements/TirVarDecl/TirNamedDeconstructVarDecl.js +0 -34
  612. package/dist/compiler/tir/statements/TirVarDecl/TirSimpleVarDecl.d.ts +0 -17
  613. package/dist/compiler/tir/statements/TirVarDecl/TirSimpleVarDecl.js +0 -22
  614. package/dist/compiler/tir/statements/TirVarDecl/TirSingleDeconstructVarDecl.d.ts +0 -17
  615. package/dist/compiler/tir/statements/TirVarDecl/TirSingleDeconstructVarDecl.js +0 -30
  616. package/dist/compiler/tir/statements/TirVarDecl/TirVarDecl.d.ts +0 -10
  617. package/dist/compiler/tir/statements/TirVarDecl/TirVarDecl.js +0 -11
  618. package/dist/compiler/tir/statements/TirWhileStmt.d.ts +0 -11
  619. package/dist/compiler/tir/statements/TirWhileStmt.js +0 -19
  620. package/dist/compiler/tir/statements/utils/definitelyFails.d.ts +0 -3
  621. package/dist/compiler/tir/statements/utils/definitelyFails.js +0 -52
  622. package/dist/compiler/tir/types/TirAliasType.d.ts +0 -32
  623. package/dist/compiler/tir/types/TirAliasType.js +0 -49
  624. package/dist/compiler/tir/types/TirInterfaceImpl.d.ts +0 -44
  625. package/dist/compiler/tir/types/TirInterfaceImpl.js +0 -32
  626. package/dist/compiler/tir/types/TirInterfaceType.d.ts +0 -28
  627. package/dist/compiler/tir/types/TirInterfaceType.js +0 -36
  628. package/dist/compiler/tir/types/TirNativeType/TirNativeType.d.ts +0 -41
  629. package/dist/compiler/tir/types/TirNativeType/TirNativeType.js +0 -86
  630. package/dist/compiler/tir/types/TirNativeType/index.d.ts +0 -2
  631. package/dist/compiler/tir/types/TirNativeType/index.js +0 -2
  632. package/dist/compiler/tir/types/TirNativeType/native/Optional/data.d.ts +0 -17
  633. package/dist/compiler/tir/types/TirNativeType/native/Optional/data.js +0 -47
  634. package/dist/compiler/tir/types/TirNativeType/native/Optional/index.d.ts +0 -3
  635. package/dist/compiler/tir/types/TirNativeType/native/Optional/index.js +0 -3
  636. package/dist/compiler/tir/types/TirNativeType/native/Optional/isTirOptType.d.ts +0 -4
  637. package/dist/compiler/tir/types/TirNativeType/native/Optional/isTirOptType.js +0 -6
  638. package/dist/compiler/tir/types/TirNativeType/native/Optional/sop.d.ts +0 -17
  639. package/dist/compiler/tir/types/TirNativeType/native/Optional/sop.js +0 -48
  640. package/dist/compiler/tir/types/TirNativeType/native/bool.d.ts +0 -13
  641. package/dist/compiler/tir/types/TirNativeType/native/bool.js +0 -12
  642. package/dist/compiler/tir/types/TirNativeType/native/bytes.d.ts +0 -13
  643. package/dist/compiler/tir/types/TirNativeType/native/bytes.js +0 -12
  644. package/dist/compiler/tir/types/TirNativeType/native/data.d.ts +0 -13
  645. package/dist/compiler/tir/types/TirNativeType/native/data.js +0 -12
  646. package/dist/compiler/tir/types/TirNativeType/native/function.d.ts +0 -16
  647. package/dist/compiler/tir/types/TirNativeType/native/function.js +0 -38
  648. package/dist/compiler/tir/types/TirNativeType/native/index.d.ts +0 -10
  649. package/dist/compiler/tir/types/TirNativeType/native/index.js +0 -10
  650. package/dist/compiler/tir/types/TirNativeType/native/int.d.ts +0 -13
  651. package/dist/compiler/tir/types/TirNativeType/native/int.js +0 -12
  652. package/dist/compiler/tir/types/TirNativeType/native/linearMap.d.ts +0 -17
  653. package/dist/compiler/tir/types/TirNativeType/native/linearMap.js +0 -44
  654. package/dist/compiler/tir/types/TirNativeType/native/list.d.ts +0 -16
  655. package/dist/compiler/tir/types/TirNativeType/native/list.js +0 -38
  656. package/dist/compiler/tir/types/TirNativeType/native/string.d.ts +0 -13
  657. package/dist/compiler/tir/types/TirNativeType/native/string.js +0 -12
  658. package/dist/compiler/tir/types/TirNativeType/native/void.d.ts +0 -13
  659. package/dist/compiler/tir/types/TirNativeType/native/void.js +0 -12
  660. package/dist/compiler/tir/types/TirStructType.d.ts +0 -68
  661. package/dist/compiler/tir/types/TirStructType.js +0 -128
  662. package/dist/compiler/tir/types/TirType.d.ts +0 -34
  663. package/dist/compiler/tir/types/TirType.js +0 -16
  664. package/dist/compiler/tir/types/TirTypeParam.d.ts +0 -18
  665. package/dist/compiler/tir/types/TirTypeParam.js +0 -39
  666. package/dist/compiler/tir/types/utils/canAssignTo.d.ts +0 -24
  667. package/dist/compiler/tir/types/utils/canAssignTo.js +0 -337
  668. package/dist/compiler/tir/types/utils/canCastTo.d.ts +0 -9
  669. package/dist/compiler/tir/types/utils/canCastTo.js +0 -155
  670. package/dist/compiler/tir/types/utils/getDeconstructableType.d.ts +0 -9
  671. package/dist/compiler/tir/types/utils/getDeconstructableType.js +0 -20
  672. package/dist/compiler/tir/types/utils/getListTypeArg.d.ts +0 -2
  673. package/dist/compiler/tir/types/utils/getListTypeArg.js +0 -9
  674. package/dist/compiler/tir/types/utils/getOptTypeArg.d.ts +0 -2
  675. package/dist/compiler/tir/types/utils/getOptTypeArg.js +0 -14
  676. package/dist/compiler/tir/types/utils/getUnaliased.d.ts +0 -3
  677. package/dist/compiler/tir/types/utils/getUnaliased.js +0 -9
  678. package/dist/diagnostics/DiagnosticCategory.d.ts +0 -16
  679. package/dist/diagnostics/DiagnosticCategory.js +0 -39
  680. package/dist/diagnostics/DiagnosticEmitter.d.ts +0 -32
  681. package/dist/diagnostics/DiagnosticEmitter.js +0 -95
  682. package/dist/diagnostics/DiagnosticMessage.d.ts +0 -37
  683. package/dist/diagnostics/DiagnosticMessage.js +0 -229
  684. package/dist/diagnostics/diagnosticMessages.generated.d.ts +0 -275
  685. package/dist/diagnostics/diagnosticMessages.generated.js +0 -551
  686. package/dist/diagnostics/utils/types.d.ts +0 -5
  687. package/dist/diagnostics/utils/types.js +0 -1
  688. package/dist/index.d.ts +0 -12
  689. package/dist/index.js +0 -13
  690. package/dist/parser/Parser.d.ts +0 -150
  691. package/dist/parser/Parser.js +0 -2416
  692. package/dist/parser/Precedence.d.ts +0 -38
  693. package/dist/parser/Precedence.js +0 -98
  694. package/dist/parser/hoistStatementsInplace.d.ts +0 -14
  695. package/dist/parser/hoistStatementsInplace.js +0 -94
  696. package/dist/parser/index.d.ts +0 -1
  697. package/dist/parser/index.js +0 -1
  698. package/dist/parser/parseFile.d.ts +0 -3
  699. package/dist/parser/parseFile.js +0 -8
  700. package/dist/tokenizer/IdentifierHandling.d.ts +0 -5
  701. package/dist/tokenizer/IdentifierHandling.js +0 -6
  702. package/dist/tokenizer/OnNewLine.d.ts +0 -6
  703. package/dist/tokenizer/OnNewLine.js +0 -8
  704. package/dist/tokenizer/Token.d.ts +0 -160
  705. package/dist/tokenizer/Token.js +0 -213
  706. package/dist/tokenizer/Tokenizer.d.ts +0 -129
  707. package/dist/tokenizer/Tokenizer.js +0 -1323
  708. package/dist/tokenizer/TokenizerState.d.ts +0 -17
  709. package/dist/tokenizer/TokenizerState.js +0 -17
  710. package/dist/tokenizer/index.d.ts +0 -2
  711. package/dist/tokenizer/index.js +0 -2
  712. package/dist/tokenizer/utils/isIllegalVariableIdentifier.d.ts +0 -1
  713. package/dist/tokenizer/utils/isIllegalVariableIdentifier.js +0 -12
  714. package/dist/tokenizer/utils/operatorTokenToString.d.ts +0 -2
  715. package/dist/tokenizer/utils/operatorTokenToString.js +0 -57
  716. package/dist/tokenizer/utils/tokenFromKeyword.d.ts +0 -2
  717. package/dist/tokenizer/utils/tokenFromKeyword.js +0 -222
  718. package/dist/tokenizer/utils/tokenIsAlsoIdentifier.d.ts +0 -2
  719. package/dist/tokenizer/utils/tokenIsAlsoIdentifier.js +0 -24
  720. package/dist/utils/BasePlutsError.d.ts +0 -2
  721. package/dist/utils/BasePlutsError.js +0 -2
  722. package/dist/utils/BitUtils/index.d.ts +0 -30
  723. package/dist/utils/BitUtils/index.js +0 -60
  724. package/dist/utils/CharCode.d.ts +0 -125
  725. package/dist/utils/CharCode.js +0 -1
  726. package/dist/utils/Cloneable.d.ts +0 -6
  727. package/dist/utils/Cloneable.js +0 -4
  728. package/dist/utils/InvalidCborFormatError.d.ts +0 -3
  729. package/dist/utils/InvalidCborFormatError.js +0 -5
  730. package/dist/utils/IsSingleKey.d.ts +0 -7
  731. package/dist/utils/IsSingleKey.js +0 -1
  732. package/dist/utils/MaybePromise.d.ts +0 -2
  733. package/dist/utils/MaybePromise.js +0 -4
  734. package/dist/utils/PlutusScriptType.d.ts +0 -12
  735. package/dist/utils/PlutusScriptType.js +0 -1
  736. package/dist/utils/ToJson.d.ts +0 -4
  737. package/dist/utils/ToJson.js +0 -5
  738. package/dist/utils/UPLCFlatUtils/index.d.ts +0 -46
  739. package/dist/utils/UPLCFlatUtils/index.js +0 -124
  740. package/dist/utils/array/filterSortedStrArrInplace.d.ts +0 -7
  741. package/dist/utils/array/filterSortedStrArrInplace.js +0 -46
  742. package/dist/utils/array/keepSortedArrInplace.d.ts +0 -7
  743. package/dist/utils/array/keepSortedArrInplace.js +0 -49
  744. package/dist/utils/array/mergeSortedStrArrInplace.d.ts +0 -6
  745. package/dist/utils/array/mergeSortedStrArrInplace.js +0 -52
  746. package/dist/utils/assert.d.ts +0 -1
  747. package/dist/utils/assert.js +0 -5
  748. package/dist/utils/capitalize.d.ts +0 -1
  749. package/dist/utils/capitalize.js +0 -5
  750. package/dist/utils/combinators.d.ts +0 -37
  751. package/dist/utils/combinators.js +0 -76
  752. package/dist/utils/getCallStackAt/index.d.ts +0 -43
  753. package/dist/utils/getCallStackAt/index.js +0 -295
  754. package/dist/utils/hex.d.ts +0 -1
  755. package/dist/utils/hex.js +0 -6
  756. package/dist/utils/ints.d.ts +0 -4
  757. package/dist/utils/ints.js +0 -19
  758. package/dist/utils/isNonEmpty.d.ts +0 -1
  759. package/dist/utils/isNonEmpty.js +0 -3
  760. package/dist/utils/maybeData.d.ts +0 -4
  761. package/dist/utils/maybeData.js +0 -10
  762. package/dist/utils/stringify.d.ts +0 -2
  763. package/dist/utils/stringify.js +0 -31
  764. package/dist/utils/terminal.d.ts +0 -28
  765. package/dist/utils/terminal.js +0 -38
  766. package/dist/utils/text.d.ts +0 -172
  767. package/dist/utils/text.js +0 -672
  768. package/dist/utils/types.d.ts +0 -12
  769. package/dist/utils/types.js +0 -1
@@ -1,47 +0,0 @@
1
- import { DiagnosticCode } from "../../../../diagnostics/diagnosticMessages.generated.js";
2
- import { TirCaseExpr, TirCaseMatcher, TirWildcardCaseMatcher } from "../../../tir/expressions/TirCaseExpr.js";
3
- import { TirNamedDeconstructVarDecl } from "../../../tir/statements/TirVarDecl/TirNamedDeconstructVarDecl.js";
4
- import { TirSimpleVarDecl } from "../../../tir/statements/TirVarDecl/TirSimpleVarDecl.js";
5
- import { canAssignTo } from "../../../tir/types/utils/canAssignTo.js";
6
- import { _compileVarDecl } from "../statements/_compileVarStmt.js";
7
- import { _compileExpr } from "./_compileExpr.js";
8
- export function _compileCaseExpr(ctx, expr, typeHint) {
9
- const matchExpr = _compileExpr(ctx, expr.matchExpr, typeHint);
10
- if (!matchExpr)
11
- return undefined;
12
- const cases = expr.cases.map(branch => _compileCaseExprMatcher(ctx, branch, matchExpr.type, typeHint)); // we early return in case of undefined so this is safe
13
- if (cases.some(c => !c))
14
- return undefined;
15
- const returnType = cases[0]?.body.type ?? typeHint;
16
- if (!returnType)
17
- return ctx.error(DiagnosticCode.Cannot_infer_return_type_Try_to_make_the_type_explicit, expr.range);
18
- if (!expr.wildcardCase)
19
- return new TirCaseExpr(matchExpr, cases, undefined, returnType, expr.range);
20
- const wildcardCase = _compileCaseWildcardMatcher(ctx, expr.wildcardCase, returnType);
21
- if (!wildcardCase)
22
- return undefined;
23
- return new TirCaseExpr(matchExpr, cases, wildcardCase, returnType, expr.range);
24
- }
25
- export function _compileCaseExprMatcher(ctx, matcher, patternType, returnTypeHint) {
26
- const pattern = _compileVarDecl(ctx, matcher.pattern, patternType);
27
- if (!pattern)
28
- return undefined;
29
- if (pattern instanceof TirSimpleVarDecl)
30
- return ctx.error(DiagnosticCode._case_expression_must_decontructed_the_inspected_value, matcher.pattern.range);
31
- if (!canAssignTo(pattern.type, patternType))
32
- return ctx.error(DiagnosticCode.Type_0_is_not_assignable_to_type_1, matcher.pattern.range, pattern.type.toString(), patternType.toString());
33
- const body = _compileExpr(ctx, matcher.body, returnTypeHint);
34
- if (!body)
35
- return undefined;
36
- if (returnTypeHint && !canAssignTo(body.type, returnTypeHint))
37
- return ctx.error(DiagnosticCode.Type_0_is_not_assignable_to_type_1, matcher.body.range, body.type.toString(), returnTypeHint.toString());
38
- if (!(pattern instanceof TirNamedDeconstructVarDecl))
39
- return ctx.error(DiagnosticCode._case_expression_must_decontructed_the_inspected_value, matcher.pattern.range);
40
- return new TirCaseMatcher(pattern, body, matcher.range);
41
- }
42
- function _compileCaseWildcardMatcher(ctx, wildcardCase, returnTypeHint) {
43
- const bodyExpr = _compileExpr(ctx, wildcardCase.body, returnTypeHint);
44
- if (!bodyExpr)
45
- return undefined;
46
- return new TirWildcardCaseMatcher(bodyExpr, wildcardCase.range);
47
- }
@@ -1,5 +0,0 @@
1
- import { ElemAccessExpr } from "../../../../ast/nodes/expr/ElemAccessExpr.js";
2
- import { TirElemAccessExpr } from "../../../tir/expressions/TirElemAccessExpr.js";
3
- import { TirType } from "../../../tir/types/TirType.js";
4
- import { AstCompilationCtx } from "../../AstCompilationCtx.js";
5
- export declare function _compileElemAccessExpr(ctx: AstCompilationCtx, expr: ElemAccessExpr, typeHint: TirType | undefined): TirElemAccessExpr | undefined;
@@ -1,23 +0,0 @@
1
- import { DiagnosticCode } from "../../../../diagnostics/diagnosticMessages.generated.js";
2
- import { TirElemAccessExpr } from "../../../tir/expressions/TirElemAccessExpr.js";
3
- import { TirListT } from "../../../tir/types/TirNativeType/native/list.js";
4
- import { canAssignTo } from "../../../tir/types/utils/canAssignTo.js";
5
- import { getListTypeArg } from "../../../tir/types/utils/getListTypeArg.js";
6
- import { _compileExpr } from "./_compileExpr.js";
7
- export function _compileElemAccessExpr(ctx, expr, typeHint) {
8
- const int_t = ctx.program.stdTypes.int;
9
- const litsTypeHint = typeHint ? new TirListT(typeHint) : undefined;
10
- const arrLikeExpr = _compileExpr(ctx, expr.arrLikeExpr, litsTypeHint);
11
- if (!arrLikeExpr)
12
- return undefined;
13
- const arrLikeType = arrLikeExpr.type;
14
- const elemsType = getListTypeArg(arrLikeType);
15
- if (!elemsType)
16
- return ctx.error(DiagnosticCode.This_expression_cannot_be_indexed, expr.arrLikeExpr.range);
17
- const indexExpr = _compileExpr(ctx, expr.indexExpr, int_t);
18
- if (!indexExpr)
19
- return undefined;
20
- if (!canAssignTo(indexExpr.type, int_t))
21
- return ctx.error(DiagnosticCode.Type_0_is_not_assignable_to_type_1, expr.indexExpr.range, indexExpr.type.toString(), int_t.toString());
22
- return new TirElemAccessExpr(arrLikeExpr, indexExpr, elemsType, expr.range);
23
- }
@@ -1,22 +0,0 @@
1
- import { PebbleExpr } from "../../../../ast/nodes/expr/PebbleExpr.js";
2
- import { TirExpr } from "../../../tir/expressions/TirExpr.js";
3
- import { TirType } from "../../../tir/types/TirType.js";
4
- import { AstCompilationCtx } from "../../AstCompilationCtx.js";
5
- /**
6
- * here we just translate to TIR
7
- *
8
- * WE DO NOT OPTIMIZE
9
- *
10
- * optimizaitons are part of the TIR -> TermIR compilation
11
- **/
12
- export declare function _compileExpr(ctx: AstCompilationCtx, expr: PebbleExpr,
13
- /**
14
- * this is just a type **hint**
15
- * it is only used as last resource to
16
- * disambiguate the type of an expression.
17
- *
18
- * it is **NOT guaranteed** that the returned expression will be assignable to this type
19
- *
20
- * if that is the case, it needs to be checked OUTSIDE this function
21
- **/
22
- typeHint: TirType | undefined): TirExpr | undefined;
@@ -1,77 +0,0 @@
1
- import { Identifier } from "../../../../ast/nodes/common/Identifier.js";
2
- import { isBinaryExpr } from "../../../../ast/nodes/expr/binary/BinaryExpr.js";
3
- import { CaseExpr } from "../../../../ast/nodes/expr/CaseExpr.js";
4
- import { ElemAccessExpr } from "../../../../ast/nodes/expr/ElemAccessExpr.js";
5
- import { CallExpr } from "../../../../ast/nodes/expr/functions/CallExpr.js";
6
- import { FuncExpr } from "../../../../ast/nodes/expr/functions/FuncExpr.js";
7
- import { isLitteralExpr } from "../../../../ast/nodes/expr/litteral/LitteralExpr.js";
8
- import { ParentesizedExpr } from "../../../../ast/nodes/expr/ParentesizedExpr.js";
9
- import { isPropAccessExpr } from "../../../../ast/nodes/expr/PropAccessExpr.js";
10
- import { TernaryExpr } from "../../../../ast/nodes/expr/TernaryExpr.js";
11
- import { TypeConversionExpr } from "../../../../ast/nodes/expr/TypeConversionExpr.js";
12
- import { NonNullExpr } from "../../../../ast/nodes/expr/unary/NonNullExpr.js";
13
- import { isUnaryPrefixExpr } from "../../../../ast/nodes/expr/unary/UnaryPrefixExpr.js";
14
- import { _compileBinaryExpr } from "./_compileBinaryExpr.js";
15
- import { _compileCallExpr } from "./_compileCallExpr.js";
16
- import { _compileCaseExpr } from "./_compileCaseExpr.js";
17
- import { _compileElemAccessExpr } from "./_compileElemAccessExpr.js";
18
- import { _compileFuncExpr } from "./_compileFuncExpr.js";
19
- import { _compileLitteralExpr } from "./_compileLitteralExpr.js";
20
- import { _compileNonNullExpr } from "./_compileNonNullExpr.js";
21
- import { _compilePropAccessExpr } from "./_compilePropAccessExpr.js";
22
- import { _compileTernaryExpr } from "./_compileTernaryExpr.js";
23
- import { _compileTypeConversionExpr } from "./_compileTypeConversionExpr.js";
24
- import { _compileUnaryPrefixExpr } from "./_compileUnaryPrefixExpr.js";
25
- import { _compileVarAccessExpr } from "./_compileVarAccessExpr.js";
26
- /**
27
- * here we just translate to TIR
28
- *
29
- * WE DO NOT OPTIMIZE
30
- *
31
- * optimizaitons are part of the TIR -> TermIR compilation
32
- **/
33
- export function _compileExpr(ctx, expr,
34
- /**
35
- * this is just a type **hint**
36
- * it is only used as last resource to
37
- * disambiguate the type of an expression.
38
- *
39
- * it is **NOT guaranteed** that the returned expression will be assignable to this type
40
- *
41
- * if that is the case, it needs to be checked OUTSIDE this function
42
- **/
43
- typeHint) {
44
- if (expr instanceof Identifier)
45
- return _compileVarAccessExpr(ctx, expr, typeHint);
46
- if (isUnaryPrefixExpr(expr))
47
- return _compileUnaryPrefixExpr(ctx, expr, typeHint);
48
- if (expr instanceof NonNullExpr)
49
- return _compileNonNullExpr(ctx, expr, typeHint);
50
- if (expr instanceof ParentesizedExpr)
51
- return _compileExpr(ctx, expr.expr, typeHint);
52
- if (expr instanceof FuncExpr)
53
- return _compileFuncExpr(ctx, expr, typeHint);
54
- if (expr instanceof CallExpr)
55
- return _compileCallExpr(ctx, expr, typeHint);
56
- if (expr instanceof CaseExpr)
57
- return _compileCaseExpr(ctx, expr, typeHint);
58
- if (expr instanceof TypeConversionExpr)
59
- return _compileTypeConversionExpr(ctx, expr, typeHint);
60
- if (expr instanceof NonNullExpr)
61
- return _compileNonNullExpr(ctx, expr, typeHint);
62
- // if( expr instanceof IsExpr ) return _compileIsExpr( ctx, expr, typeHint );
63
- if (expr instanceof ElemAccessExpr)
64
- return _compileElemAccessExpr(ctx, expr, typeHint);
65
- if (expr instanceof TernaryExpr)
66
- return _compileTernaryExpr(ctx, expr, typeHint);
67
- if (isPropAccessExpr(expr))
68
- return _compilePropAccessExpr(ctx, expr, typeHint);
69
- if (isBinaryExpr(expr))
70
- return _compileBinaryExpr(ctx, expr, typeHint);
71
- //*/
72
- if (isLitteralExpr(expr))
73
- return _compileLitteralExpr(ctx, expr, typeHint);
74
- const tsEnsureExsautstiveCheck = expr;
75
- console.error(expr);
76
- throw new Error("unreachable::AstCompiler::_compileExpr");
77
- }
@@ -1,26 +0,0 @@
1
- import { FuncExpr } from "../../../../ast/nodes/expr/functions/FuncExpr.js";
2
- import { AstFuncType } from "../../../../ast/nodes/types/AstNativeTypeExpr.js";
3
- import { TirFuncExpr } from "../../../tir/expressions/TirFuncExpr.js";
4
- import { TirFuncT } from "../../../tir/types/TirNativeType/native/function.js";
5
- import { TirType } from "../../../tir/types/TirType.js";
6
- import { AstCompilationCtx } from "../../AstCompilationCtx.js";
7
- export declare function _compileFuncExpr(ctx: AstCompilationCtx, expr: FuncExpr, expectedFuncType: TirType | undefined, isMethod?: boolean): TirFuncExpr | undefined;
8
- /**
9
- * [NOTE: abmigous param encoding defaults to data]
10
- *
11
- * when we can encode a struct (or alias of struct) both as sop or data,
12
- * we default to data encoding
13
- *
14
- * this is because, not know much about what was the original encoding,
15
- * converting sop to data is usually cheaper
16
- * than data to sop, where we would need to decode all fields,
17
- * even if we don't use them.
18
- *
19
- * encoding is cheaper than decoding and can be done outside the function, before the call
20
- *
21
- * Optionals are sop, but the value is follows the rules above.
22
- *
23
- * TODO: in the future we should implement a "fully extracted form" (FEF)
24
- * so that we don't care about data or sop. (only exception is if the function calls `equalsData` builtin)
25
- **/
26
- export declare function getDataFuncSignature(ctx: AstCompilationCtx, signature: AstFuncType): TirFuncT | undefined;
@@ -1,163 +0,0 @@
1
- import { BlockStmt } from "../../../../ast/nodes/statements/BlockStmt.js";
2
- import { ReturnStmt } from "../../../../ast/nodes/statements/ReturnStmt.js";
3
- import { AstFuncType } from "../../../../ast/nodes/types/AstNativeTypeExpr.js";
4
- import { DiagnosticCode } from "../../../../diagnostics/diagnosticMessages.generated.js";
5
- import { getUniqueInternalName } from "../../../internalVar.js";
6
- import { TirFuncExpr } from "../../../tir/expressions/TirFuncExpr.js";
7
- import { TirVariableAccessExpr } from "../../../tir/expressions/TirVariableAccessExpr.js";
8
- import { TirSimpleVarDecl } from "../../../tir/statements/TirVarDecl/TirSimpleVarDecl.js";
9
- import { TirFuncT } from "../../../tir/types/TirNativeType/native/function.js";
10
- import { TirTypeParam } from "../../../tir/types/TirTypeParam.js";
11
- import { getUnaliased } from "../../../tir/types/utils/getUnaliased.js";
12
- import { _compileBlockStmt } from "../statements/_compileBlockStmt.js";
13
- import { _compileVarDecl } from "../statements/_compileVarStmt.js";
14
- import { _compileDataEncodedConcreteType } from "../types/_compileDataEncodedConcreteType.js";
15
- import { _compileSopEncodedConcreteType } from "../types/_compileSopEncodedConcreteType.js";
16
- /*
17
- - add "self" as first parameter
18
- - replace `node( arg )` as `self( Node{ arg } )`
19
-
20
- ```
21
- function isOdd( n: int ): boolean
22
- {
23
- return n == 1 || !isEven( n - 1 );
24
- }
25
-
26
- function isEven( n: int ): boolean
27
- {
28
- return n == 0 || !isOdd( n - 1 );
29
- }
30
- ```
31
-
32
- becomes
33
-
34
- ```
35
- runtime struct _Choice {
36
- IsOdd{ n: int },
37
- IsEven{ n: int },
38
- }
39
-
40
- function _isOdd( mutual_chooser: any, n: int ): boolean
41
- {
42
- return n == 1 || !mutual_chooser( IsEven{ n: n - 1 } );
43
- }
44
-
45
- function _isEven( mutual_chooser: any, n: int ): boolean
46
- {
47
- return n == 0 || !mutual_chooser( IsOdd{ n: n - 1 } );
48
- }
49
-
50
- function _isOdd_isEven( choice: _Choice ): boolean
51
- {
52
- return case choice
53
- is IsOdd{ _ } => _isOdd( _isOdd_isEven, ...choice ),
54
- is IsEven{ _ } => _isEven( _isOdd_isEven, ...choice ),
55
- ;
56
- }
57
-
58
- // partial application
59
- const isOdd = _isOdd( _isOdd_isEven );
60
- const isEven = _isEven( _isOdd_isEven );
61
- ```
62
- */
63
- export function _compileFuncExpr(ctx, expr, expectedFuncType, isMethod = false) {
64
- if (expectedFuncType) {
65
- expectedFuncType = getUnaliased(expectedFuncType);
66
- if (!(expectedFuncType instanceof TirFuncT))
67
- return ctx.error(DiagnosticCode.While_compiling_function_expression_expected_type_was_not_a_function, expr.range);
68
- }
69
- else {
70
- expectedFuncType = (isMethod ? undefined :
71
- ctx.program.functions.get(expr.name.text)?.sig()) ?? getDataFuncSignature(ctx, expr.signature);
72
- if (!(expectedFuncType instanceof TirFuncT))
73
- return undefined;
74
- }
75
- const returnType = expectedFuncType.returnType;
76
- const funcCtx = ctx.newFunctionChildScope(returnType, isMethod);
77
- // if( _hasDuplicateTypeParams( ctx, expr.typeParams ) ) return undefined;
78
- if (expr.typeParams.length > 0)
79
- return ctx.error(DiagnosticCode.Not_implemented_0, expr.typeParams[0].range, "generic functions");
80
- const destructuredParamsResult = _getDestructuredParamsAsVarDecls(funcCtx, expr);
81
- if (!destructuredParamsResult)
82
- return undefined;
83
- const { blockInitStmts, params } = destructuredParamsResult;
84
- const astBody = expr.body instanceof BlockStmt ? expr.body :
85
- new BlockStmt([new ReturnStmt(expr.body, expr.body.range)], expr.body.range);
86
- const compileResult = _compileBlockStmt(funcCtx, astBody);
87
- if (!compileResult)
88
- return undefined;
89
- const body = compileResult[0];
90
- body.stmts.unshift(...blockInitStmts);
91
- const funcExpr = new TirFuncExpr(expr.name.text, params, returnType, body, expr.range);
92
- return funcExpr;
93
- }
94
- function _getDestructuredParamsAsVarDecls(funcCtx, expr) {
95
- const blockInitStmts = [];
96
- const params = [];
97
- for (const astParam of expr.signature.params) {
98
- const tirParam = _compileVarDecl(funcCtx, astParam, undefined);
99
- if (!tirParam)
100
- return undefined;
101
- if (tirParam instanceof TirSimpleVarDecl) {
102
- params.push(tirParam);
103
- continue;
104
- }
105
- // else move destructuring in the body (uplc has only simple params)
106
- const uniqueName = getUniqueInternalName(tirParam.type.toString().toLowerCase());
107
- const isConst = tirParam.isConst;
108
- // function param as simple var decl
109
- const simpleParam = new TirSimpleVarDecl(uniqueName, tirParam.type, tirParam.initExpr, isConst, tirParam.range);
110
- // tirParam destructures simpleParam added to the block init stmts
111
- tirParam.initExpr = new TirVariableAccessExpr({
112
- variableInfos: {
113
- name: simpleParam.name,
114
- type: simpleParam.type,
115
- isConstant: true
116
- },
117
- isDefinedOutsideFuncScope: false,
118
- }, tirParam.range);
119
- params.push(simpleParam);
120
- blockInitStmts.push(tirParam);
121
- }
122
- return { blockInitStmts, params };
123
- }
124
- /**
125
- * [NOTE: abmigous param encoding defaults to data]
126
- *
127
- * when we can encode a struct (or alias of struct) both as sop or data,
128
- * we default to data encoding
129
- *
130
- * this is because, not know much about what was the original encoding,
131
- * converting sop to data is usually cheaper
132
- * than data to sop, where we would need to decode all fields,
133
- * even if we don't use them.
134
- *
135
- * encoding is cheaper than decoding and can be done outside the function, before the call
136
- *
137
- * Optionals are sop, but the value is follows the rules above.
138
- *
139
- * TODO: in the future we should implement a "fully extracted form" (FEF)
140
- * so that we don't care about data or sop. (only exception is if the function calls `equalsData` builtin)
141
- **/
142
- export function getDataFuncSignature(ctx, signature) {
143
- const funcParams = signature.params;
144
- const paramTypes = new Array(funcParams.length);
145
- for (let i = 0; i < funcParams.length; i++) {
146
- const param = funcParams[i];
147
- if (!param.type)
148
- return ctx.error(DiagnosticCode.Could_not_infer_function_signature_parameter_type_is_missing, param.range);
149
- const type = _compileDataEncodedConcreteType(ctx, param.type, true);
150
- if (!type)
151
- return undefined;
152
- paramTypes[i] = type;
153
- }
154
- if (!signature.returnType)
155
- return ctx.error(DiagnosticCode.Could_not_infer_function_signature_return_type_is_missing, signature.range);
156
- const returnType = signature.returnType instanceof AstFuncType ?
157
- getDataFuncSignature(ctx, signature.returnType) :
158
- _compileSopEncodedConcreteType(ctx, signature.returnType);
159
- if (!returnType
160
- || returnType instanceof TirTypeParam)
161
- return undefined;
162
- return new TirFuncT(paramTypes, returnType);
163
- }
@@ -1,43 +0,0 @@
1
- export {};
2
- /*
3
- export function _compileIsExpr(
4
- ctx: AstCompilationCtx,
5
- expr: IsExpr,
6
- _typeHint: TirType | undefined
7
- ): TirIsExpr | undefined
8
- {
9
- const bool_t = ctx.program.stdTypes.bool;
10
-
11
- const target = _compileExpr( ctx, expr.instanceExpr, undefined );
12
- if( !target ) return undefined;
13
-
14
- const structType = getStructType( target.type );
15
- if( !structType ) return ctx.error(
16
- DiagnosticCode.Cannot_use_is_operator_on_a_value_that_is_not_a_struct_type,
17
- expr.instanceExpr.range
18
- );
19
-
20
- const targetCtorId = expr.ofType;
21
- const targetCtorName = targetCtorId.text;
22
-
23
- const structCtors = structType.constructors;
24
- const targetCtor = structCtors.find( ctor => ctor.name === targetCtorName );
25
- if( !targetCtor ) return ctx.error(
26
- DiagnosticCode.Constructor_0_is_not_part_of_the_definition_of_1,
27
- expr.ofType.range, targetCtorName, structType.toString()
28
- );
29
-
30
- if( structCtors.length === 1 )
31
- ctx.warning(
32
- DiagnosticCode.This_check_is_redundant_Struct_0_has_only_one_possible_constructor,
33
- expr.range, structType.toString()
34
- );
35
-
36
- return new TirIsExpr(
37
- target,
38
- expr.ofType,
39
- bool_t,
40
- expr.range
41
- );
42
- }
43
- //*/
@@ -1,19 +0,0 @@
1
- import { LitArrExpr } from "../../../../ast/nodes/expr/litteral/LitArrExpr.js";
2
- import { LitNamedObjExpr } from "../../../../ast/nodes/expr/litteral/LitNamedObjExpr.js";
3
- import { LitObjExpr } from "../../../../ast/nodes/expr/litteral/LitObjExpr.js";
4
- import { LitteralExpr } from "../../../../ast/nodes/expr/litteral/LitteralExpr.js";
5
- import { LitUndefExpr } from "../../../../ast/nodes/expr/litteral/LitUndefExpr.js";
6
- import { TirLitNamedObjExpr } from "../../../tir/expressions/litteral/TirLitNamedObjExpr.js";
7
- import { TirLitObjExpr } from "../../../tir/expressions/litteral/TirLitObjExpr.js";
8
- import { TirLitUndefExpr } from "../../../tir/expressions/litteral/TirLitUndefExpr.js";
9
- import { TirExpr } from "../../../tir/expressions/TirExpr.js";
10
- import { TirStructType } from "../../../tir/types/TirStructType.js";
11
- import { TirType } from "../../../tir/types/TirType.js";
12
- import { AstCompilationCtx } from "../../AstCompilationCtx.js";
13
- export declare function _compileLitteralExpr(ctx: AstCompilationCtx, expr: LitteralExpr, typeHint: TirType | undefined): TirExpr | undefined;
14
- export declare function _compileLitteralUndefExpr(ctx: AstCompilationCtx, expr: LitUndefExpr, typeHint: TirType | undefined): TirLitUndefExpr | undefined;
15
- export declare function _compileLitteralNamedObjExpr(ctx: AstCompilationCtx, expr: LitNamedObjExpr, typeHint: TirType | undefined): TirLitNamedObjExpr | undefined;
16
- export declare function _compileLitteralObjExpr(ctx: AstCompilationCtx, expr: LitObjExpr, typeHint: TirType | undefined): TirLitObjExpr | undefined;
17
- export declare function __commonCompileStructFieldValues(ctx: AstCompilationCtx, expr: LitObjExpr | LitNamedObjExpr, realType: TirType, // possibly aliased
18
- structType: TirStructType, constructorIndex: number): TirExpr[] | undefined;
19
- export declare function _compileLitteralArrayExpr(ctx: AstCompilationCtx, expr: LitArrExpr, typeHint: TirType | undefined): TirExpr | undefined;
@@ -1,202 +0,0 @@
1
- import { LitArrExpr } from "../../../../ast/nodes/expr/litteral/LitArrExpr.js";
2
- import { LitFalseExpr } from "../../../../ast/nodes/expr/litteral/LitFalseExpr.js";
3
- import { LitHexBytesExpr } from "../../../../ast/nodes/expr/litteral/LitHexBytesExpr.js";
4
- import { LitIntExpr } from "../../../../ast/nodes/expr/litteral/LitIntExpr.js";
5
- import { LitNamedObjExpr } from "../../../../ast/nodes/expr/litteral/LitNamedObjExpr.js";
6
- import { LitObjExpr } from "../../../../ast/nodes/expr/litteral/LitObjExpr.js";
7
- import { LitStrExpr } from "../../../../ast/nodes/expr/litteral/LitStrExpr.js";
8
- import { LitThisExpr } from "../../../../ast/nodes/expr/litteral/LitThisExpr.js";
9
- import { LitTrueExpr } from "../../../../ast/nodes/expr/litteral/LitTrueExpr.js";
10
- import { LitUndefExpr } from "../../../../ast/nodes/expr/litteral/LitUndefExpr.js";
11
- import { LitVoidExpr } from "../../../../ast/nodes/expr/litteral/LitVoidExpr.js";
12
- import { DiagnosticCode } from "../../../../diagnostics/diagnosticMessages.generated.js";
13
- import { TirLitArrExpr } from "../../../tir/expressions/litteral/TirLitArrExpr.js";
14
- import { TirLitFalseExpr } from "../../../tir/expressions/litteral/TirLitFalseExpr.js";
15
- import { TirLitHexBytesExpr } from "../../../tir/expressions/litteral/TirLitHexBytesExpr.js";
16
- import { TirLitIntExpr } from "../../../tir/expressions/litteral/TirLitIntExpr.js";
17
- import { TirLitNamedObjExpr } from "../../../tir/expressions/litteral/TirLitNamedObjExpr.js";
18
- import { TirLitObjExpr } from "../../../tir/expressions/litteral/TirLitObjExpr.js";
19
- import { TirLitStrExpr } from "../../../tir/expressions/litteral/TirLitStrExpr.js";
20
- import { TirLitThisExpr } from "../../../tir/expressions/litteral/TirLitThisExpr.js";
21
- import { TirLitTrueExpr } from "../../../tir/expressions/litteral/TirLitTrueExpr.js";
22
- import { TirLitUndefExpr } from "../../../tir/expressions/litteral/TirLitUndefExpr.js";
23
- import { TirLitVoidExpr } from "../../../tir/expressions/litteral/TirLitVoidExpr.js";
24
- import { isTirExpr } from "../../../tir/expressions/TirExpr.js";
25
- import { TirListT } from "../../../tir/types/TirNativeType/native/list.js";
26
- import { TirDataOptT } from "../../../tir/types/TirNativeType/native/Optional/data.js";
27
- import { TirSopOptT } from "../../../tir/types/TirNativeType/native/Optional/sop.js";
28
- import { TirDataStructType, TirSoPStructType } from "../../../tir/types/TirStructType.js";
29
- import { isTirType } from "../../../tir/types/TirType.js";
30
- import { canAssignTo, isStructOrStructAlias, getStructType, canAssignToList } from "../../../tir/types/utils/canAssignTo.js";
31
- import { getListTypeArg } from "../../../tir/types/utils/getListTypeArg.js";
32
- import { getUnaliased } from "../../../tir/types/utils/getUnaliased.js";
33
- import { _compileExpr } from "./_compileExpr.js";
34
- export function _compileLitteralExpr(ctx, expr, typeHint) {
35
- if (expr instanceof LitVoidExpr)
36
- return new TirLitVoidExpr(expr.range);
37
- if (expr instanceof LitUndefExpr)
38
- return _compileLitteralUndefExpr(ctx, expr, typeHint);
39
- if (expr instanceof LitTrueExpr)
40
- return new TirLitTrueExpr(expr.range);
41
- if (expr instanceof LitFalseExpr)
42
- return new TirLitFalseExpr(expr.range);
43
- if (expr instanceof LitStrExpr)
44
- return new TirLitStrExpr(expr.string, expr.range);
45
- if (expr instanceof LitIntExpr)
46
- return new TirLitIntExpr(expr.integer, expr.range);
47
- if (expr instanceof LitHexBytesExpr)
48
- return new TirLitHexBytesExpr(expr.bytes, expr.range);
49
- if (expr instanceof LitThisExpr) {
50
- const this_tir_name = ctx.scope.resolveType("this")?.sopTirName;
51
- if (!this_tir_name)
52
- return ctx.error(DiagnosticCode._this_cannot_be_referenced_in_current_location, expr.range);
53
- const this_t = ctx.program.types.get(this_tir_name);
54
- if (!this_t)
55
- return ctx.error(DiagnosticCode._this_cannot_be_referenced_in_current_location, expr.range);
56
- return new TirLitThisExpr(this_t, expr.range);
57
- }
58
- if (expr instanceof LitArrExpr)
59
- return _compileLitteralArrayExpr(ctx, expr, typeHint);
60
- if (expr instanceof LitObjExpr)
61
- return _compileLitteralObjExpr(ctx, expr, typeHint);
62
- if (expr instanceof LitNamedObjExpr)
63
- return _compileLitteralNamedObjExpr(ctx, expr, typeHint);
64
- // never
65
- // expr;
66
- throw new Error("unreachable::AstCompiler::_compileLitteralExpr");
67
- }
68
- export function _compileLitteralUndefExpr(ctx, expr, typeHint) {
69
- if (!isTirType(typeHint)) {
70
- return ctx.error(DiagnosticCode.Litteral_value_undefined_must_be_explicitly_cast_to_an_Optional_type, expr.range);
71
- }
72
- typeHint = getUnaliased(typeHint);
73
- if (!(typeHint instanceof TirSopOptT
74
- || typeHint instanceof TirDataOptT)) {
75
- return ctx.error(DiagnosticCode.Type_0_is_not_assignable_to_type_1, expr.range, "Optional<T>", typeHint.toString());
76
- }
77
- return new TirLitUndefExpr(typeHint, expr.range);
78
- }
79
- export function _compileLitteralNamedObjExpr(ctx, expr, typeHint) {
80
- let structType = undefined;
81
- if (isTirType(typeHint)) {
82
- if (!isStructOrStructAlias(typeHint)) {
83
- return ctx.error(DiagnosticCode.Named_object_litteral_is_not_assignable_to_0, expr.range, typeHint.toString());
84
- }
85
- structType = getStructType(typeHint);
86
- }
87
- else
88
- typeHint = undefined;
89
- const constructorName = expr.name.text;
90
- const inferredStructType = getStructType(ctx.scope.inferStructTypeFromConstructorName(constructorName)?.structType);
91
- if (!inferredStructType) {
92
- return ctx.error(DiagnosticCode._0_is_not_defined, expr.name.range, constructorName);
93
- }
94
- if (typeHint) {
95
- if (!canAssignTo(inferredStructType, typeHint)) {
96
- return ctx.error(DiagnosticCode.Named_object_litteral_is_not_assignable_to_0, expr.range, typeHint.toString());
97
- }
98
- }
99
- structType = inferredStructType;
100
- if (!isTirType(typeHint))
101
- typeHint = structType ?? inferredStructType;
102
- const fieldValues = __commonCompileStructFieldValues(ctx, expr, typeHint, structType, structType?.constructors.findIndex(c => c.name === constructorName) ?? -1);
103
- if (!Array.isArray(fieldValues))
104
- return undefined;
105
- typeHint = getUnaliased(typeHint);
106
- // TirDataStructType | TirSoPStructType
107
- if (!(typeHint instanceof TirDataStructType
108
- || typeHint instanceof TirSoPStructType)) {
109
- return ctx.error(DiagnosticCode.Named_object_litteral_is_not_assignable_to_0, expr.range, typeHint.toString());
110
- }
111
- return new TirLitNamedObjExpr(expr.name, expr.fieldNames, fieldValues, typeHint, expr.range);
112
- }
113
- export function _compileLitteralObjExpr(ctx, expr, typeHint) {
114
- if (!isTirType(typeHint)) {
115
- return ctx.error(DiagnosticCode.Unnamed_object_litteral_must_be_explicitly_cast_to_a_type, expr.range);
116
- }
117
- if (!isStructOrStructAlias(typeHint)) {
118
- return ctx.error(DiagnosticCode.Unnamed_object_litteral_is_not_assignable_to_0, expr.range, typeHint.toString());
119
- }
120
- const structType = getStructType(typeHint);
121
- if (structType.constructors.length !== 1) {
122
- return ctx.error(DiagnosticCode.Unnamed_object_litteral_is_not_assignable_to_0_An_explicit_constrctor_must_be_used, expr.range, typeHint.toString());
123
- }
124
- const fieldValues = __commonCompileStructFieldValues(ctx, expr, typeHint, structType, 0);
125
- if (!Array.isArray(fieldValues))
126
- return undefined;
127
- typeHint = getUnaliased(typeHint);
128
- // TirDataStructType | TirSoPStructType
129
- if (!(typeHint instanceof TirDataStructType
130
- || typeHint instanceof TirSoPStructType)) {
131
- return ctx.error(DiagnosticCode.Named_object_litteral_is_not_assignable_to_0, expr.range, typeHint.toString());
132
- }
133
- return new TirLitObjExpr(expr.fieldNames, fieldValues, typeHint, expr.range);
134
- }
135
- export function __commonCompileStructFieldValues(ctx, expr, realType, // possibly aliased
136
- structType, constructorIndex) {
137
- if (constructorIndex < 0 || constructorIndex >= structType.constructors.length)
138
- throw new Error("unreachable::__commonCompileStructFieldValues");
139
- const constructorDef = structType.constructors[constructorIndex];
140
- for (const exprField of expr.fieldNames) {
141
- if (!constructorDef.fields.some(realField => realField.name === exprField.text)) {
142
- return ctx.error(DiagnosticCode.Field_0_is_not_part_of_the_1_constructor_for_2_struct, exprField.range, exprField.text, constructorDef.name, structType);
143
- }
144
- }
145
- if (expr.fieldNames.length !== constructorDef.fields.length) {
146
- return ctx.error(DiagnosticCode.Unnamed_object_litteral_is_not_assignable_to_0_The_fields_do_not_match_the_the_type_definition, expr.range, realType.toString());
147
- }
148
- const fieldValues = new Array(constructorDef.fields.length);
149
- for (let i = 0; i < constructorDef.fields.length; i++) {
150
- const fieldDef = constructorDef.fields[i];
151
- const initAstExprIdx = expr.fieldNames.findIndex(name => name.text === fieldDef.name);
152
- if (initAstExprIdx === -1) {
153
- return ctx.error(DiagnosticCode.Field_0_is_missing_but_required_by_the_1_constructor_of_the_2_struct, expr.range, fieldDef.name, constructorDef.name, structType);
154
- }
155
- const initExpr = _compileExpr(ctx, expr.values[initAstExprIdx], fieldDef.type);
156
- if (!initExpr)
157
- return undefined;
158
- if (!canAssignTo(initExpr.type, fieldDef.type)) {
159
- return ctx.error(DiagnosticCode.Type_0_is_not_assignable_to_type_1, expr.values[initAstExprIdx].range, initExpr.type, fieldDef.type);
160
- }
161
- fieldValues[i] = initExpr;
162
- }
163
- return fieldValues;
164
- }
165
- export function _compileLitteralArrayExpr(ctx, expr, typeHint) {
166
- let listType = typeHint;
167
- let elemsType = undefined;
168
- if (listType) {
169
- if (!canAssignToList(listType))
170
- return ctx.error(DiagnosticCode.Type_0_is_not_assignable_to_type_1, expr.range, "List<T>", listType.toString());
171
- else
172
- elemsType = getListTypeArg(listType);
173
- }
174
- if (expr.elems.length === 0) {
175
- if (!listType)
176
- return ctx.error(DiagnosticCode.Empty_array_litteral_must_be_explicitly_cast_to_a_type, expr.range);
177
- return new TirLitArrExpr([], listType, expr.range);
178
- }
179
- const fstCompiledExpr = _compileExpr(ctx, expr.elems[0], elemsType);
180
- if (!fstCompiledExpr)
181
- return undefined;
182
- if (!elemsType)
183
- elemsType = fstCompiledExpr.type;
184
- else if (!canAssignTo(fstCompiledExpr.type, elemsType)) {
185
- return ctx.error(DiagnosticCode.Type_0_is_not_assignable_to_type_1, expr.elems[0].range, fstCompiledExpr.type, elemsType);
186
- }
187
- if (!listType)
188
- listType = new TirListT(elemsType);
189
- const restElems = expr.elems.slice(1);
190
- const compiledRestElems = restElems.map(elem => {
191
- const compiled = _compileExpr(ctx, elem, elemsType);
192
- if (!compiled)
193
- return undefined;
194
- if (!canAssignTo(compiled.type, elemsType)) {
195
- return ctx.error(DiagnosticCode.Type_0_is_not_assignable_to_type_1, elem.range, compiled.type, elemsType);
196
- }
197
- return compiled;
198
- });
199
- if (compiledRestElems.some(x => !isTirExpr(x)))
200
- return undefined;
201
- return new TirLitArrExpr([fstCompiledExpr, ...compiledRestElems], listType, expr.range);
202
- }
@@ -1,5 +0,0 @@
1
- import { NonNullExpr } from "../../../../ast/nodes/expr/unary/NonNullExpr.js";
2
- import { TirExpr } from "../../../tir/expressions/TirExpr.js";
3
- import { TirType } from "../../../tir/types/TirType.js";
4
- import { AstCompilationCtx } from "../../AstCompilationCtx.js";
5
- export declare function _compileNonNullExpr(ctx: AstCompilationCtx, expr: NonNullExpr, typeHint: TirType | undefined): TirExpr | undefined;