@jhlagado/azm 0.2.0 → 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 (334) hide show
  1. package/README.md +110 -78
  2. package/dist/src/api-compile.d.ts +0 -2
  3. package/dist/src/api-compile.js +2 -9
  4. package/dist/src/assembly/address-planning.js +21 -1
  5. package/dist/src/assembly/program-emission.js +1 -0
  6. package/dist/src/cli/parse-args.d.ts +0 -1
  7. package/dist/src/cli/parse-args.js +0 -7
  8. package/dist/src/cli/write-artifacts.js +0 -11
  9. package/dist/src/core/compile.js +192 -9
  10. package/dist/src/expansion/op-expansion.js +2 -0
  11. package/dist/src/model/expression.d.ts +4 -0
  12. package/dist/src/model/source-item.d.ts +11 -0
  13. package/dist/src/outputs/index.js +0 -2
  14. package/dist/src/outputs/types.d.ts +3 -16
  15. package/dist/src/outputs/write-asm80.js +206 -5
  16. package/dist/src/register-care/analyze.js +36 -8
  17. package/dist/src/register-care/annotations.js +33 -146
  18. package/dist/src/register-care/fix.d.ts +2 -0
  19. package/dist/src/register-care/fix.js +52 -0
  20. package/dist/src/register-care/instruction-shape.d.ts +11 -0
  21. package/dist/src/register-care/instruction-shape.js +129 -0
  22. package/dist/src/register-care/liveness.js +15 -7
  23. package/dist/src/register-care/profiles.js +4 -0
  24. package/dist/src/register-care/programModel.js +79 -13
  25. package/dist/src/register-care/report.d.ts +2 -1
  26. package/dist/src/register-care/report.js +91 -34
  27. package/dist/src/register-care/routine-summaries.d.ts +6 -0
  28. package/dist/src/register-care/routine-summaries.js +89 -0
  29. package/dist/src/register-care/summaries.d.ts +3 -3
  30. package/dist/src/register-care/summaries.js +42 -75
  31. package/dist/{legacy-root-azm/src/registerCare → src/register-care}/summary.js +33 -51
  32. package/dist/src/register-care/types.d.ts +6 -1
  33. package/dist/src/semantics/expression-evaluation.d.ts +7 -3
  34. package/dist/src/semantics/expression-evaluation.js +57 -0
  35. package/dist/src/source/strip-line-comment.d.ts +2 -0
  36. package/dist/src/source/strip-line-comment.js +26 -0
  37. package/dist/src/syntax/directive-aliases.js +9 -10
  38. package/dist/src/syntax/parse-diagnostics.d.ts +12 -0
  39. package/dist/src/syntax/parse-diagnostics.js +18 -0
  40. package/dist/src/syntax/parse-expression.js +34 -9
  41. package/dist/src/syntax/parse-line.js +150 -54
  42. package/dist/src/tooling/case-style.js +3 -0
  43. package/docs/reference/cli.md +6 -4
  44. package/docs/reference/tooling-api.md +13 -9
  45. package/package.json +4 -6
  46. package/dist/legacy-root-azm/src/analysis.d.ts +0 -11
  47. package/dist/legacy-root-azm/src/analysis.js +0 -41
  48. package/dist/legacy-root-azm/src/compile.d.ts +0 -10
  49. package/dist/legacy-root-azm/src/compile.js +0 -186
  50. package/dist/legacy-root-azm/src/compileShared.d.ts +0 -3
  51. package/dist/legacy-root-azm/src/compileShared.js +0 -7
  52. package/dist/legacy-root-azm/src/diagnosticTypes.d.ts +0 -77
  53. package/dist/legacy-root-azm/src/diagnosticTypes.js +0 -53
  54. package/dist/legacy-root-azm/src/formats/index.d.ts +0 -7
  55. package/dist/legacy-root-azm/src/formats/index.js +0 -17
  56. package/dist/legacy-root-azm/src/formats/range.d.ts +0 -17
  57. package/dist/legacy-root-azm/src/formats/range.js +0 -45
  58. package/dist/legacy-root-azm/src/formats/types.d.ts +0 -283
  59. package/dist/legacy-root-azm/src/formats/types.js +0 -1
  60. package/dist/legacy-root-azm/src/formats/writeAsm80.d.ts +0 -6
  61. package/dist/legacy-root-azm/src/formats/writeAsm80.js +0 -86
  62. package/dist/legacy-root-azm/src/formats/writeBin.d.ts +0 -7
  63. package/dist/legacy-root-azm/src/formats/writeBin.js +0 -23
  64. package/dist/legacy-root-azm/src/formats/writeD8m.d.ts +0 -9
  65. package/dist/legacy-root-azm/src/formats/writeD8m.js +0 -245
  66. package/dist/legacy-root-azm/src/formats/writeHex.d.ts +0 -8
  67. package/dist/legacy-root-azm/src/formats/writeHex.js +0 -38
  68. package/dist/legacy-root-azm/src/formats/writeListing.d.ts +0 -8
  69. package/dist/legacy-root-azm/src/formats/writeListing.js +0 -83
  70. package/dist/legacy-root-azm/src/frontend/asm80/asmLine.d.ts +0 -39
  71. package/dist/legacy-root-azm/src/frontend/asm80/asmLine.js +0 -89
  72. package/dist/legacy-root-azm/src/frontend/asm80/parseAsmRawValues.d.ts +0 -4
  73. package/dist/legacy-root-azm/src/frontend/asm80/parseAsmRawValues.js +0 -94
  74. package/dist/legacy-root-azm/src/frontend/asm80/quoteScan.d.ts +0 -10
  75. package/dist/legacy-root-azm/src/frontend/asm80/quoteScan.js +0 -25
  76. package/dist/legacy-root-azm/src/frontend/ast.d.ts +0 -376
  77. package/dist/legacy-root-azm/src/frontend/ast.js +0 -1
  78. package/dist/legacy-root-azm/src/frontend/directiveAliases.d.ts +0 -14
  79. package/dist/legacy-root-azm/src/frontend/directiveAliases.js +0 -189
  80. package/dist/legacy-root-azm/src/frontend/grammarData.d.ts +0 -14
  81. package/dist/legacy-root-azm/src/frontend/grammarData.js +0 -65
  82. package/dist/legacy-root-azm/src/frontend/immExprUtils.d.ts +0 -2
  83. package/dist/legacy-root-azm/src/frontend/immExprUtils.js +0 -12
  84. package/dist/legacy-root-azm/src/frontend/parseAsmFlatDirectiveLine.d.ts +0 -17
  85. package/dist/legacy-root-azm/src/frontend/parseAsmFlatDirectiveLine.js +0 -187
  86. package/dist/legacy-root-azm/src/frontend/parseAsmInstruction.d.ts +0 -3
  87. package/dist/legacy-root-azm/src/frontend/parseAsmInstruction.js +0 -73
  88. package/dist/legacy-root-azm/src/frontend/parseAsmStatements.d.ts +0 -6
  89. package/dist/legacy-root-azm/src/frontend/parseAsmStatements.js +0 -16
  90. package/dist/legacy-root-azm/src/frontend/parseAsmStream.d.ts +0 -10
  91. package/dist/legacy-root-azm/src/frontend/parseAsmStream.js +0 -33
  92. package/dist/legacy-root-azm/src/frontend/parseAsmTopLevel.d.ts +0 -18
  93. package/dist/legacy-root-azm/src/frontend/parseAsmTopLevel.js +0 -34
  94. package/dist/legacy-root-azm/src/frontend/parseDiagnostics.d.ts +0 -9
  95. package/dist/legacy-root-azm/src/frontend/parseDiagnostics.js +0 -16
  96. package/dist/legacy-root-azm/src/frontend/parseEnum.d.ts +0 -12
  97. package/dist/legacy-root-azm/src/frontend/parseEnum.js +0 -70
  98. package/dist/legacy-root-azm/src/frontend/parseImm.d.ts +0 -10
  99. package/dist/legacy-root-azm/src/frontend/parseImm.js +0 -397
  100. package/dist/legacy-root-azm/src/frontend/parseLogicalLines.d.ts +0 -11
  101. package/dist/legacy-root-azm/src/frontend/parseLogicalLines.js +0 -94
  102. package/dist/legacy-root-azm/src/frontend/parseOp.d.ts +0 -25
  103. package/dist/legacy-root-azm/src/frontend/parseOp.js +0 -120
  104. package/dist/legacy-root-azm/src/frontend/parseOpHeader.d.ts +0 -20
  105. package/dist/legacy-root-azm/src/frontend/parseOpHeader.js +0 -32
  106. package/dist/legacy-root-azm/src/frontend/parseOperands.d.ts +0 -4
  107. package/dist/legacy-root-azm/src/frontend/parseOperands.js +0 -290
  108. package/dist/legacy-root-azm/src/frontend/parseParams.d.ts +0 -6
  109. package/dist/legacy-root-azm/src/frontend/parseParams.js +0 -62
  110. package/dist/legacy-root-azm/src/frontend/parseParserRecovery.d.ts +0 -12
  111. package/dist/legacy-root-azm/src/frontend/parseParserRecovery.js +0 -17
  112. package/dist/legacy-root-azm/src/frontend/parseParserShared.d.ts +0 -2
  113. package/dist/legacy-root-azm/src/frontend/parseParserShared.js +0 -8
  114. package/dist/legacy-root-azm/src/frontend/parseRawDataDirectiveStart.d.ts +0 -1
  115. package/dist/legacy-root-azm/src/frontend/parseRawDataDirectiveStart.js +0 -3
  116. package/dist/legacy-root-azm/src/frontend/parseRawDataDirectives.d.ts +0 -7
  117. package/dist/legacy-root-azm/src/frontend/parseRawDataDirectives.js +0 -142
  118. package/dist/legacy-root-azm/src/frontend/parseRecordFieldDecl.d.ts +0 -34
  119. package/dist/legacy-root-azm/src/frontend/parseRecordFieldDecl.js +0 -177
  120. package/dist/legacy-root-azm/src/frontend/parseSourceItemDispatch.d.ts +0 -46
  121. package/dist/legacy-root-azm/src/frontend/parseSourceItemDispatch.js +0 -53
  122. package/dist/legacy-root-azm/src/frontend/parseSourceItemTable.d.ts +0 -16
  123. package/dist/legacy-root-azm/src/frontend/parseSourceItemTable.js +0 -68
  124. package/dist/legacy-root-azm/src/frontend/parseTopLevelCommon.d.ts +0 -11
  125. package/dist/legacy-root-azm/src/frontend/parseTopLevelCommon.js +0 -50
  126. package/dist/legacy-root-azm/src/frontend/parseTypes.d.ts +0 -24
  127. package/dist/legacy-root-azm/src/frontend/parseTypes.js +0 -77
  128. package/dist/legacy-root-azm/src/frontend/parser.d.ts +0 -11
  129. package/dist/legacy-root-azm/src/frontend/parser.js +0 -88
  130. package/dist/legacy-root-azm/src/frontend/source.d.ts +0 -28
  131. package/dist/legacy-root-azm/src/frontend/source.js +0 -58
  132. package/dist/legacy-root-azm/src/frontend/sourceExtensions.d.ts +0 -2
  133. package/dist/legacy-root-azm/src/frontend/sourceExtensions.js +0 -6
  134. package/dist/legacy-root-azm/src/lintCaseStyle.d.ts +0 -4
  135. package/dist/legacy-root-azm/src/lintCaseStyle.js +0 -129
  136. package/dist/legacy-root-azm/src/lowering/asmDirectiveLowering.d.ts +0 -4
  137. package/dist/legacy-root-azm/src/lowering/asmDirectiveLowering.js +0 -229
  138. package/dist/legacy-root-azm/src/lowering/asmDirectiveTraversal.d.ts +0 -47
  139. package/dist/legacy-root-azm/src/lowering/asmDirectiveTraversal.js +0 -52
  140. package/dist/legacy-root-azm/src/lowering/asmEquResolution.d.ts +0 -8
  141. package/dist/legacy-root-azm/src/lowering/asmEquResolution.js +0 -69
  142. package/dist/legacy-root-azm/src/lowering/asmInstructionLdHelpers.d.ts +0 -15
  143. package/dist/legacy-root-azm/src/lowering/asmInstructionLdHelpers.js +0 -102
  144. package/dist/legacy-root-azm/src/lowering/asmInstructionLowering.d.ts +0 -5
  145. package/dist/legacy-root-azm/src/lowering/asmInstructionLowering.js +0 -54
  146. package/dist/legacy-root-azm/src/lowering/asmInstructionStream.d.ts +0 -46
  147. package/dist/legacy-root-azm/src/lowering/asmInstructionStream.js +0 -51
  148. package/dist/legacy-root-azm/src/lowering/asmLoweringBranchCall.d.ts +0 -43
  149. package/dist/legacy-root-azm/src/lowering/asmLoweringBranchCall.js +0 -254
  150. package/dist/legacy-root-azm/src/lowering/asmLoweringHost.d.ts +0 -23
  151. package/dist/legacy-root-azm/src/lowering/asmLoweringHost.js +0 -1
  152. package/dist/legacy-root-azm/src/lowering/asmLoweringLd.d.ts +0 -28
  153. package/dist/legacy-root-azm/src/lowering/asmLoweringLd.js +0 -144
  154. package/dist/legacy-root-azm/src/lowering/asmRangeLowering.d.ts +0 -17
  155. package/dist/legacy-root-azm/src/lowering/asmRangeLowering.js +0 -39
  156. package/dist/legacy-root-azm/src/lowering/asmRawDataLowering.d.ts +0 -16
  157. package/dist/legacy-root-azm/src/lowering/asmRawDataLowering.js +0 -209
  158. package/dist/legacy-root-azm/src/lowering/asmSourceEmitter.d.ts +0 -4
  159. package/dist/legacy-root-azm/src/lowering/asmSourceEmitter.js +0 -9
  160. package/dist/legacy-root-azm/src/lowering/asmSourceInstructionLowering.d.ts +0 -4
  161. package/dist/legacy-root-azm/src/lowering/asmSourceInstructionLowering.js +0 -14
  162. package/dist/legacy-root-azm/src/lowering/asmUtils.d.ts +0 -13
  163. package/dist/legacy-root-azm/src/lowering/asmUtils.js +0 -105
  164. package/dist/legacy-root-azm/src/lowering/assemblerFlowSetup.d.ts +0 -54
  165. package/dist/legacy-root-azm/src/lowering/assemblerFlowSetup.js +0 -128
  166. package/dist/legacy-root-azm/src/lowering/assemblerLoweringContext.d.ts +0 -151
  167. package/dist/legacy-root-azm/src/lowering/assemblerLoweringContext.js +0 -16
  168. package/dist/legacy-root-azm/src/lowering/assemblerLoweringContextSplit.d.ts +0 -7
  169. package/dist/legacy-root-azm/src/lowering/assemblerLoweringContextSplit.js +0 -75
  170. package/dist/legacy-root-azm/src/lowering/assemblerLoweringPhases.d.ts +0 -66
  171. package/dist/legacy-root-azm/src/lowering/assemblerLoweringPhases.js +0 -166
  172. package/dist/legacy-root-azm/src/lowering/bytePlacement.d.ts +0 -7
  173. package/dist/legacy-root-azm/src/lowering/bytePlacement.js +0 -37
  174. package/dist/legacy-root-azm/src/lowering/capabilities.d.ts +0 -67
  175. package/dist/legacy-root-azm/src/lowering/capabilities.js +0 -1
  176. package/dist/legacy-root-azm/src/lowering/eaResolution.d.ts +0 -58
  177. package/dist/legacy-root-azm/src/lowering/eaResolution.js +0 -159
  178. package/dist/legacy-root-azm/src/lowering/emissionCore.d.ts +0 -17
  179. package/dist/legacy-root-azm/src/lowering/emissionCore.js +0 -21
  180. package/dist/legacy-root-azm/src/lowering/emit.d.ts +0 -17
  181. package/dist/legacy-root-azm/src/lowering/emit.js +0 -46
  182. package/dist/legacy-root-azm/src/lowering/emitContextBuilder.d.ts +0 -63
  183. package/dist/legacy-root-azm/src/lowering/emitContextBuilder.js +0 -41
  184. package/dist/legacy-root-azm/src/lowering/emitFinalization.d.ts +0 -61
  185. package/dist/legacy-root-azm/src/lowering/emitFinalization.js +0 -66
  186. package/dist/legacy-root-azm/src/lowering/emitFinalizationSetup.d.ts +0 -19
  187. package/dist/legacy-root-azm/src/lowering/emitFinalizationSetup.js +0 -26
  188. package/dist/legacy-root-azm/src/lowering/emitPhase1BuildProgramLoweringContext.d.ts +0 -7
  189. package/dist/legacy-root-azm/src/lowering/emitPhase1BuildProgramLoweringContext.js +0 -119
  190. package/dist/legacy-root-azm/src/lowering/emitPhase1Helpers.d.ts +0 -4
  191. package/dist/legacy-root-azm/src/lowering/emitPhase1Helpers.js +0 -12
  192. package/dist/legacy-root-azm/src/lowering/emitPhase1Types.d.ts +0 -21
  193. package/dist/legacy-root-azm/src/lowering/emitPhase1Types.js +0 -1
  194. package/dist/legacy-root-azm/src/lowering/emitPhase1WirePipeline.d.ts +0 -70
  195. package/dist/legacy-root-azm/src/lowering/emitPhase1WirePipeline.js +0 -203
  196. package/dist/legacy-root-azm/src/lowering/emitPhase1Workspace.d.ts +0 -82
  197. package/dist/legacy-root-azm/src/lowering/emitPhase1Workspace.js +0 -55
  198. package/dist/legacy-root-azm/src/lowering/emitPipeline.d.ts +0 -121
  199. package/dist/legacy-root-azm/src/lowering/emitPipeline.js +0 -57
  200. package/dist/legacy-root-azm/src/lowering/emitProgramContext.d.ts +0 -39
  201. package/dist/legacy-root-azm/src/lowering/emitProgramContext.js +0 -29
  202. package/dist/legacy-root-azm/src/lowering/emitState.d.ts +0 -90
  203. package/dist/legacy-root-azm/src/lowering/emitState.js +0 -124
  204. package/dist/legacy-root-azm/src/lowering/fixupBaseResolution.d.ts +0 -7
  205. package/dist/legacy-root-azm/src/lowering/fixupBaseResolution.js +0 -23
  206. package/dist/legacy-root-azm/src/lowering/fixupEmission.d.ts +0 -64
  207. package/dist/legacy-root-azm/src/lowering/fixupEmission.js +0 -199
  208. package/dist/legacy-root-azm/src/lowering/immMath.d.ts +0 -2
  209. package/dist/legacy-root-azm/src/lowering/immMath.js +0 -34
  210. package/dist/legacy-root-azm/src/lowering/inputAssets.d.ts +0 -7
  211. package/dist/legacy-root-azm/src/lowering/inputAssets.js +0 -106
  212. package/dist/legacy-root-azm/src/lowering/ldEncoding.d.ts +0 -15
  213. package/dist/legacy-root-azm/src/lowering/ldEncoding.js +0 -12
  214. package/dist/legacy-root-azm/src/lowering/ldEncodingRegMemHelpers.d.ts +0 -5
  215. package/dist/legacy-root-azm/src/lowering/ldEncodingRegMemHelpers.js +0 -124
  216. package/dist/legacy-root-azm/src/lowering/ldFormSelection.d.ts +0 -26
  217. package/dist/legacy-root-azm/src/lowering/ldFormSelection.js +0 -92
  218. package/dist/legacy-root-azm/src/lowering/ldLowering.d.ts +0 -7
  219. package/dist/legacy-root-azm/src/lowering/ldLowering.js +0 -13
  220. package/dist/legacy-root-azm/src/lowering/loweredAsmByteEmission.d.ts +0 -23
  221. package/dist/legacy-root-azm/src/lowering/loweredAsmByteEmission.js +0 -185
  222. package/dist/legacy-root-azm/src/lowering/loweredAsmPlacement.d.ts +0 -13
  223. package/dist/legacy-root-azm/src/lowering/loweredAsmPlacement.js +0 -86
  224. package/dist/legacy-root-azm/src/lowering/loweredAsmStreamRecording.d.ts +0 -27
  225. package/dist/legacy-root-azm/src/lowering/loweredAsmStreamRecording.js +0 -215
  226. package/dist/legacy-root-azm/src/lowering/loweredAsmTypes.d.ts +0 -202
  227. package/dist/legacy-root-azm/src/lowering/loweredAsmTypes.js +0 -1
  228. package/dist/legacy-root-azm/src/lowering/loweredFormat.d.ts +0 -3
  229. package/dist/legacy-root-azm/src/lowering/loweredFormat.js +0 -26
  230. package/dist/legacy-root-azm/src/lowering/loweredItemSize.d.ts +0 -4
  231. package/dist/legacy-root-azm/src/lowering/loweredItemSize.js +0 -17
  232. package/dist/legacy-root-azm/src/lowering/loweringDiagnostics.d.ts +0 -9
  233. package/dist/legacy-root-azm/src/lowering/loweringDiagnostics.js +0 -55
  234. package/dist/legacy-root-azm/src/lowering/loweringTypes.d.ts +0 -27
  235. package/dist/legacy-root-azm/src/lowering/loweringTypes.js +0 -1
  236. package/dist/legacy-root-azm/src/lowering/opCandidateRegistry.d.ts +0 -9
  237. package/dist/legacy-root-azm/src/lowering/opCandidateRegistry.js +0 -9
  238. package/dist/legacy-root-azm/src/lowering/opExpansionExecution.d.ts +0 -15
  239. package/dist/legacy-root-azm/src/lowering/opExpansionExecution.js +0 -45
  240. package/dist/legacy-root-azm/src/lowering/opExpansionOrchestration.d.ts +0 -15
  241. package/dist/legacy-root-azm/src/lowering/opExpansionOrchestration.js +0 -88
  242. package/dist/legacy-root-azm/src/lowering/opExpansionStream.d.ts +0 -12
  243. package/dist/legacy-root-azm/src/lowering/opExpansionStream.js +0 -176
  244. package/dist/legacy-root-azm/src/lowering/opMatching.d.ts +0 -52
  245. package/dist/legacy-root-azm/src/lowering/opMatching.js +0 -355
  246. package/dist/legacy-root-azm/src/lowering/opSubstitution.d.ts +0 -13
  247. package/dist/legacy-root-azm/src/lowering/opSubstitution.js +0 -175
  248. package/dist/legacy-root-azm/src/lowering/prescanTypes.d.ts +0 -7
  249. package/dist/legacy-root-azm/src/lowering/prescanTypes.js +0 -1
  250. package/dist/legacy-root-azm/src/lowering/programLowering.d.ts +0 -144
  251. package/dist/legacy-root-azm/src/lowering/programLowering.js +0 -2
  252. package/dist/legacy-root-azm/src/lowering/programLoweringDeclarations.d.ts +0 -5
  253. package/dist/legacy-root-azm/src/lowering/programLoweringDeclarations.js +0 -5
  254. package/dist/legacy-root-azm/src/lowering/programLoweringFinalize.d.ts +0 -18
  255. package/dist/legacy-root-azm/src/lowering/programLoweringFinalize.js +0 -115
  256. package/dist/legacy-root-azm/src/lowering/programLoweringTraversal.d.ts +0 -2
  257. package/dist/legacy-root-azm/src/lowering/programLoweringTraversal.js +0 -93
  258. package/dist/legacy-root-azm/src/lowering/programPrescan.d.ts +0 -3
  259. package/dist/legacy-root-azm/src/lowering/programPrescan.js +0 -37
  260. package/dist/legacy-root-azm/src/lowering/traceFormat.d.ts +0 -13
  261. package/dist/legacy-root-azm/src/lowering/traceFormat.js +0 -211
  262. package/dist/legacy-root-azm/src/packageInfo.d.ts +0 -1
  263. package/dist/legacy-root-azm/src/packageInfo.js +0 -15
  264. package/dist/legacy-root-azm/src/pathCompare.d.ts +0 -3
  265. package/dist/legacy-root-azm/src/pathCompare.js +0 -26
  266. package/dist/legacy-root-azm/src/pipeline.d.ts +0 -91
  267. package/dist/legacy-root-azm/src/pipeline.js +0 -1
  268. package/dist/legacy-root-azm/src/registerCare/analyze.d.ts +0 -24
  269. package/dist/legacy-root-azm/src/registerCare/analyze.js +0 -327
  270. package/dist/legacy-root-azm/src/registerCare/boundaryHints.d.ts +0 -2
  271. package/dist/legacy-root-azm/src/registerCare/boundaryHints.js +0 -10
  272. package/dist/legacy-root-azm/src/registerCare/carriers.d.ts +0 -4
  273. package/dist/legacy-root-azm/src/registerCare/carriers.js +0 -78
  274. package/dist/legacy-root-azm/src/registerCare/controlFlow.d.ts +0 -5
  275. package/dist/legacy-root-azm/src/registerCare/controlFlow.js +0 -35
  276. package/dist/legacy-root-azm/src/registerCare/fix.d.ts +0 -11
  277. package/dist/legacy-root-azm/src/registerCare/fix.js +0 -119
  278. package/dist/legacy-root-azm/src/registerCare/liveness.d.ts +0 -7
  279. package/dist/legacy-root-azm/src/registerCare/liveness.js +0 -227
  280. package/dist/legacy-root-azm/src/registerCare/profiles.d.ts +0 -11
  281. package/dist/legacy-root-azm/src/registerCare/profiles.js +0 -45
  282. package/dist/legacy-root-azm/src/registerCare/programModel.d.ts +0 -3
  283. package/dist/legacy-root-azm/src/registerCare/programModel.js +0 -181
  284. package/dist/legacy-root-azm/src/registerCare/report.d.ts +0 -5
  285. package/dist/legacy-root-azm/src/registerCare/report.js +0 -139
  286. package/dist/legacy-root-azm/src/registerCare/smartComments.d.ts +0 -5
  287. package/dist/legacy-root-azm/src/registerCare/smartComments.js +0 -247
  288. package/dist/legacy-root-azm/src/registerCare/types.d.ts +0 -154
  289. package/dist/legacy-root-azm/src/registerCare/types.js +0 -1
  290. package/dist/legacy-root-azm/src/semantics/declVisitor.d.ts +0 -5
  291. package/dist/legacy-root-azm/src/semantics/declVisitor.js +0 -11
  292. package/dist/legacy-root-azm/src/semantics/env.d.ts +0 -28
  293. package/dist/legacy-root-azm/src/semantics/env.js +0 -432
  294. package/dist/legacy-root-azm/src/semantics/layout.d.ts +0 -21
  295. package/dist/legacy-root-azm/src/semantics/layout.js +0 -226
  296. package/dist/legacy-root-azm/src/semantics/layoutCastFold.d.ts +0 -22
  297. package/dist/legacy-root-azm/src/semantics/layoutCastFold.js +0 -118
  298. package/dist/legacy-root-azm/src/semantics/semanticsDiagnostics.d.ts +0 -2
  299. package/dist/legacy-root-azm/src/semantics/semanticsDiagnostics.js +0 -4
  300. package/dist/legacy-root-azm/src/semantics/typeQueries.d.ts +0 -31
  301. package/dist/legacy-root-azm/src/semantics/typeQueries.js +0 -124
  302. package/dist/legacy-root-azm/src/sourceIncludeExpansion.d.ts +0 -17
  303. package/dist/legacy-root-azm/src/sourceIncludeExpansion.js +0 -124
  304. package/dist/legacy-root-azm/src/sourceIncludePaths.d.ts +0 -1
  305. package/dist/legacy-root-azm/src/sourceIncludePaths.js +0 -12
  306. package/dist/legacy-root-azm/src/sourceLoader.d.ts +0 -15
  307. package/dist/legacy-root-azm/src/sourceLoader.js +0 -118
  308. package/dist/legacy-root-azm/src/z80/effects.d.ts +0 -3
  309. package/dist/legacy-root-azm/src/z80/effects.js +0 -516
  310. package/dist/legacy-root-azm/src/z80/encode.d.ts +0 -10
  311. package/dist/legacy-root-azm/src/z80/encode.js +0 -412
  312. package/dist/legacy-root-azm/src/z80/encodeAlu.d.ts +0 -7
  313. package/dist/legacy-root-azm/src/z80/encodeAlu.js +0 -219
  314. package/dist/legacy-root-azm/src/z80/encodeBitOps.d.ts +0 -7
  315. package/dist/legacy-root-azm/src/z80/encodeBitOps.js +0 -123
  316. package/dist/legacy-root-azm/src/z80/encodeContext.d.ts +0 -29
  317. package/dist/legacy-root-azm/src/z80/encodeContext.js +0 -1
  318. package/dist/legacy-root-azm/src/z80/encodeControl.d.ts +0 -26
  319. package/dist/legacy-root-azm/src/z80/encodeControl.js +0 -180
  320. package/dist/legacy-root-azm/src/z80/encodeCoreOps.d.ts +0 -7
  321. package/dist/legacy-root-azm/src/z80/encodeCoreOps.js +0 -131
  322. package/dist/legacy-root-azm/src/z80/encodeIo.d.ts +0 -9
  323. package/dist/legacy-root-azm/src/z80/encodeIo.js +0 -128
  324. package/dist/legacy-root-azm/src/z80/encodeLd.d.ts +0 -13
  325. package/dist/legacy-root-azm/src/z80/encodeLd.js +0 -273
  326. package/dist/legacy-root-azm/src/z80/encoderRegistry.d.ts +0 -13
  327. package/dist/legacy-root-azm/src/z80/encoderRegistry.js +0 -169
  328. package/dist/src/outputs/write-listing.d.ts +0 -2
  329. package/dist/src/outputs/write-listing.js +0 -79
  330. /package/dist/{legacy-root-azm/src/registerCare → src/register-care}/annotate.d.ts +0 -0
  331. /package/dist/{legacy-root-azm/src/registerCare → src/register-care}/annotate.js +0 -0
  332. /package/dist/{legacy-root-azm/src/registerCare → src/register-care}/sourceText.d.ts +0 -0
  333. /package/dist/{legacy-root-azm/src/registerCare → src/register-care}/sourceText.js +0 -0
  334. /package/dist/{legacy-root-azm/src/registerCare → src/register-care}/summary.d.ts +0 -0
@@ -4,15 +4,18 @@ import { createSourceFile } from '../source/source-file.js';
4
4
  import { scanLogicalLines } from '../source/logical-lines.js';
5
5
  import { stripLineComment } from '../source/strip-line-comment.js';
6
6
  import { parseLogicalLine } from '../syntax/parse-line.js';
7
- import { parseTypeExpr } from '../syntax/parse-expression.js';
7
+ import { parseExpression, parseTypeExpr } from '../syntax/parse-expression.js';
8
8
  import { collectOps, expandOpInvocation, parseOpInvocation } from '../expansion/op-expansion.js';
9
+ import { normalizeDirectiveAlias } from '../syntax/directive-aliases.js';
10
+ import { evaluateExpression, lookupEquateRecord, } from '../semantics/expression-evaluation.js';
9
11
  export function parseNextSourceItems(lines, options = {}) {
10
12
  const diagnostics = [];
11
13
  const items = [];
12
- const pendingLines = [...lines];
13
14
  const parseOptions = options.directiveAliasPolicy === undefined
14
15
  ? {}
15
16
  : { directiveAliasPolicy: options.directiveAliasPolicy };
17
+ const conditional = applyConditionalAssembly(lines, diagnostics, parseOptions.directiveAliasPolicy);
18
+ const pendingLines = [...conditional.lines];
16
19
  const { ops, opLineIndexes } = collectOps(pendingLines, diagnostics, parseOptions);
17
20
  let afterTopLevelEnd = false;
18
21
  for (let index = 0; index < pendingLines.length; index += 1) {
@@ -23,9 +26,61 @@ export function parseNextSourceItems(lines, options = {}) {
23
26
  if (afterTopLevelEnd && !isPostEndParseAllowed(line.text)) {
24
27
  continue;
25
28
  }
26
- const layoutHeader = /^\.(type|union)\s+([A-Za-z_][A-Za-z0-9_]*)\s*$/i.exec(stripLineComment(line.text).trim());
29
+ const colonLayoutHeader = /^([A-Za-z_][A-Za-z0-9_]*):\s*\.(type|union)\s*$/.exec(stripLineComment(line.text).trim());
30
+ if (colonLayoutHeader) {
31
+ const directive = colonLayoutHeader[2] ?? 'type';
32
+ diagnostics.push(parseDiagnostic(line, `Use "${colonLayoutHeader[1] ?? ''} .${directive}" for layouts; colon labels mark addresses.`));
33
+ const endDirective = directive === 'union' ? '.endunion' : '.endtype';
34
+ for (index += 1; index < pendingLines.length; index += 1) {
35
+ if (stripLineComment(pendingLines[index].text).trim() === endDirective) {
36
+ break;
37
+ }
38
+ }
39
+ continue;
40
+ }
41
+ const nameLeftTypeAlias = /^([A-Za-z_][A-Za-z0-9_]*)\s+\.typealias\s+(.+)$/.exec(stripLineComment(line.text).trim());
42
+ if (nameLeftTypeAlias) {
43
+ const typeExprText = nameLeftTypeAlias[2] ?? '';
44
+ const typeExpr = parseTypeExpr(typeExprText);
45
+ if (!typeExpr) {
46
+ diagnostics.push(parseDiagnostic(line, `invalid .typealias target: ${typeExprText}`));
47
+ }
48
+ else {
49
+ items.push({
50
+ kind: 'type-alias',
51
+ name: nameLeftTypeAlias[1] ?? '',
52
+ typeExpr,
53
+ span: { sourceName: line.sourceName, line: line.line, column: firstColumn(line.text) },
54
+ });
55
+ }
56
+ continue;
57
+ }
58
+ const typeAlias = /^\.type\s+([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(.+)$/.exec(stripLineComment(line.text).trim());
59
+ if (typeAlias) {
60
+ diagnostics.push(parseDiagnostic(line, `Use "${typeAlias[1] ?? ''} .typealias ..." for type aliases.`));
61
+ continue;
62
+ }
63
+ const nameLeftLayoutHeader = /^([A-Za-z_][A-Za-z0-9_]*)\s+\.(type|union)\s*$/.exec(stripLineComment(line.text).trim());
64
+ const prefixLayoutHeader = /^\.(type|union)\s+([A-Za-z_][A-Za-z0-9_]*)\s*$/.exec(stripLineComment(line.text).trim());
65
+ if (prefixLayoutHeader) {
66
+ const directive = prefixLayoutHeader[1] ?? 'type';
67
+ diagnostics.push(parseDiagnostic(line, `Use "${prefixLayoutHeader[2] ?? ''} .${directive}" for layouts.`));
68
+ const endDirective = directive === 'union' ? '.endunion' : '.endtype';
69
+ for (index += 1; index < pendingLines.length; index += 1) {
70
+ if (stripLineComment(pendingLines[index].text).trim() === endDirective) {
71
+ break;
72
+ }
73
+ }
74
+ continue;
75
+ }
76
+ const layoutHeader = nameLeftLayoutHeader
77
+ ? {
78
+ directive: nameLeftLayoutHeader[2] ?? '',
79
+ name: nameLeftLayoutHeader[1] ?? '',
80
+ }
81
+ : undefined;
27
82
  if (layoutHeader) {
28
- const layoutKind = (layoutHeader[1] ?? '').toLowerCase() === 'union' ? 'union' : 'record';
83
+ const layoutKind = layoutHeader.directive === 'union' ? 'union' : 'record';
29
84
  const endDirective = layoutKind === 'union' ? '.endunion' : '.endtype';
30
85
  const fields = [];
31
86
  let terminated = false;
@@ -35,23 +90,23 @@ export function parseNextSourceItems(lines, options = {}) {
35
90
  if (fieldText.length === 0) {
36
91
  continue;
37
92
  }
38
- if (fieldText.toLowerCase() === endDirective) {
93
+ if (fieldText === endDirective) {
39
94
  terminated = true;
40
95
  break;
41
96
  }
42
97
  const field = parseLayoutField(fieldText);
43
98
  if (!field) {
44
- diagnostics.push(parseDiagnostic(fieldLine, `invalid .${layoutHeader[1]} field declaration`));
99
+ diagnostics.push(parseDiagnostic(fieldLine, `invalid .${layoutHeader.directive} field declaration`));
45
100
  continue;
46
101
  }
47
102
  fields.push(field);
48
103
  }
49
104
  if (!terminated) {
50
- diagnostics.push(parseDiagnostic(line, `.${layoutHeader[1] ?? ''} ${layoutHeader[2] ?? ''} missing ${endDirective}`));
105
+ diagnostics.push(parseDiagnostic(line, `.${layoutHeader.directive} ${layoutHeader.name} missing ${endDirective}`));
51
106
  }
52
107
  items.push({
53
108
  kind: 'type',
54
- name: layoutHeader[2] ?? '',
109
+ name: layoutHeader.name,
55
110
  layoutKind,
56
111
  fields,
57
112
  span: { sourceName: line.sourceName, line: line.line, column: firstColumn(line.text) },
@@ -78,6 +133,134 @@ export function parseNextSourceItems(lines, options = {}) {
78
133
  }
79
134
  return { diagnostics, items };
80
135
  }
136
+ function applyConditionalAssembly(lines, diagnostics, directiveAliasPolicy) {
137
+ const out = [];
138
+ const equates = new Map();
139
+ const locationDependentEquates = new Set();
140
+ const stack = [];
141
+ for (const line of lines) {
142
+ const text = stripLineComment(line.text).trim();
143
+ const ifDirective = /^\.if\s+(.+)$/.exec(text);
144
+ if (ifDirective) {
145
+ const parentActive = conditionalActive(stack);
146
+ const expressionText = ifDirective[1] ?? '';
147
+ const value = parentActive
148
+ ? evaluateConditionalExpression(line, expressionText, equates, locationDependentEquates, diagnostics)
149
+ : undefined;
150
+ const conditionActive = parentActive && value !== undefined && value !== 0;
151
+ stack.push({ line, parentActive, conditionActive, elseSeen: false });
152
+ continue;
153
+ }
154
+ if (/^\.else\s*$/.test(text)) {
155
+ const frame = stack.pop();
156
+ if (!frame) {
157
+ diagnostics.push(parseDiagnostic(line, 'unmatched .else'));
158
+ continue;
159
+ }
160
+ if (frame.elseSeen) {
161
+ diagnostics.push(parseDiagnostic(line, 'duplicate .else'));
162
+ }
163
+ stack.push({
164
+ line: frame.line,
165
+ parentActive: frame.parentActive,
166
+ conditionActive: frame.parentActive && !frame.conditionActive,
167
+ elseSeen: true,
168
+ });
169
+ continue;
170
+ }
171
+ if (/^\.endif\s*$/.test(text)) {
172
+ if (!stack.pop()) {
173
+ diagnostics.push(parseDiagnostic(line, 'unmatched .endif'));
174
+ }
175
+ continue;
176
+ }
177
+ if (!conditionalActive(stack)) {
178
+ continue;
179
+ }
180
+ out.push(line);
181
+ recordConditionalEquate(line, equates, locationDependentEquates, directiveAliasPolicy);
182
+ }
183
+ for (const frame of stack) {
184
+ diagnostics.push(parseDiagnostic(frame.line, 'unterminated .if'));
185
+ }
186
+ return { lines: out };
187
+ }
188
+ function conditionalActive(stack) {
189
+ return stack.every((frame) => frame.parentActive && frame.conditionActive);
190
+ }
191
+ function evaluateConditionalExpression(line, expressionText, equates, locationDependentEquates, diagnostics) {
192
+ const expression = parseExpression(expressionText);
193
+ if (!expression) {
194
+ diagnostics.push(parseDiagnostic(line, `invalid .if expression: ${expressionText}`));
195
+ return undefined;
196
+ }
197
+ if (expressionReferencesCurrentLocation(expression, equates, locationDependentEquates)) {
198
+ diagnostics.push(parseDiagnostic(line, 'invalid .if expression: current location is not available during conditional assembly'));
199
+ return undefined;
200
+ }
201
+ return evaluateExpression(expression, {}, equates, { sourceName: line.sourceName, line: line.line, column: firstColumn(line.text) }, diagnostics, { currentLocation: 0 });
202
+ }
203
+ function recordConditionalEquate(line, equates, locationDependentEquates, directiveAliasPolicy) {
204
+ const text = normalizeDirectiveAlias(stripLineComment(line.text), directiveAliasPolicy).trim();
205
+ const statement = /^(@?[A-Za-z_.$?][A-Za-z0-9_.$?]*):\s*(.+)$/.exec(text);
206
+ if (statement && /^\.equ\b/.test(statement[2] ?? '')) {
207
+ return;
208
+ }
209
+ const equ = /^([A-Za-z_.$?][A-Za-z0-9_.$?]*)\s+\.equ\s+(.+)$/.exec(text);
210
+ if (!equ) {
211
+ return;
212
+ }
213
+ const name = equ[1] ?? '';
214
+ const expressionText = equ[2] ?? '';
215
+ const expression = parseExpression(expressionText);
216
+ if (!expression) {
217
+ return;
218
+ }
219
+ if (expressionReferencesCurrentLocation(expression, equates, locationDependentEquates)) {
220
+ locationDependentEquates.add(canonicalConditionalSymbolKey(name));
221
+ }
222
+ equates.set(name, {
223
+ expression,
224
+ span: { sourceName: line.sourceName, line: line.line, column: firstColumn(line.text) },
225
+ currentLocation: 0,
226
+ });
227
+ }
228
+ function expressionReferencesCurrentLocation(expression, equates, locationDependentEquates, visiting = new Set()) {
229
+ switch (expression.kind) {
230
+ case 'current-location':
231
+ return true;
232
+ case 'symbol': {
233
+ if (locationDependentEquates.has(canonicalConditionalSymbolKey(expression.name))) {
234
+ return true;
235
+ }
236
+ const lookup = lookupEquateRecord(equates, expression.name);
237
+ if (!lookup || visiting.has(canonicalConditionalSymbolKey(lookup.key))) {
238
+ return false;
239
+ }
240
+ const nextVisiting = new Set(visiting);
241
+ nextVisiting.add(canonicalConditionalSymbolKey(lookup.key));
242
+ return expressionReferencesCurrentLocation(lookup.record.expression, equates, locationDependentEquates, nextVisiting);
243
+ }
244
+ case 'byte-function':
245
+ case 'unary':
246
+ return expressionReferencesCurrentLocation(expression.expression, equates, locationDependentEquates, visiting);
247
+ case 'binary':
248
+ return (expressionReferencesCurrentLocation(expression.left, equates, locationDependentEquates, visiting) ||
249
+ expressionReferencesCurrentLocation(expression.right, equates, locationDependentEquates, visiting));
250
+ case 'layout-cast':
251
+ return (expressionReferencesCurrentLocation(expression.base, equates, locationDependentEquates, visiting) ||
252
+ expression.path.some((part) => part.kind === 'index' &&
253
+ expressionReferencesCurrentLocation(part.expression, equates, locationDependentEquates, visiting)));
254
+ case 'number':
255
+ case 'type-size':
256
+ case 'sizeof':
257
+ case 'offset':
258
+ return false;
259
+ }
260
+ }
261
+ function canonicalConditionalSymbolKey(name) {
262
+ return name.toLowerCase();
263
+ }
81
264
  export function compileSource(sourceText, options = {}) {
82
265
  const source = createSourceFile(options.entryName ?? '<memory>', sourceText);
83
266
  const { diagnostics, items } = parseNextSourceItems(scanLogicalLines(source));
@@ -107,7 +290,7 @@ function isPostEndParseAllowed(text) {
107
290
  return /^(?:\.binfrom|\.binto|binfrom|binto)\b/i.test(stripLineComment(text).trim());
108
291
  }
109
292
  function parseLayoutField(text) {
110
- const match = /^([A-Za-z_][A-Za-z0-9_]*)\s+(\.(?:field|byte|word|addr))(?:\s+(.+))?$/i.exec(text);
293
+ const match = /^([A-Za-z_][A-Za-z0-9_]*)\s+(\.(?:field|byte|word|addr))(?:\s+(.+))?$/.exec(text);
111
294
  if (!match) {
112
295
  return undefined;
113
296
  }
@@ -663,9 +663,11 @@ function renameSourceItem(item, localLabelMap) {
663
663
  ...item,
664
664
  instruction: renameInstructionExpressions(item.instruction, localLabelMap),
665
665
  };
666
+ case 'comment':
666
667
  case 'end':
667
668
  case 'enum':
668
669
  case 'type':
670
+ case 'type-alias':
669
671
  case 'string-data':
670
672
  return item;
671
673
  }
@@ -12,6 +12,10 @@ export type Expression = {
12
12
  } | {
13
13
  readonly kind: 'sizeof';
14
14
  readonly typeExpr: TypeExpr;
15
+ } | {
16
+ readonly kind: 'byte-function';
17
+ readonly function: 'LSB' | 'MSB';
18
+ readonly expression: Expression;
15
19
  } | {
16
20
  readonly kind: 'offset';
17
21
  readonly typeExpr: TypeExpr;
@@ -14,6 +14,12 @@ export type SourceItem = {
14
14
  } | {
15
15
  readonly kind: 'label';
16
16
  readonly name: string;
17
+ readonly isEntry?: boolean;
18
+ readonly span: SourceSpan;
19
+ } | {
20
+ readonly kind: 'comment';
21
+ readonly text: string;
22
+ readonly origin: 'user' | 'generated';
17
23
  readonly span: SourceSpan;
18
24
  } | {
19
25
  readonly kind: 'db';
@@ -54,6 +60,11 @@ export type SourceItem = {
54
60
  readonly layoutKind: 'record' | 'union';
55
61
  readonly fields: readonly LayoutField[];
56
62
  readonly span: SourceSpan;
63
+ } | {
64
+ readonly kind: 'type-alias';
65
+ readonly name: string;
66
+ readonly typeExpr: TypeExpr;
67
+ readonly span: SourceSpan;
57
68
  } | {
58
69
  readonly kind: 'string-data';
59
70
  readonly directive: 'cstr' | 'pstr' | 'istr';
@@ -1,13 +1,11 @@
1
1
  import { writeBin } from './write-bin.js';
2
2
  import { writeD8m } from './write-d8.js';
3
3
  import { writeHex } from './write-hex.js';
4
- import { writeListing } from './write-listing.js';
5
4
  import { writeAsm80 } from './write-asm80.js';
6
5
  /** Default in-memory writers for Stage 12 compile API. */
7
6
  export const defaultFormatWriters = {
8
7
  writeBin,
9
8
  writeHex,
10
9
  writeD8m,
11
- writeListing,
12
10
  writeAsm80,
13
11
  };
@@ -21,7 +21,7 @@ export interface EmittedSourceSegment {
21
21
  kind: D8mSegmentKind;
22
22
  confidence: D8mSegmentConfidence;
23
23
  }
24
- /** Symbol metadata shared by listing and D8 writers. */
24
+ /** Symbol metadata shared by output writers. */
25
25
  export type SymbolEntry = {
26
26
  kind: 'label' | 'data';
27
27
  name: string;
@@ -50,12 +50,6 @@ export interface HexArtifact {
50
50
  path?: string;
51
51
  text: string;
52
52
  }
53
- /** Listing artifact. */
54
- export interface ListingArtifact {
55
- kind: 'lst';
56
- path?: string;
57
- text: string;
58
- }
59
53
  /** In-memory register-care audit report artifact. */
60
54
  export interface RegisterCareReportArtifact {
61
55
  kind: 'register-care-report';
@@ -122,7 +116,6 @@ export interface D8mGenerator {
122
116
  version?: string;
123
117
  inputs?: {
124
118
  entry?: string;
125
- listing?: string;
126
119
  hex?: string;
127
120
  bin?: string;
128
121
  };
@@ -153,16 +146,11 @@ export interface WriteBinOptions {
153
146
  binFrom?: number;
154
147
  startAddress?: number;
155
148
  }
156
- export interface WriteListingOptions {
157
- lineEnding?: '\n' | '\r\n';
158
- bytesPerLine?: number;
159
- }
160
149
  export interface WriteD8mOptions {
161
150
  rootDir?: string;
162
151
  packageVersion?: string;
163
152
  inputs?: {
164
153
  entry?: string;
165
- listing?: string;
166
154
  hex?: string;
167
155
  bin?: string;
168
156
  };
@@ -171,12 +159,11 @@ export interface WriteD8mOptions {
171
159
  }
172
160
  export interface WriteAsm80Options {
173
161
  }
174
- export type Artifact = BinArtifact | HexArtifact | ListingArtifact | D8mArtifact | Asm80Artifact | RegisterCareReportArtifact | RegisterCareInterfaceArtifact | RegisterCareAnnotationsArtifact;
175
- /** Writer contract used by the Stage 12 compile API. */
162
+ export type Artifact = BinArtifact | HexArtifact | D8mArtifact | Asm80Artifact | RegisterCareReportArtifact | RegisterCareInterfaceArtifact | RegisterCareAnnotationsArtifact;
163
+ /** Writer contract used by the compile API. */
176
164
  export interface FormatWriters {
177
165
  writeHex(map: EmittedByteMap, symbols: readonly SymbolEntry[], opts?: WriteHexOptions): HexArtifact;
178
166
  writeBin(map: EmittedByteMap, symbols: readonly SymbolEntry[], opts?: WriteBinOptions): BinArtifact;
179
167
  writeD8m(map: EmittedByteMap, symbols: readonly SymbolEntry[], opts?: WriteD8mOptions): D8mArtifact;
180
- writeListing?(map: EmittedByteMap, symbols: readonly SymbolEntry[], opts?: WriteListingOptions): ListingArtifact;
181
168
  writeAsm80?(items: readonly SourceItem[], symbols: readonly SymbolEntry[], opts?: WriteAsm80Options): Asm80Artifact;
182
169
  }