@jhlagado/azm 0.2.1 → 0.2.2

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 (313) hide show
  1. package/README.md +16 -9
  2. package/dist/src/api-compile.d.ts +0 -2
  3. package/dist/src/api-compile.js +1 -8
  4. package/dist/src/assembly/address-planning.js +19 -1
  5. package/dist/src/cli/parse-args.d.ts +0 -1
  6. package/dist/src/cli/parse-args.js +0 -7
  7. package/dist/src/cli/write-artifacts.js +0 -11
  8. package/dist/src/core/compile.js +192 -9
  9. package/dist/src/expansion/op-expansion.js +1 -0
  10. package/dist/src/model/expression.d.ts +4 -0
  11. package/dist/src/model/source-item.d.ts +5 -0
  12. package/dist/src/outputs/index.js +0 -2
  13. package/dist/src/outputs/types.d.ts +3 -16
  14. package/dist/src/outputs/write-asm80.js +84 -0
  15. package/dist/src/semantics/expression-evaluation.d.ts +7 -3
  16. package/dist/src/semantics/expression-evaluation.js +57 -0
  17. package/dist/src/syntax/directive-aliases.js +9 -10
  18. package/dist/src/syntax/parse-expression.js +34 -9
  19. package/dist/src/syntax/parse-line.js +87 -44
  20. package/dist/src/tooling/case-style.js +3 -0
  21. package/docs/reference/cli.md +6 -4
  22. package/docs/reference/tooling-api.md +1 -4
  23. package/package.json +2 -6
  24. package/dist/legacy-root-azm/src/analysis.d.ts +0 -11
  25. package/dist/legacy-root-azm/src/analysis.js +0 -41
  26. package/dist/legacy-root-azm/src/compile.d.ts +0 -10
  27. package/dist/legacy-root-azm/src/compile.js +0 -186
  28. package/dist/legacy-root-azm/src/compileShared.d.ts +0 -3
  29. package/dist/legacy-root-azm/src/compileShared.js +0 -7
  30. package/dist/legacy-root-azm/src/diagnosticTypes.d.ts +0 -77
  31. package/dist/legacy-root-azm/src/diagnosticTypes.js +0 -53
  32. package/dist/legacy-root-azm/src/formats/index.d.ts +0 -7
  33. package/dist/legacy-root-azm/src/formats/index.js +0 -17
  34. package/dist/legacy-root-azm/src/formats/range.d.ts +0 -17
  35. package/dist/legacy-root-azm/src/formats/range.js +0 -45
  36. package/dist/legacy-root-azm/src/formats/types.d.ts +0 -283
  37. package/dist/legacy-root-azm/src/formats/types.js +0 -1
  38. package/dist/legacy-root-azm/src/formats/writeAsm80.d.ts +0 -6
  39. package/dist/legacy-root-azm/src/formats/writeAsm80.js +0 -86
  40. package/dist/legacy-root-azm/src/formats/writeBin.d.ts +0 -7
  41. package/dist/legacy-root-azm/src/formats/writeBin.js +0 -23
  42. package/dist/legacy-root-azm/src/formats/writeD8m.d.ts +0 -9
  43. package/dist/legacy-root-azm/src/formats/writeD8m.js +0 -245
  44. package/dist/legacy-root-azm/src/formats/writeHex.d.ts +0 -8
  45. package/dist/legacy-root-azm/src/formats/writeHex.js +0 -38
  46. package/dist/legacy-root-azm/src/formats/writeListing.d.ts +0 -8
  47. package/dist/legacy-root-azm/src/formats/writeListing.js +0 -83
  48. package/dist/legacy-root-azm/src/frontend/asm80/asmLine.d.ts +0 -39
  49. package/dist/legacy-root-azm/src/frontend/asm80/asmLine.js +0 -89
  50. package/dist/legacy-root-azm/src/frontend/asm80/parseAsmRawValues.d.ts +0 -4
  51. package/dist/legacy-root-azm/src/frontend/asm80/parseAsmRawValues.js +0 -94
  52. package/dist/legacy-root-azm/src/frontend/asm80/quoteScan.d.ts +0 -10
  53. package/dist/legacy-root-azm/src/frontend/asm80/quoteScan.js +0 -25
  54. package/dist/legacy-root-azm/src/frontend/ast.d.ts +0 -376
  55. package/dist/legacy-root-azm/src/frontend/ast.js +0 -1
  56. package/dist/legacy-root-azm/src/frontend/directiveAliases.d.ts +0 -14
  57. package/dist/legacy-root-azm/src/frontend/directiveAliases.js +0 -189
  58. package/dist/legacy-root-azm/src/frontend/grammarData.d.ts +0 -14
  59. package/dist/legacy-root-azm/src/frontend/grammarData.js +0 -65
  60. package/dist/legacy-root-azm/src/frontend/immExprUtils.d.ts +0 -2
  61. package/dist/legacy-root-azm/src/frontend/immExprUtils.js +0 -12
  62. package/dist/legacy-root-azm/src/frontend/parseAsmFlatDirectiveLine.d.ts +0 -17
  63. package/dist/legacy-root-azm/src/frontend/parseAsmFlatDirectiveLine.js +0 -187
  64. package/dist/legacy-root-azm/src/frontend/parseAsmInstruction.d.ts +0 -3
  65. package/dist/legacy-root-azm/src/frontend/parseAsmInstruction.js +0 -73
  66. package/dist/legacy-root-azm/src/frontend/parseAsmStatements.d.ts +0 -6
  67. package/dist/legacy-root-azm/src/frontend/parseAsmStatements.js +0 -16
  68. package/dist/legacy-root-azm/src/frontend/parseAsmStream.d.ts +0 -10
  69. package/dist/legacy-root-azm/src/frontend/parseAsmStream.js +0 -33
  70. package/dist/legacy-root-azm/src/frontend/parseAsmTopLevel.d.ts +0 -18
  71. package/dist/legacy-root-azm/src/frontend/parseAsmTopLevel.js +0 -34
  72. package/dist/legacy-root-azm/src/frontend/parseDiagnostics.d.ts +0 -9
  73. package/dist/legacy-root-azm/src/frontend/parseDiagnostics.js +0 -16
  74. package/dist/legacy-root-azm/src/frontend/parseEnum.d.ts +0 -12
  75. package/dist/legacy-root-azm/src/frontend/parseEnum.js +0 -70
  76. package/dist/legacy-root-azm/src/frontend/parseImm.d.ts +0 -10
  77. package/dist/legacy-root-azm/src/frontend/parseImm.js +0 -397
  78. package/dist/legacy-root-azm/src/frontend/parseLogicalLines.d.ts +0 -11
  79. package/dist/legacy-root-azm/src/frontend/parseLogicalLines.js +0 -94
  80. package/dist/legacy-root-azm/src/frontend/parseOp.d.ts +0 -25
  81. package/dist/legacy-root-azm/src/frontend/parseOp.js +0 -120
  82. package/dist/legacy-root-azm/src/frontend/parseOpHeader.d.ts +0 -20
  83. package/dist/legacy-root-azm/src/frontend/parseOpHeader.js +0 -32
  84. package/dist/legacy-root-azm/src/frontend/parseOperands.d.ts +0 -4
  85. package/dist/legacy-root-azm/src/frontend/parseOperands.js +0 -290
  86. package/dist/legacy-root-azm/src/frontend/parseParams.d.ts +0 -6
  87. package/dist/legacy-root-azm/src/frontend/parseParams.js +0 -62
  88. package/dist/legacy-root-azm/src/frontend/parseParserRecovery.d.ts +0 -12
  89. package/dist/legacy-root-azm/src/frontend/parseParserRecovery.js +0 -17
  90. package/dist/legacy-root-azm/src/frontend/parseParserShared.d.ts +0 -2
  91. package/dist/legacy-root-azm/src/frontend/parseParserShared.js +0 -8
  92. package/dist/legacy-root-azm/src/frontend/parseRawDataDirectiveStart.d.ts +0 -1
  93. package/dist/legacy-root-azm/src/frontend/parseRawDataDirectiveStart.js +0 -3
  94. package/dist/legacy-root-azm/src/frontend/parseRawDataDirectives.d.ts +0 -7
  95. package/dist/legacy-root-azm/src/frontend/parseRawDataDirectives.js +0 -142
  96. package/dist/legacy-root-azm/src/frontend/parseRecordFieldDecl.d.ts +0 -34
  97. package/dist/legacy-root-azm/src/frontend/parseRecordFieldDecl.js +0 -177
  98. package/dist/legacy-root-azm/src/frontend/parseSourceItemDispatch.d.ts +0 -46
  99. package/dist/legacy-root-azm/src/frontend/parseSourceItemDispatch.js +0 -53
  100. package/dist/legacy-root-azm/src/frontend/parseSourceItemTable.d.ts +0 -16
  101. package/dist/legacy-root-azm/src/frontend/parseSourceItemTable.js +0 -68
  102. package/dist/legacy-root-azm/src/frontend/parseTopLevelCommon.d.ts +0 -11
  103. package/dist/legacy-root-azm/src/frontend/parseTopLevelCommon.js +0 -50
  104. package/dist/legacy-root-azm/src/frontend/parseTypes.d.ts +0 -24
  105. package/dist/legacy-root-azm/src/frontend/parseTypes.js +0 -77
  106. package/dist/legacy-root-azm/src/frontend/parser.d.ts +0 -11
  107. package/dist/legacy-root-azm/src/frontend/parser.js +0 -88
  108. package/dist/legacy-root-azm/src/frontend/source.d.ts +0 -28
  109. package/dist/legacy-root-azm/src/frontend/source.js +0 -58
  110. package/dist/legacy-root-azm/src/frontend/sourceExtensions.d.ts +0 -2
  111. package/dist/legacy-root-azm/src/frontend/sourceExtensions.js +0 -6
  112. package/dist/legacy-root-azm/src/lintCaseStyle.d.ts +0 -4
  113. package/dist/legacy-root-azm/src/lintCaseStyle.js +0 -129
  114. package/dist/legacy-root-azm/src/lowering/asmDirectiveLowering.d.ts +0 -4
  115. package/dist/legacy-root-azm/src/lowering/asmDirectiveLowering.js +0 -229
  116. package/dist/legacy-root-azm/src/lowering/asmDirectiveTraversal.d.ts +0 -47
  117. package/dist/legacy-root-azm/src/lowering/asmDirectiveTraversal.js +0 -52
  118. package/dist/legacy-root-azm/src/lowering/asmEquResolution.d.ts +0 -8
  119. package/dist/legacy-root-azm/src/lowering/asmEquResolution.js +0 -69
  120. package/dist/legacy-root-azm/src/lowering/asmInstructionLdHelpers.d.ts +0 -15
  121. package/dist/legacy-root-azm/src/lowering/asmInstructionLdHelpers.js +0 -102
  122. package/dist/legacy-root-azm/src/lowering/asmInstructionLowering.d.ts +0 -5
  123. package/dist/legacy-root-azm/src/lowering/asmInstructionLowering.js +0 -54
  124. package/dist/legacy-root-azm/src/lowering/asmInstructionStream.d.ts +0 -46
  125. package/dist/legacy-root-azm/src/lowering/asmInstructionStream.js +0 -51
  126. package/dist/legacy-root-azm/src/lowering/asmLoweringBranchCall.d.ts +0 -43
  127. package/dist/legacy-root-azm/src/lowering/asmLoweringBranchCall.js +0 -254
  128. package/dist/legacy-root-azm/src/lowering/asmLoweringHost.d.ts +0 -23
  129. package/dist/legacy-root-azm/src/lowering/asmLoweringHost.js +0 -1
  130. package/dist/legacy-root-azm/src/lowering/asmLoweringLd.d.ts +0 -28
  131. package/dist/legacy-root-azm/src/lowering/asmLoweringLd.js +0 -144
  132. package/dist/legacy-root-azm/src/lowering/asmRangeLowering.d.ts +0 -17
  133. package/dist/legacy-root-azm/src/lowering/asmRangeLowering.js +0 -39
  134. package/dist/legacy-root-azm/src/lowering/asmRawDataLowering.d.ts +0 -16
  135. package/dist/legacy-root-azm/src/lowering/asmRawDataLowering.js +0 -209
  136. package/dist/legacy-root-azm/src/lowering/asmSourceEmitter.d.ts +0 -4
  137. package/dist/legacy-root-azm/src/lowering/asmSourceEmitter.js +0 -9
  138. package/dist/legacy-root-azm/src/lowering/asmSourceInstructionLowering.d.ts +0 -4
  139. package/dist/legacy-root-azm/src/lowering/asmSourceInstructionLowering.js +0 -14
  140. package/dist/legacy-root-azm/src/lowering/asmUtils.d.ts +0 -13
  141. package/dist/legacy-root-azm/src/lowering/asmUtils.js +0 -105
  142. package/dist/legacy-root-azm/src/lowering/assemblerFlowSetup.d.ts +0 -54
  143. package/dist/legacy-root-azm/src/lowering/assemblerFlowSetup.js +0 -128
  144. package/dist/legacy-root-azm/src/lowering/assemblerLoweringContext.d.ts +0 -151
  145. package/dist/legacy-root-azm/src/lowering/assemblerLoweringContext.js +0 -16
  146. package/dist/legacy-root-azm/src/lowering/assemblerLoweringContextSplit.d.ts +0 -7
  147. package/dist/legacy-root-azm/src/lowering/assemblerLoweringContextSplit.js +0 -75
  148. package/dist/legacy-root-azm/src/lowering/assemblerLoweringPhases.d.ts +0 -66
  149. package/dist/legacy-root-azm/src/lowering/assemblerLoweringPhases.js +0 -166
  150. package/dist/legacy-root-azm/src/lowering/bytePlacement.d.ts +0 -7
  151. package/dist/legacy-root-azm/src/lowering/bytePlacement.js +0 -37
  152. package/dist/legacy-root-azm/src/lowering/capabilities.d.ts +0 -67
  153. package/dist/legacy-root-azm/src/lowering/capabilities.js +0 -1
  154. package/dist/legacy-root-azm/src/lowering/eaResolution.d.ts +0 -58
  155. package/dist/legacy-root-azm/src/lowering/eaResolution.js +0 -159
  156. package/dist/legacy-root-azm/src/lowering/emissionCore.d.ts +0 -17
  157. package/dist/legacy-root-azm/src/lowering/emissionCore.js +0 -21
  158. package/dist/legacy-root-azm/src/lowering/emit.d.ts +0 -17
  159. package/dist/legacy-root-azm/src/lowering/emit.js +0 -46
  160. package/dist/legacy-root-azm/src/lowering/emitContextBuilder.d.ts +0 -63
  161. package/dist/legacy-root-azm/src/lowering/emitContextBuilder.js +0 -41
  162. package/dist/legacy-root-azm/src/lowering/emitFinalization.d.ts +0 -61
  163. package/dist/legacy-root-azm/src/lowering/emitFinalization.js +0 -66
  164. package/dist/legacy-root-azm/src/lowering/emitFinalizationSetup.d.ts +0 -19
  165. package/dist/legacy-root-azm/src/lowering/emitFinalizationSetup.js +0 -26
  166. package/dist/legacy-root-azm/src/lowering/emitPhase1BuildProgramLoweringContext.d.ts +0 -7
  167. package/dist/legacy-root-azm/src/lowering/emitPhase1BuildProgramLoweringContext.js +0 -119
  168. package/dist/legacy-root-azm/src/lowering/emitPhase1Helpers.d.ts +0 -4
  169. package/dist/legacy-root-azm/src/lowering/emitPhase1Helpers.js +0 -12
  170. package/dist/legacy-root-azm/src/lowering/emitPhase1Types.d.ts +0 -21
  171. package/dist/legacy-root-azm/src/lowering/emitPhase1Types.js +0 -1
  172. package/dist/legacy-root-azm/src/lowering/emitPhase1WirePipeline.d.ts +0 -70
  173. package/dist/legacy-root-azm/src/lowering/emitPhase1WirePipeline.js +0 -203
  174. package/dist/legacy-root-azm/src/lowering/emitPhase1Workspace.d.ts +0 -82
  175. package/dist/legacy-root-azm/src/lowering/emitPhase1Workspace.js +0 -55
  176. package/dist/legacy-root-azm/src/lowering/emitPipeline.d.ts +0 -121
  177. package/dist/legacy-root-azm/src/lowering/emitPipeline.js +0 -57
  178. package/dist/legacy-root-azm/src/lowering/emitProgramContext.d.ts +0 -39
  179. package/dist/legacy-root-azm/src/lowering/emitProgramContext.js +0 -29
  180. package/dist/legacy-root-azm/src/lowering/emitState.d.ts +0 -90
  181. package/dist/legacy-root-azm/src/lowering/emitState.js +0 -124
  182. package/dist/legacy-root-azm/src/lowering/fixupBaseResolution.d.ts +0 -7
  183. package/dist/legacy-root-azm/src/lowering/fixupBaseResolution.js +0 -23
  184. package/dist/legacy-root-azm/src/lowering/fixupEmission.d.ts +0 -64
  185. package/dist/legacy-root-azm/src/lowering/fixupEmission.js +0 -199
  186. package/dist/legacy-root-azm/src/lowering/immMath.d.ts +0 -2
  187. package/dist/legacy-root-azm/src/lowering/immMath.js +0 -34
  188. package/dist/legacy-root-azm/src/lowering/inputAssets.d.ts +0 -7
  189. package/dist/legacy-root-azm/src/lowering/inputAssets.js +0 -106
  190. package/dist/legacy-root-azm/src/lowering/ldEncoding.d.ts +0 -15
  191. package/dist/legacy-root-azm/src/lowering/ldEncoding.js +0 -12
  192. package/dist/legacy-root-azm/src/lowering/ldEncodingRegMemHelpers.d.ts +0 -5
  193. package/dist/legacy-root-azm/src/lowering/ldEncodingRegMemHelpers.js +0 -124
  194. package/dist/legacy-root-azm/src/lowering/ldFormSelection.d.ts +0 -26
  195. package/dist/legacy-root-azm/src/lowering/ldFormSelection.js +0 -92
  196. package/dist/legacy-root-azm/src/lowering/ldLowering.d.ts +0 -7
  197. package/dist/legacy-root-azm/src/lowering/ldLowering.js +0 -13
  198. package/dist/legacy-root-azm/src/lowering/loweredAsmByteEmission.d.ts +0 -23
  199. package/dist/legacy-root-azm/src/lowering/loweredAsmByteEmission.js +0 -185
  200. package/dist/legacy-root-azm/src/lowering/loweredAsmPlacement.d.ts +0 -13
  201. package/dist/legacy-root-azm/src/lowering/loweredAsmPlacement.js +0 -86
  202. package/dist/legacy-root-azm/src/lowering/loweredAsmStreamRecording.d.ts +0 -27
  203. package/dist/legacy-root-azm/src/lowering/loweredAsmStreamRecording.js +0 -215
  204. package/dist/legacy-root-azm/src/lowering/loweredAsmTypes.d.ts +0 -202
  205. package/dist/legacy-root-azm/src/lowering/loweredAsmTypes.js +0 -1
  206. package/dist/legacy-root-azm/src/lowering/loweredFormat.d.ts +0 -3
  207. package/dist/legacy-root-azm/src/lowering/loweredFormat.js +0 -26
  208. package/dist/legacy-root-azm/src/lowering/loweredItemSize.d.ts +0 -4
  209. package/dist/legacy-root-azm/src/lowering/loweredItemSize.js +0 -17
  210. package/dist/legacy-root-azm/src/lowering/loweringDiagnostics.d.ts +0 -9
  211. package/dist/legacy-root-azm/src/lowering/loweringDiagnostics.js +0 -55
  212. package/dist/legacy-root-azm/src/lowering/loweringTypes.d.ts +0 -27
  213. package/dist/legacy-root-azm/src/lowering/loweringTypes.js +0 -1
  214. package/dist/legacy-root-azm/src/lowering/opCandidateRegistry.d.ts +0 -9
  215. package/dist/legacy-root-azm/src/lowering/opCandidateRegistry.js +0 -9
  216. package/dist/legacy-root-azm/src/lowering/opExpansionExecution.d.ts +0 -15
  217. package/dist/legacy-root-azm/src/lowering/opExpansionExecution.js +0 -45
  218. package/dist/legacy-root-azm/src/lowering/opExpansionOrchestration.d.ts +0 -15
  219. package/dist/legacy-root-azm/src/lowering/opExpansionOrchestration.js +0 -88
  220. package/dist/legacy-root-azm/src/lowering/opExpansionStream.d.ts +0 -12
  221. package/dist/legacy-root-azm/src/lowering/opExpansionStream.js +0 -176
  222. package/dist/legacy-root-azm/src/lowering/opMatching.d.ts +0 -52
  223. package/dist/legacy-root-azm/src/lowering/opMatching.js +0 -355
  224. package/dist/legacy-root-azm/src/lowering/opSubstitution.d.ts +0 -13
  225. package/dist/legacy-root-azm/src/lowering/opSubstitution.js +0 -175
  226. package/dist/legacy-root-azm/src/lowering/prescanTypes.d.ts +0 -7
  227. package/dist/legacy-root-azm/src/lowering/prescanTypes.js +0 -1
  228. package/dist/legacy-root-azm/src/lowering/programLowering.d.ts +0 -144
  229. package/dist/legacy-root-azm/src/lowering/programLowering.js +0 -2
  230. package/dist/legacy-root-azm/src/lowering/programLoweringDeclarations.d.ts +0 -5
  231. package/dist/legacy-root-azm/src/lowering/programLoweringDeclarations.js +0 -5
  232. package/dist/legacy-root-azm/src/lowering/programLoweringFinalize.d.ts +0 -18
  233. package/dist/legacy-root-azm/src/lowering/programLoweringFinalize.js +0 -115
  234. package/dist/legacy-root-azm/src/lowering/programLoweringTraversal.d.ts +0 -2
  235. package/dist/legacy-root-azm/src/lowering/programLoweringTraversal.js +0 -93
  236. package/dist/legacy-root-azm/src/lowering/programPrescan.d.ts +0 -3
  237. package/dist/legacy-root-azm/src/lowering/programPrescan.js +0 -37
  238. package/dist/legacy-root-azm/src/lowering/traceFormat.d.ts +0 -13
  239. package/dist/legacy-root-azm/src/lowering/traceFormat.js +0 -211
  240. package/dist/legacy-root-azm/src/packageInfo.d.ts +0 -1
  241. package/dist/legacy-root-azm/src/packageInfo.js +0 -15
  242. package/dist/legacy-root-azm/src/pathCompare.d.ts +0 -3
  243. package/dist/legacy-root-azm/src/pathCompare.js +0 -26
  244. package/dist/legacy-root-azm/src/pipeline.d.ts +0 -91
  245. package/dist/legacy-root-azm/src/pipeline.js +0 -1
  246. package/dist/legacy-root-azm/src/registerCare/analyze.d.ts +0 -24
  247. package/dist/legacy-root-azm/src/registerCare/analyze.js +0 -327
  248. package/dist/legacy-root-azm/src/registerCare/annotate.d.ts +0 -11
  249. package/dist/legacy-root-azm/src/registerCare/annotate.js +0 -76
  250. package/dist/legacy-root-azm/src/registerCare/boundaryHints.d.ts +0 -2
  251. package/dist/legacy-root-azm/src/registerCare/boundaryHints.js +0 -10
  252. package/dist/legacy-root-azm/src/registerCare/carriers.d.ts +0 -4
  253. package/dist/legacy-root-azm/src/registerCare/carriers.js +0 -78
  254. package/dist/legacy-root-azm/src/registerCare/controlFlow.d.ts +0 -5
  255. package/dist/legacy-root-azm/src/registerCare/controlFlow.js +0 -35
  256. package/dist/legacy-root-azm/src/registerCare/fix.d.ts +0 -11
  257. package/dist/legacy-root-azm/src/registerCare/fix.js +0 -119
  258. package/dist/legacy-root-azm/src/registerCare/liveness.d.ts +0 -7
  259. package/dist/legacy-root-azm/src/registerCare/liveness.js +0 -227
  260. package/dist/legacy-root-azm/src/registerCare/profiles.d.ts +0 -11
  261. package/dist/legacy-root-azm/src/registerCare/profiles.js +0 -45
  262. package/dist/legacy-root-azm/src/registerCare/programModel.d.ts +0 -3
  263. package/dist/legacy-root-azm/src/registerCare/programModel.js +0 -181
  264. package/dist/legacy-root-azm/src/registerCare/report.d.ts +0 -5
  265. package/dist/legacy-root-azm/src/registerCare/report.js +0 -139
  266. package/dist/legacy-root-azm/src/registerCare/smartComments.d.ts +0 -5
  267. package/dist/legacy-root-azm/src/registerCare/smartComments.js +0 -247
  268. package/dist/legacy-root-azm/src/registerCare/sourceText.d.ts +0 -8
  269. package/dist/legacy-root-azm/src/registerCare/sourceText.js +0 -15
  270. package/dist/legacy-root-azm/src/registerCare/summary.d.ts +0 -3
  271. package/dist/legacy-root-azm/src/registerCare/summary.js +0 -492
  272. package/dist/legacy-root-azm/src/registerCare/types.d.ts +0 -154
  273. package/dist/legacy-root-azm/src/registerCare/types.js +0 -1
  274. package/dist/legacy-root-azm/src/semantics/declVisitor.d.ts +0 -5
  275. package/dist/legacy-root-azm/src/semantics/declVisitor.js +0 -11
  276. package/dist/legacy-root-azm/src/semantics/env.d.ts +0 -28
  277. package/dist/legacy-root-azm/src/semantics/env.js +0 -432
  278. package/dist/legacy-root-azm/src/semantics/layout.d.ts +0 -21
  279. package/dist/legacy-root-azm/src/semantics/layout.js +0 -226
  280. package/dist/legacy-root-azm/src/semantics/layoutCastFold.d.ts +0 -22
  281. package/dist/legacy-root-azm/src/semantics/layoutCastFold.js +0 -118
  282. package/dist/legacy-root-azm/src/semantics/semanticsDiagnostics.d.ts +0 -2
  283. package/dist/legacy-root-azm/src/semantics/semanticsDiagnostics.js +0 -4
  284. package/dist/legacy-root-azm/src/semantics/typeQueries.d.ts +0 -31
  285. package/dist/legacy-root-azm/src/semantics/typeQueries.js +0 -124
  286. package/dist/legacy-root-azm/src/sourceIncludeExpansion.d.ts +0 -17
  287. package/dist/legacy-root-azm/src/sourceIncludeExpansion.js +0 -124
  288. package/dist/legacy-root-azm/src/sourceIncludePaths.d.ts +0 -1
  289. package/dist/legacy-root-azm/src/sourceIncludePaths.js +0 -12
  290. package/dist/legacy-root-azm/src/sourceLoader.d.ts +0 -15
  291. package/dist/legacy-root-azm/src/sourceLoader.js +0 -118
  292. package/dist/legacy-root-azm/src/z80/effects.d.ts +0 -3
  293. package/dist/legacy-root-azm/src/z80/effects.js +0 -516
  294. package/dist/legacy-root-azm/src/z80/encode.d.ts +0 -10
  295. package/dist/legacy-root-azm/src/z80/encode.js +0 -412
  296. package/dist/legacy-root-azm/src/z80/encodeAlu.d.ts +0 -7
  297. package/dist/legacy-root-azm/src/z80/encodeAlu.js +0 -219
  298. package/dist/legacy-root-azm/src/z80/encodeBitOps.d.ts +0 -7
  299. package/dist/legacy-root-azm/src/z80/encodeBitOps.js +0 -123
  300. package/dist/legacy-root-azm/src/z80/encodeContext.d.ts +0 -29
  301. package/dist/legacy-root-azm/src/z80/encodeContext.js +0 -1
  302. package/dist/legacy-root-azm/src/z80/encodeControl.d.ts +0 -26
  303. package/dist/legacy-root-azm/src/z80/encodeControl.js +0 -180
  304. package/dist/legacy-root-azm/src/z80/encodeCoreOps.d.ts +0 -7
  305. package/dist/legacy-root-azm/src/z80/encodeCoreOps.js +0 -131
  306. package/dist/legacy-root-azm/src/z80/encodeIo.d.ts +0 -9
  307. package/dist/legacy-root-azm/src/z80/encodeIo.js +0 -128
  308. package/dist/legacy-root-azm/src/z80/encodeLd.d.ts +0 -13
  309. package/dist/legacy-root-azm/src/z80/encodeLd.js +0 -273
  310. package/dist/legacy-root-azm/src/z80/encoderRegistry.d.ts +0 -13
  311. package/dist/legacy-root-azm/src/z80/encoderRegistry.js +0 -169
  312. package/dist/src/outputs/write-listing.d.ts +0 -2
  313. package/dist/src/outputs/write-listing.js +0 -79
@@ -1,139 +0,0 @@
1
- function list(units) {
2
- return units.length === 0 ? '-' : units.join(',');
3
- }
4
- const FLAG_UNITS = new Set(['carry', 'zero', 'sign', 'parity', 'halfCarry']);
5
- const CONTRACT_CARRIER_PAIRS = [
6
- { label: 'BC', hi: 'B', lo: 'C' },
7
- { label: 'DE', hi: 'D', lo: 'E' },
8
- { label: 'HL', hi: 'H', lo: 'L' },
9
- { label: 'IX', hi: 'IXH', lo: 'IXL' },
10
- { label: 'IY', hi: 'IYH', lo: 'IYL' },
11
- { label: 'SP', hi: 'SPH', lo: 'SPL' },
12
- ];
13
- export function contractCarrierList(units) {
14
- const unique = [...new Set(units)];
15
- const unitSet = new Set(unique);
16
- const emitted = new Set();
17
- const parts = [];
18
- for (const unit of unique) {
19
- if (emitted.has(unit))
20
- continue;
21
- const pair = CONTRACT_CARRIER_PAIRS.find((candidate) => (candidate.hi === unit || candidate.lo === unit) &&
22
- unitSet.has(candidate.hi) &&
23
- unitSet.has(candidate.lo));
24
- if (pair) {
25
- parts.push(pair.label);
26
- emitted.add(pair.hi);
27
- emitted.add(pair.lo);
28
- continue;
29
- }
30
- parts.push(unit);
31
- emitted.add(unit);
32
- }
33
- return parts.length === 0 ? '-' : parts.join(',');
34
- }
35
- function relationOutputUnits(relations) {
36
- return relations.flatMap((rel) => rel.out);
37
- }
38
- function contractEntries(summary) {
39
- const out = [];
40
- if (summary.mayRead.length > 0)
41
- out.push({ keyword: 'in', carriers: contractCarrierList(summary.mayRead) });
42
- const outputUnits = relationOutputUnits(summary.valueRelations);
43
- if (outputUnits.length > 0)
44
- out.push({ keyword: 'out', carriers: contractCarrierList(outputUnits) });
45
- const relationOut = relationOutUnits(summary);
46
- const clobbers = summary.mayWrite.filter((unit) => !relationOut.has(unit));
47
- if (clobbers.length > 0)
48
- out.push({ keyword: 'clobbers', carriers: contractCarrierList(clobbers) });
49
- return out;
50
- }
51
- function sourceContractEntries(summary) {
52
- const out = [];
53
- if (summary.mayRead.length > 0)
54
- out.push({ keyword: 'in', carriers: contractCarrierList(summary.mayRead) });
55
- const relationOut = relationOutUnits(summary);
56
- const candidates = (summary.outputCandidates ?? []).filter((unit) => !relationOut.has(unit));
57
- if (candidates.length > 0)
58
- out.push({ keyword: 'maybe-out', carriers: contractCarrierList(candidates) });
59
- const outputUnits = relationOutputUnits(summary.valueRelations);
60
- if (outputUnits.length > 0)
61
- out.push({ keyword: 'out', carriers: contractCarrierList(outputUnits) });
62
- const clobbers = summary.mayWrite.filter((unit) => !relationOut.has(unit) && !FLAG_UNITS.has(unit));
63
- if (clobbers.length > 0)
64
- out.push({ keyword: 'clobbers', carriers: contractCarrierList(clobbers) });
65
- return out;
66
- }
67
- function stackStatus(summary) {
68
- const balance = summary.stackBalanced ? 'balanced' : 'unbalanced';
69
- return summary.hasUnknownStackEffect ? `${balance}, unknown effect` : balance;
70
- }
71
- function relationOutUnits(summary) {
72
- return new Set(summary.valueRelations.flatMap((rel) => rel.out));
73
- }
74
- export function renderRegisterCareReport(model) {
75
- const lines = ['AZM Register-Care Report', `Entry: ${model.entryFile}`, `Mode: ${model.mode}`];
76
- if (model.profile)
77
- lines.push(`Profile: ${model.profile}`);
78
- lines.push('');
79
- if (model.summaries.length === 0) {
80
- lines.push('Routines: none', '');
81
- }
82
- else {
83
- for (const summary of model.summaries) {
84
- lines.push(`Routine: ${summary.name}`);
85
- lines.push(` reads: ${list(summary.mayRead)}`);
86
- lines.push(` writes: ${list(summary.mayWrite)}`);
87
- lines.push(` preserves: ${list(summary.preserved)}`);
88
- lines.push(` stack: ${stackStatus(summary)}`);
89
- for (const rel of summary.valueRelations) {
90
- lines.push(` relation: ${list(rel.out)} <= ${list(rel.from)}`);
91
- }
92
- lines.push('');
93
- }
94
- }
95
- lines.push('Conflicts:');
96
- if (model.conflicts.length === 0) {
97
- lines.push(' none');
98
- }
99
- else {
100
- for (const conflict of model.conflicts) {
101
- lines.push(` ${conflict.file}:${conflict.line}:${conflict.column}: ${conflict.callTarget}: ${list(conflict.carriers)}: ${conflict.message}`);
102
- }
103
- }
104
- lines.push('');
105
- lines.push('Output candidates:');
106
- if (!model.outputCandidates || model.outputCandidates.length === 0) {
107
- lines.push(' none');
108
- }
109
- else {
110
- for (const candidate of model.outputCandidates) {
111
- lines.push(` ${candidate.file}:${candidate.line}:${candidate.column}: ${candidate.routine}: ${list(candidate.carriers)}: ${candidate.message}`);
112
- }
113
- }
114
- lines.push('');
115
- lines.push('Unknown calls:');
116
- if (model.unknownCalls.length === 0) {
117
- lines.push(' none');
118
- }
119
- else {
120
- for (const call of model.unknownCalls)
121
- lines.push(` ${call}`);
122
- }
123
- lines.push('');
124
- return `${lines.join('\n')}\n`;
125
- }
126
- export function renderRegisterCareInterface(summaries) {
127
- const lines = [];
128
- for (const summary of summaries) {
129
- lines.push(`extern ${summary.name}`);
130
- for (const entry of contractEntries(summary)) {
131
- lines.push(`${entry.keyword} ${entry.carriers}`);
132
- }
133
- lines.push('end', '');
134
- }
135
- return `${lines.join('\n')}\n`;
136
- }
137
- export function renderRegisterCareSourceBlock(summary) {
138
- return sourceContractEntries(summary).map((entry) => `;! ${entry.keyword.padEnd(10)}${entry.carriers}`);
139
- }
@@ -1,5 +0,0 @@
1
- import type { LocatedSmartComment, RegisterCareRoutine, RoutineContract, SmartComment } from './types.js';
2
- export declare function parseSmartCommentLine(line: string): SmartComment | undefined;
3
- export declare function parseSmartComments(sourceLineComments: Map<string, Map<number, string>>): LocatedSmartComment[];
4
- export declare function buildRoutineContracts(comments: LocatedSmartComment[], routines?: RegisterCareRoutine[], sourceTexts?: Map<string, string>): Map<string, RoutineContract>;
5
- export declare function parseInterfaceContracts(text: string, file?: string): Map<string, RoutineContract>;
@@ -1,247 +0,0 @@
1
- import { expandCarrierList } from './carriers.js';
2
- const COMPACT_SOURCE_TAG_RE = /^;?\s*!\s*(in|out|clobbers|preserves)(?:\s+(.+))?$/i;
3
- const COMPACT_SOURCE_LINE_RE = /^\s*;\s*!\s*(?:in|out|maybe-out|clobbers|preserves)(?:\s|$)/i;
4
- const INTERFACE_TAG_RE = /^\s*(in|out|clobbers|preserves)(?:\s+(.+))?$/i;
5
- const CARRIER_RE = /^\{([^}]+)\}(?:\s+(.+))?$/;
6
- function parseCarrierPayload(rest) {
7
- if (!rest)
8
- return undefined;
9
- const match = CARRIER_RE.exec(rest.trim());
10
- if (match) {
11
- const carriers = match[1]
12
- .split(',')
13
- .map((s) => s.trim())
14
- .filter(Boolean);
15
- const name = match[2]?.trim();
16
- return { carriers, ...(name ? { name } : {}) };
17
- }
18
- const tokens = rest.trim().split(/\s+/);
19
- const carriers = [];
20
- let consumed = 0;
21
- for (const token of tokens) {
22
- const cleaned = token.replace(/[.:;]+$/u, '');
23
- const parts = cleaned
24
- .split(',')
25
- .map((s) => s.trim())
26
- .filter(Boolean);
27
- if (parts.length === 0 || !expandCarrierList(parts))
28
- break;
29
- carriers.push(...parts);
30
- consumed += 1;
31
- }
32
- if (carriers.length === 0)
33
- return undefined;
34
- const name = tokens.slice(consumed).join(' ').trim();
35
- return { carriers, ...(name ? { name } : {}) };
36
- }
37
- export function parseSmartCommentLine(line) {
38
- const trimmed = line.trim();
39
- const expectOut = /^;?\s*expects\s+out\s+(.+)$/i.exec(trimmed);
40
- if (expectOut) {
41
- const payload = parseCarrierPayload(expectOut[1]?.trim());
42
- if (!payload)
43
- return undefined;
44
- const carriers = expandCarrierList(payload.carriers);
45
- if (!carriers || carriers.length === 0)
46
- return undefined;
47
- return { kind: 'expectOut', carriers, ...(payload.name ? { name: payload.name } : {}) };
48
- }
49
- const match = COMPACT_SOURCE_TAG_RE.exec(trimmed);
50
- if (!match)
51
- return undefined;
52
- const tag = match[1].toLowerCase();
53
- const rest = match[2]?.trim();
54
- const payload = parseCarrierPayload(rest);
55
- if (!payload)
56
- return undefined;
57
- const carriers = expandCarrierList(payload.carriers);
58
- if (!carriers || carriers.length === 0)
59
- return undefined;
60
- if (tag === 'in')
61
- return { kind: 'in', carriers, ...(payload.name ? { name: payload.name } : {}) };
62
- if (tag === 'out')
63
- return { kind: 'out', carriers, ...(payload.name ? { name: payload.name } : {}) };
64
- if (tag === 'clobbers')
65
- return { kind: 'clobbers', carriers };
66
- if (tag === 'preserves')
67
- return { kind: 'preserves', carriers };
68
- return undefined;
69
- }
70
- function parseInterfaceContractLine(line) {
71
- const trimmed = line.trim();
72
- if (trimmed.length === 0 || trimmed.startsWith(';'))
73
- return undefined;
74
- const extern = /^extern\s+(\S+)\s*$/i.exec(trimmed);
75
- if (extern)
76
- return { kind: 'extern', name: extern[1] };
77
- if (/^end\s*$/i.test(trimmed))
78
- return { kind: 'end' };
79
- const match = INTERFACE_TAG_RE.exec(trimmed);
80
- if (!match)
81
- return undefined;
82
- const tag = match[1].toLowerCase();
83
- const rest = match[2]?.trim();
84
- if (!rest)
85
- return undefined;
86
- const rawCarriers = rest.split(',').map((part) => part.trim());
87
- if (rawCarriers.length === 0 || rawCarriers.some((part) => part.length === 0)) {
88
- return undefined;
89
- }
90
- const carriers = expandCarrierList(rawCarriers);
91
- if (!carriers || carriers.length === 0)
92
- return undefined;
93
- if (tag === 'in')
94
- return { kind: 'in', carriers };
95
- if (tag === 'out')
96
- return { kind: 'out', carriers };
97
- if (tag === 'clobbers')
98
- return { kind: 'clobbers', carriers };
99
- if (tag === 'preserves')
100
- return { kind: 'preserves', carriers };
101
- return undefined;
102
- }
103
- function isCompactSourceContractLine(line) {
104
- return COMPACT_SOURCE_LINE_RE.test(line);
105
- }
106
- export function parseSmartComments(sourceLineComments) {
107
- const out = [];
108
- for (const [file, comments] of sourceLineComments) {
109
- for (const [line, text] of comments) {
110
- const parsed = parseSmartCommentLine(`;${text}`);
111
- if (parsed)
112
- out.push({ file, line, comment: parsed });
113
- }
114
- }
115
- return out.sort((a, b) => a.file.localeCompare(b.file) || a.line - b.line);
116
- }
117
- function appendUnique(out, items) {
118
- for (const item of items) {
119
- if (!out.includes(item))
120
- out.push(item);
121
- }
122
- }
123
- function applyContractComment(contract, comment) {
124
- if (comment.kind === 'in')
125
- appendUnique(contract.in, comment.carriers);
126
- if (comment.kind === 'out')
127
- appendUnique(contract.out, comment.carriers);
128
- if (comment.kind === 'clobbers')
129
- appendUnique(contract.clobbers, comment.carriers);
130
- if (comment.kind === 'preserves')
131
- appendUnique(contract.preserves, comment.carriers);
132
- }
133
- function hasContractContent(contract) {
134
- return (contract.in.length > 0 ||
135
- contract.out.length > 0 ||
136
- contract.clobbers.length > 0 ||
137
- contract.preserves.length > 0);
138
- }
139
- function isCommentOnlyLine(line) {
140
- return /^\s*;/.test(line);
141
- }
142
- function collectPrecedingCommentBlock(routine, sourceTexts) {
143
- const source = sourceTexts.get(routine.span.file);
144
- if (!source)
145
- return { comments: [], complete: false };
146
- const lines = source.split(/\r?\n/);
147
- const rawBlock = [];
148
- for (let index = routine.span.start.line - 2; index >= 0; index -= 1) {
149
- const raw = lines[index] ?? '';
150
- if (!isCommentOnlyLine(raw))
151
- break;
152
- rawBlock.push({ line: index + 1, text: raw });
153
- }
154
- rawBlock.reverse();
155
- let compactStart = rawBlock.length;
156
- while (compactStart > 0 && isCompactSourceContractLine(rawBlock[compactStart - 1]?.text ?? '')) {
157
- compactStart -= 1;
158
- }
159
- if (compactStart < rawBlock.length) {
160
- return {
161
- complete: true,
162
- comments: rawBlock.slice(compactStart).flatMap((item) => {
163
- const parsed = parseSmartCommentLine(item.text);
164
- return parsed ? [{ file: routine.span.file, line: item.line, comment: parsed }] : [];
165
- }),
166
- };
167
- }
168
- return {
169
- complete: false,
170
- comments: rawBlock.flatMap((item) => {
171
- const parsed = parseSmartCommentLine(item.text);
172
- return parsed ? [{ file: routine.span.file, line: item.line, comment: parsed }] : [];
173
- }),
174
- };
175
- }
176
- function buildImplicitRoutineContracts(routines, sourceTexts) {
177
- const contracts = new Map();
178
- for (const routine of routines) {
179
- const docBlock = collectPrecedingCommentBlock(routine, sourceTexts);
180
- if (docBlock.comments.some((item) => item.comment.kind === 'extern' || item.comment.kind === 'end')) {
181
- continue;
182
- }
183
- const contract = {
184
- name: routine.name,
185
- in: [],
186
- out: [],
187
- clobbers: [],
188
- preserves: [],
189
- ...(docBlock.complete ? { complete: true } : {}),
190
- };
191
- for (const item of docBlock.comments) {
192
- applyContractComment(contract, item.comment);
193
- }
194
- if (hasContractContent(contract))
195
- contracts.set(routine.name, contract);
196
- }
197
- return contracts;
198
- }
199
- export function buildRoutineContracts(comments, routines = [], sourceTexts = new Map()) {
200
- const contracts = new Map();
201
- let current;
202
- for (const item of comments) {
203
- const comment = item.comment;
204
- if (comment.kind === 'extern') {
205
- current = {
206
- name: comment.name,
207
- in: [],
208
- out: [],
209
- clobbers: [],
210
- preserves: [],
211
- complete: true,
212
- };
213
- contracts.set(comment.name, current);
214
- continue;
215
- }
216
- if (comment.kind === 'end') {
217
- current = undefined;
218
- continue;
219
- }
220
- if (!current)
221
- continue;
222
- applyContractComment(current, comment);
223
- }
224
- for (const [name, contract] of buildImplicitRoutineContracts(routines, sourceTexts)) {
225
- if (!contracts.has(name))
226
- contracts.set(name, contract);
227
- }
228
- return contracts;
229
- }
230
- export function parseInterfaceContracts(text, file = '<register-care-interface>') {
231
- const comments = [];
232
- const lines = text.split(/\r?\n/);
233
- lines.forEach((line, index) => {
234
- const trimmed = line.trim();
235
- if (trimmed.length === 0)
236
- return;
237
- if (trimmed.startsWith(';')) {
238
- throw new Error(`${file}:${index + 1}: .asmi files do not permit comments`);
239
- }
240
- const comment = parseInterfaceContractLine(line);
241
- if (!comment) {
242
- throw new Error(`${file}:${index + 1}: invalid register-care interface line "${trimmed}"`);
243
- }
244
- comments.push({ file, line: index + 1, comment });
245
- });
246
- return buildRoutineContracts(comments);
247
- }
@@ -1,8 +0,0 @@
1
- type SourceLines = {
2
- lines: string[];
3
- trailingNewline: boolean;
4
- eol: '\n' | '\r\n';
5
- };
6
- export declare function splitSourceLines(text: string): SourceLines;
7
- export declare function joinSourceLines({ lines, trailingNewline, eol }: SourceLines): string;
8
- export {};
@@ -1,15 +0,0 @@
1
- function lineEnding(text) {
2
- return text.includes('\r\n') ? '\r\n' : '\n';
3
- }
4
- export function splitSourceLines(text) {
5
- const eol = lineEnding(text);
6
- const trailingNewline = text.endsWith('\n');
7
- const lines = text.split(/\r?\n/);
8
- if (trailingNewline)
9
- lines.pop();
10
- return { lines, trailingNewline, eol };
11
- }
12
- export function joinSourceLines({ lines, trailingNewline, eol }) {
13
- const text = lines.join(eol);
14
- return trailingNewline ? `${text}${eol}` : text;
15
- }
@@ -1,3 +0,0 @@
1
- import type { RegisterCareRoutine, RoutineContract, RoutineSummary } from './types.js';
2
- export declare function inferRoutineSummary(routine: RegisterCareRoutine, boundarySummaries?: ReadonlyMap<string, RoutineSummary>): RoutineSummary;
3
- export declare function applyRoutineContract(summary: RoutineSummary, contract: RoutineContract): RoutineSummary;