@jhlagado/azm 0.2.1 → 0.2.3

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 +176 -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 +80 -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
@@ -55,7 +55,6 @@ same base path.
55
55
  | -------------- | -------------------------------- |
56
56
  | `.hex` | Intel HEX output |
57
57
  | `.bin` | flat binary output |
58
- | `.lst` | listing with bytes and symbols |
59
58
  | `.d8.json` | Debug80 map |
60
59
  | `.z80` | lowered assembler source |
61
60
  | `.regcare.txt` | register-care report |
@@ -64,7 +63,7 @@ same base path.
64
63
  Disable standard artifacts when they are not needed:
65
64
 
66
65
  ```sh
67
- azm --nolist --nod8m program.asm
66
+ azm --nod8m program.asm
68
67
  azm --nobin --nohex --reg-report --rc audit program.asm
69
68
  ```
70
69
 
@@ -74,13 +73,12 @@ azm --nobin --nohex --reg-report --rc audit program.asm
74
73
  | --------------------------------------------- | -------------------------------------------------------------------- |
75
74
  | `-o, --output <file>` | Primary output path. The extension must match `--type`. |
76
75
  | `-t, --type <hex\|bin>` | Primary output type. Default: `hex`. |
77
- | `-n, --nolist` | Do not write `.lst`. |
78
76
  | `--nobin` | Do not write `.bin`. |
79
77
  | `--nohex` | Do not write `.hex`. |
80
78
  | `--nod8m` | Do not write `.d8.json`. |
81
79
  | `--asm80` | Write lowered assembler source as `.z80`. |
82
80
  | `--source-root <dir>` | Emit project-relative source paths in `.d8.json`. |
83
- | `--case-style <mode>` | Lint opcode/register case: `off`, `upper`, `lower`, or `consistent`. |
81
+ | `--case-style <mode>` | Lint mnemonic/register/op-head case: `off`, `upper`, `lower`, or `consistent`. |
84
82
  | `--rc, --register-care <mode>` | Register-care mode: `off`, `audit`, `warn`, `error`, or `strict`. |
85
83
  | `--reg-report, --emit-register-report` | Write `.regcare.txt`. |
86
84
  | `--reg-interface, --emit-register-interface` | Write inferred `.asmi` interface. |
@@ -96,6 +94,10 @@ azm --nobin --nohex --reg-report --rc audit program.asm
96
94
 
97
95
  ## Debug80 Maps
98
96
 
97
+ `--case-style` is a source-style lint only. It checks instruction mnemonics,
98
+ register names, and visible `op` heads/bodies. It does not rename labels,
99
+ constants, directives, or compile-time functions.
100
+
99
101
  The `.d8.json` artifact records AZM as the generator, the package version, and
100
102
  the input/output paths used for the map. When `--source-root` is supplied, file
101
103
  keys and generator input paths are written relative to that directory with `/`
@@ -60,7 +60,6 @@ const result = await compile(
60
60
  includeDirs: ['/abs/path/to/includes'],
61
61
  sourceRoot: '/abs/path/to/project',
62
62
  d8mInputs: {
63
- listing: '/abs/path/to/project/build/main.lst',
64
63
  hex: '/abs/path/to/project/build/main.hex',
65
64
  bin: '/abs/path/to/project/build/main.bin',
66
65
  },
@@ -68,7 +67,6 @@ const result = await compile(
68
67
  emitBin: true,
69
68
  emitHex: true,
70
69
  emitD8m: true,
71
- emitListing: true,
72
70
  registerCare: 'audit',
73
71
  registerCareInterfaces: ['/abs/path/to/mon3.asmi'],
74
72
  },
@@ -125,7 +123,6 @@ The top-level map contains:
125
123
  version: '0.1.1',
126
124
  inputs: {
127
125
  entry: 'src/pacmo/pacmo.z80',
128
- listing: 'build/pacmo.lst',
129
126
  hex: 'build/pacmo.hex',
130
127
  bin: 'build/pacmo.bin',
131
128
  },
@@ -257,7 +254,7 @@ const result = await compile(
257
254
  **`emitAsm80` caveat:** Lowered `.z80` emission is gated but not universal.
258
255
  Unsupported instructions or operand forms throw `UnsupportedAsm80LoweringError`,
259
256
  surfaced as `AZMN_ASM80`. When assembly already succeeded, `compile()` still
260
- returns bin/hex/d8/listing artifacts alongside the asm80 error. Run
257
+ returns bin/hex/d8 artifacts alongside the asm80 error. Run
261
258
  `npm run check:asm80-coverage` on your sources before relying on lowered output.
262
259
 
263
260
  The compiler accepts flat `.asm` / `.z80` source, retained AZM assembler
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jhlagado/azm",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "AZM assembler for the Z80 family (Node.js CLI)",
5
5
  "license": "GPL-3.0-only",
6
6
  "engines": {
@@ -33,7 +33,6 @@
33
33
  },
34
34
  "files": [
35
35
  "dist/src",
36
- "dist/legacy-root-azm",
37
36
  "docs/reference/cli.md",
38
37
  "docs/reference/tooling-api.md"
39
38
  ],
@@ -86,7 +85,7 @@
86
85
  "next:typecheck": "tsc -p tsconfig.json --noEmit",
87
86
  "next:test": "vitest run --config vitest.config.ts",
88
87
  "next:check": "npm run next:typecheck && npm run next:test",
89
- "next:guardrails:core": "npm run next:check && npm run check:asm80-coverage && npm run next:diff-current:all",
88
+ "next:guardrails:core": "npm run next:check && npm run check:asm80-coverage && npm run test:ci:asm80-parity",
90
89
  "next:guardrails:package": "npm run test:package || npm run next:guardrails:package:local",
91
90
  "next:guardrails:package:local": "npm run build && vitest run -c vitest.config.ts test/integration/stage-16-package-smoke-local.test.ts && vitest run test/public_api_surface.test.ts",
92
91
  "next:guardrails:quality": "npm run lint && npm run check:source-file-sizes && node scripts/check-source-file-sizes.mjs",
@@ -95,9 +94,6 @@
95
94
  "format:check": "prettier -c .",
96
95
  "check:source-file-sizes": "node scripts/check-source-file-sizes.mjs",
97
96
  "check:source-file-sizes:enforce": "node scripts/check-source-file-sizes.mjs --enforce-hard-cap",
98
- "next:diff-current": "node scripts/diff-against-current.mjs --fixtures-dir test/differential/fixtures --skip-unsupported",
99
- "next:diff-current:root": "node scripts/diff-against-current.mjs --fixtures-dir test/fixtures --skip-unsupported",
100
- "next:diff-current:all": "npm run next:diff-current && npm run next:diff-current:root",
101
97
  "prepack": "npm run build",
102
98
  "prepublishOnly": "npm run build",
103
99
  "azm": "npm run build && node dist/src/cli.js"
@@ -1,11 +0,0 @@
1
- import type { Diagnostic } from './diagnosticTypes.js';
2
- import type { LoadedProgram } from './sourceLoader.js';
3
- import type { CompilerOptions } from './pipeline.js';
4
- import { type CompileEnv } from './semantics/env.js';
5
- export interface AnalyzeProgramOptions extends Pick<CompilerOptions, 'caseStyle' | 'requireMain'> {
6
- }
7
- export interface AnalyzeProgramResult {
8
- diagnostics: Diagnostic[];
9
- env?: CompileEnv;
10
- }
11
- export declare function analyzeLoadedProgram(loadedProgram: LoadedProgram, options?: AnalyzeProgramOptions): AnalyzeProgramResult;
@@ -1,41 +0,0 @@
1
- import { hasErrors } from './compileShared.js';
2
- import { DiagnosticIds } from './diagnosticTypes.js';
3
- import { lintCaseStyle } from './lintCaseStyle.js';
4
- import { buildEnv } from './semantics/env.js';
5
- function hasMainEntryLabel(program) {
6
- return program.files.some((sourceFile) => sourceFile.items.some((item) => item.kind === 'AsmLabel' && item.name.toLowerCase() === 'main'));
7
- }
8
- export function analyzeLoadedProgram(loadedProgram, options = {}) {
9
- const diagnostics = [];
10
- const { program, sourceTexts } = loadedProgram;
11
- const hasProgramItems = program.files.some((sourceFile) => sourceFile.items.length > 0);
12
- if (!hasProgramItems) {
13
- diagnostics.push({
14
- id: DiagnosticIds.SemanticsError,
15
- severity: 'error',
16
- message: 'Program contains no declarations or instruction streams.',
17
- file: program.entryFile,
18
- ...(program.span?.start
19
- ? { line: program.span.start.line, column: program.span.start.column }
20
- : {}),
21
- });
22
- return { diagnostics };
23
- }
24
- if ((options.requireMain ?? false) && !hasMainEntryLabel(program)) {
25
- diagnostics.push({
26
- id: DiagnosticIds.SemanticsError,
27
- severity: 'error',
28
- message: 'Program must define a "main" entry label.',
29
- file: program.entryFile,
30
- ...(program.span?.start
31
- ? { line: program.span.start.line, column: program.span.start.column }
32
- : {}),
33
- });
34
- return { diagnostics };
35
- }
36
- lintCaseStyle(program, sourceTexts, options.caseStyle ?? 'off', diagnostics);
37
- const env = buildEnv(program, diagnostics);
38
- if (hasErrors(diagnostics))
39
- return { diagnostics };
40
- return { diagnostics, env };
41
- }
@@ -1,10 +0,0 @@
1
- import type { CompileFn } from './pipeline.js';
2
- /**
3
- * Compile an AZM/ASM80-family program starting from an entry file.
4
- *
5
- * - Expands textual includes transitively with deterministic cycle checks.
6
- * - Runs parse → semantics → lowering → format writers.
7
- * - Produces artifacts in-memory via `deps.formats`.
8
- * - Defaults to emitting BIN + HEX + D8M unless an emit flag is explicitly provided.
9
- */
10
- export declare const compile: CompileFn;
@@ -1,186 +0,0 @@
1
- import { dirname, extname } from 'node:path';
2
- import { readFile } from 'node:fs/promises';
3
- import { analyzeLoadedProgram } from './analysis.js';
4
- import { hasErrors, normalizePath } from './compileShared.js';
5
- import { DiagnosticIds } from './diagnosticTypes.js';
6
- import { buildDirectiveAliasPolicy, defaultDirectiveAliasProfileName, readDirectiveAliasProfile, } from './frontend/directiveAliases.js';
7
- import { isSupportedSourcePath } from './frontend/sourceExtensions.js';
8
- import { emitProgram } from './lowering/emit.js';
9
- import { loadProgram } from './sourceLoader.js';
10
- import { analyzeRegisterCare } from './registerCare/analyze.js';
11
- import { parseInterfaceContracts } from './registerCare/smartComments.js';
12
- import { readPackageVersion } from './packageInfo.js';
13
- function withDefaults(options) {
14
- const anyPrimaryEmitSpecified = [options.emitBin, options.emitHex, options.emitD8m].some((v) => v !== undefined);
15
- const emitBin = anyPrimaryEmitSpecified ? (options.emitBin ?? false) : true;
16
- const emitHex = anyPrimaryEmitSpecified ? (options.emitHex ?? false) : true;
17
- const emitD8m = anyPrimaryEmitSpecified ? (options.emitD8m ?? false) : true;
18
- // Listing is a sidecar artifact: default to on unless explicitly suppressed.
19
- const emitListing = options.emitListing ?? true;
20
- const emitAsm80 = options.emitAsm80 ?? false;
21
- return { emitBin, emitHex, emitD8m, emitListing, emitAsm80 };
22
- }
23
- /**
24
- * Compile an AZM/ASM80-family program starting from an entry file.
25
- *
26
- * - Expands textual includes transitively with deterministic cycle checks.
27
- * - Runs parse → semantics → lowering → format writers.
28
- * - Produces artifacts in-memory via `deps.formats`.
29
- * - Defaults to emitting BIN + HEX + D8M unless an emit flag is explicitly provided.
30
- */
31
- export const compile = async (entryFile, options, deps) => {
32
- const entryPath = normalizePath(entryFile);
33
- const diagnostics = [];
34
- const artifacts = [];
35
- if (!isSupportedSourcePath(entryPath)) {
36
- diagnostics.push({
37
- id: DiagnosticIds.Unknown,
38
- severity: 'error',
39
- message: 'Unsupported source file extension (expected .asm or .z80)',
40
- file: entryPath,
41
- });
42
- return { diagnostics, artifacts };
43
- }
44
- const projectAliasProfiles = [];
45
- for (const path of options.directiveAliasFiles ?? []) {
46
- projectAliasProfiles.push(await readDirectiveAliasProfile(normalizePath(path)));
47
- }
48
- const directiveAliasPolicy = buildDirectiveAliasPolicy(defaultDirectiveAliasProfileName(), projectAliasProfiles);
49
- const loaded = await loadProgram(entryPath, diagnostics, {
50
- ...options,
51
- directiveAliasPolicy,
52
- });
53
- if (!loaded)
54
- return { diagnostics, artifacts };
55
- const { program, sourceTexts, sourceLineComments } = loaded;
56
- if (hasErrors(diagnostics)) {
57
- return { diagnostics, artifacts };
58
- }
59
- const analysis = analyzeLoadedProgram(loaded, {
60
- ...(options.caseStyle !== undefined ? { caseStyle: options.caseStyle } : {}),
61
- ...(options.requireMain !== undefined ? { requireMain: options.requireMain } : {}),
62
- });
63
- diagnostics.push(...analysis.diagnostics);
64
- if (hasErrors(diagnostics) || !analysis.env)
65
- return { diagnostics, artifacts };
66
- const env = analysis.env;
67
- const registerCareMode = options.registerCare ?? 'off';
68
- const shouldAnalyzeRegisterCare = registerCareMode !== 'off' ||
69
- options.emitRegisterReport === true ||
70
- options.emitRegisterInterface === true ||
71
- options.emitRegisterAnnotations === true ||
72
- options.fixRegisterContracts === true ||
73
- (options.acceptRegisterOutputCandidates?.length ?? 0) > 0 ||
74
- (options.registerCareInterfaces?.length ?? 0) > 0;
75
- if (shouldAnalyzeRegisterCare) {
76
- const interfaceContracts = [];
77
- for (const path of options.registerCareInterfaces ?? []) {
78
- const resolved = normalizePath(path);
79
- if (extname(resolved).toLowerCase() !== '.asmi') {
80
- diagnostics.push({
81
- id: DiagnosticIds.Unknown,
82
- severity: 'error',
83
- message: 'Register-care interface files must use the .asmi extension',
84
- file: resolved,
85
- });
86
- continue;
87
- }
88
- const text = await readFile(resolved, 'utf8');
89
- interfaceContracts.push(...parseInterfaceContracts(text, resolved).values());
90
- }
91
- if (hasErrors(diagnostics))
92
- return { diagnostics, artifacts };
93
- const registerCare = analyzeRegisterCare(loaded, {
94
- mode: registerCareMode,
95
- emitReport: options.emitRegisterReport === true,
96
- emitInterface: options.emitRegisterInterface === true,
97
- emitAnnotations: options.emitRegisterAnnotations === true || options.fixRegisterContracts === true,
98
- fixRegisterContracts: options.fixRegisterContracts === true,
99
- ...(options.acceptRegisterOutputCandidates !== undefined
100
- ? { acceptOutputCandidates: options.acceptRegisterOutputCandidates }
101
- : {}),
102
- ...(options.registerCareProfile !== undefined
103
- ? { profile: options.registerCareProfile }
104
- : {}),
105
- ...(interfaceContracts.length > 0 ? { interfaceContracts } : {}),
106
- });
107
- diagnostics.push(...registerCare.diagnostics);
108
- if (registerCare.reportText !== undefined) {
109
- artifacts.push({ kind: 'register-care-report', text: registerCare.reportText });
110
- }
111
- if (registerCare.interfaceText !== undefined) {
112
- artifacts.push({ kind: 'register-care-interface', text: registerCare.interfaceText });
113
- }
114
- if (registerCare.annotatedFiles !== undefined) {
115
- artifacts.push({ kind: 'register-care-annotations', files: registerCare.annotatedFiles });
116
- }
117
- if (hasErrors(diagnostics)) {
118
- return { diagnostics, artifacts };
119
- }
120
- }
121
- const { map, symbols, placedLoweredAsmProgram } = emitProgram(program, env, diagnostics, {
122
- ...(options.includeDirs ? { includeDirs: options.includeDirs } : {}),
123
- ...(options.defaultCodeBase !== undefined ? { defaultCodeBase: options.defaultCodeBase } : {}),
124
- sourceTexts,
125
- sourceLineComments,
126
- });
127
- if (hasErrors(diagnostics)) {
128
- return { diagnostics, artifacts };
129
- }
130
- const emit = withDefaults(options);
131
- if (emit.emitBin) {
132
- artifacts.push(deps.formats.writeBin(map, symbols));
133
- }
134
- if (emit.emitHex) {
135
- artifacts.push(deps.formats.writeHex(map, symbols));
136
- }
137
- if (emit.emitD8m) {
138
- const mainEntry = symbols.find((s) => s.kind === 'label' && s.name.toLowerCase() === 'main');
139
- const d8mRoot = options.sourceRoot ?? dirname(entryPath);
140
- artifacts.push(deps.formats.writeD8m(map, symbols, {
141
- rootDir: d8mRoot,
142
- packageVersion: readPackageVersion(),
143
- inputs: {
144
- entry: entryPath,
145
- ...(options.d8mInputs?.listing !== undefined
146
- ? { listing: options.d8mInputs.listing }
147
- : {}),
148
- ...(options.d8mInputs?.hex !== undefined ? { hex: options.d8mInputs.hex } : {}),
149
- ...(options.d8mInputs?.bin !== undefined ? { bin: options.d8mInputs.bin } : {}),
150
- },
151
- ...(mainEntry
152
- ? {
153
- entrySymbol: mainEntry.name,
154
- entryAddress: mainEntry.address & 0xffff,
155
- }
156
- : {}),
157
- }));
158
- }
159
- if (emit.emitListing) {
160
- if (deps.formats.writeListing) {
161
- artifacts.push(deps.formats.writeListing(map, symbols));
162
- }
163
- else {
164
- diagnostics.push({
165
- id: DiagnosticIds.Unknown,
166
- severity: 'warning',
167
- message: 'emitListing=true but no listing writer is configured; skipping .lst artifact.',
168
- file: program.entryFile,
169
- });
170
- }
171
- }
172
- if (emit.emitAsm80) {
173
- if (deps.formats.writeAsm80) {
174
- artifacts.push(deps.formats.writeAsm80(placedLoweredAsmProgram));
175
- }
176
- else {
177
- diagnostics.push({
178
- id: DiagnosticIds.Unknown,
179
- severity: 'warning',
180
- message: 'emitAsm80=true but no asm80 writer is configured; skipping .asm artifact.',
181
- file: program.entryFile,
182
- });
183
- }
184
- }
185
- return { diagnostics, artifacts };
186
- };
@@ -1,3 +0,0 @@
1
- import type { Diagnostic } from './diagnosticTypes.js';
2
- export declare function hasErrors(diagnostics: Diagnostic[]): boolean;
3
- export declare function normalizePath(p: string): string;
@@ -1,7 +0,0 @@
1
- import { resolve } from 'node:path';
2
- export function hasErrors(diagnostics) {
3
- return diagnostics.some((d) => d.severity === 'error');
4
- }
5
- export function normalizePath(p) {
6
- return resolve(p);
7
- }
@@ -1,77 +0,0 @@
1
- /**
2
- * Severity level for a diagnostic.
3
- */
4
- export type DiagnosticSeverity = 'error' | 'warning' | 'info';
5
- /**
6
- * A compiler diagnostic (error/warning/info) with an optional source location.
7
- *
8
- * Diagnostics must have stable IDs so downstream tooling can rely on them.
9
- */
10
- export interface Diagnostic {
11
- /** Stable diagnostic identifier (e.g., `AZM001`). */
12
- id: DiagnosticId;
13
- severity: DiagnosticSeverity;
14
- message: string;
15
- file: string;
16
- /** 1-based line number, when known. */
17
- line?: number;
18
- /** 1-based column number, when known. */
19
- column?: number;
20
- }
21
- /**
22
- * Known diagnostic IDs.
23
- *
24
- * PR0 started with a minimal set; later PRs should extend this via contract changes.
25
- */
26
- export declare const DiagnosticIds: {
27
- /**
28
- * Unknown/unclassified diagnostic.
29
- *
30
- * Use a more specific ID when possible; this remains for forward compatibility.
31
- */
32
- readonly Unknown: "AZM000";
33
- /** Failed to read a source file from disk. */
34
- readonly IoReadFailed: "AZM001";
35
- /** Internal error during parsing (unexpected exception). */
36
- readonly InternalParseError: "AZM002";
37
- /** Include could not be resolved on any search path. */
38
- readonly IncludeNotFound: "AZM003";
39
- /** Generic parse error (syntax / unsupported in current PR subset). */
40
- readonly ParseError: "AZM100";
41
- /** Generic instruction encoding error (unsupported mnemonic/operands, out-of-range imm, etc.). */
42
- readonly EncodeError: "AZM200";
43
- /** Generic emission/lowering error (layout/packing/symbol collisions, etc.). */
44
- readonly EmitError: "AZM300";
45
- /** Generic emission/lowering warning. */
46
- readonly EmitWarning: "AZM301";
47
- /** Op invocation arity mismatch against available overload set. */
48
- readonly OpArityMismatch: "AZM310";
49
- /** No overload match for an op invocation with the provided operands. */
50
- readonly OpNoMatchingOverload: "AZM311";
51
- /** Ambiguous overload resolution for an op invocation. */
52
- readonly OpAmbiguousOverload: "AZM312";
53
- /** Cyclic op expansion detected in inline expansion graph. */
54
- readonly OpExpansionCycle: "AZM313";
55
- /** Op expansion produced an invalid concrete instruction after substitution. */
56
- readonly OpInvalidExpansion: "AZM314";
57
- /** Generic semantic evaluation error (env building, imm evaluation, etc.). */
58
- readonly SemanticsError: "AZM400";
59
- /** Divide by zero in an imm expression. */
60
- readonly ImmDivideByZero: "AZM401";
61
- /** Modulo by zero in an imm expression. */
62
- readonly ImmModuloByZero: "AZM402";
63
- /** Type/layout error (unknown type, recursion, missing array length, etc.). */
64
- readonly TypeError: "AZM403";
65
- /** Case-style lint warning for keyword/register casing policy. */
66
- readonly CaseStyleLint: "AZM500";
67
- /** Redundant outer parentheses in a constant-only array index expression. */
68
- readonly IndexParenRedundant: "AZM501";
69
- /** Register-care conflict where a call may destroy a live caller value. */
70
- readonly RegisterCareConflict: "AZM600";
71
- /** Register-care analysis cannot prove an external or indirect call contract. */
72
- readonly RegisterCareUnknownBoundary: "AZM601";
73
- };
74
- /**
75
- * Union type of all defined diagnostic IDs.
76
- */
77
- export type DiagnosticId = (typeof DiagnosticIds)[keyof typeof DiagnosticIds];
@@ -1,53 +0,0 @@
1
- /**
2
- * Known diagnostic IDs.
3
- *
4
- * PR0 started with a minimal set; later PRs should extend this via contract changes.
5
- */
6
- export const DiagnosticIds = {
7
- /**
8
- * Unknown/unclassified diagnostic.
9
- *
10
- * Use a more specific ID when possible; this remains for forward compatibility.
11
- */
12
- Unknown: 'AZM000',
13
- /** Failed to read a source file from disk. */
14
- IoReadFailed: 'AZM001',
15
- /** Internal error during parsing (unexpected exception). */
16
- InternalParseError: 'AZM002',
17
- /** Include could not be resolved on any search path. */
18
- IncludeNotFound: 'AZM003',
19
- /** Generic parse error (syntax / unsupported in current PR subset). */
20
- ParseError: 'AZM100',
21
- /** Generic instruction encoding error (unsupported mnemonic/operands, out-of-range imm, etc.). */
22
- EncodeError: 'AZM200',
23
- /** Generic emission/lowering error (layout/packing/symbol collisions, etc.). */
24
- EmitError: 'AZM300',
25
- /** Generic emission/lowering warning. */
26
- EmitWarning: 'AZM301',
27
- /** Op invocation arity mismatch against available overload set. */
28
- OpArityMismatch: 'AZM310',
29
- /** No overload match for an op invocation with the provided operands. */
30
- OpNoMatchingOverload: 'AZM311',
31
- /** Ambiguous overload resolution for an op invocation. */
32
- OpAmbiguousOverload: 'AZM312',
33
- /** Cyclic op expansion detected in inline expansion graph. */
34
- OpExpansionCycle: 'AZM313',
35
- /** Op expansion produced an invalid concrete instruction after substitution. */
36
- OpInvalidExpansion: 'AZM314',
37
- /** Generic semantic evaluation error (env building, imm evaluation, etc.). */
38
- SemanticsError: 'AZM400',
39
- /** Divide by zero in an imm expression. */
40
- ImmDivideByZero: 'AZM401',
41
- /** Modulo by zero in an imm expression. */
42
- ImmModuloByZero: 'AZM402',
43
- /** Type/layout error (unknown type, recursion, missing array length, etc.). */
44
- TypeError: 'AZM403',
45
- /** Case-style lint warning for keyword/register casing policy. */
46
- CaseStyleLint: 'AZM500',
47
- /** Redundant outer parentheses in a constant-only array index expression. */
48
- IndexParenRedundant: 'AZM501',
49
- /** Register-care conflict where a call may destroy a live caller value. */
50
- RegisterCareConflict: 'AZM600',
51
- /** Register-care analysis cannot prove an external or indirect call contract. */
52
- RegisterCareUnknownBoundary: 'AZM601',
53
- };
@@ -1,7 +0,0 @@
1
- import type { FormatWriters } from './types.js';
2
- /**
3
- * Default in-memory artifact writers.
4
- *
5
- * These writers implement the `FormatWriters` contract and return artifacts without writing to disk.
6
- */
7
- export declare const defaultFormatWriters: FormatWriters;
@@ -1,17 +0,0 @@
1
- import { writeBin } from './writeBin.js';
2
- import { writeD8m } from './writeD8m.js';
3
- import { writeHex } from './writeHex.js';
4
- import { writeListing } from './writeListing.js';
5
- import { writeAsm80 } from './writeAsm80.js';
6
- /**
7
- * Default in-memory artifact writers.
8
- *
9
- * These writers implement the `FormatWriters` contract and return artifacts without writing to disk.
10
- */
11
- export const defaultFormatWriters = {
12
- writeHex,
13
- writeBin,
14
- writeD8m,
15
- writeListing,
16
- writeAsm80,
17
- };
@@ -1,17 +0,0 @@
1
- import type { AddressRange, EmittedByteMap } from './types.js';
2
- /**
3
- * Compute contiguous written segments from an emitted byte map.
4
- *
5
- * - Segments are half-open `[start, end)`.
6
- * - Segment boundaries are based on concrete written byte addresses.
7
- * - For an empty map, `[]` is returned.
8
- */
9
- export declare function getWrittenSegments(map: EmittedByteMap): AddressRange[];
10
- /**
11
- * Compute the effective written range for an emitted byte map.
12
- *
13
- * - If `map.writtenRange` is present, it is returned directly.
14
- * - Otherwise, the range is derived from the min/max written addresses.
15
- * - For an empty map, `{ start: 0, end: 0 }` is returned.
16
- */
17
- export declare function getWrittenRange(map: EmittedByteMap): AddressRange;
@@ -1,45 +0,0 @@
1
- /**
2
- * Compute contiguous written segments from an emitted byte map.
3
- *
4
- * - Segments are half-open `[start, end)`.
5
- * - Segment boundaries are based on concrete written byte addresses.
6
- * - For an empty map, `[]` is returned.
7
- */
8
- export function getWrittenSegments(map) {
9
- if (map.bytes.size === 0)
10
- return [];
11
- const sorted = [...new Set(map.bytes.keys())].sort((a, b) => a - b);
12
- const segments = [];
13
- let start = sorted[0];
14
- let prev = start;
15
- for (let index = 1; index < sorted.length; index++) {
16
- const addr = sorted[index];
17
- if (addr <= prev + 1) {
18
- prev = addr;
19
- continue;
20
- }
21
- segments.push({ start, end: prev + 1 });
22
- start = addr;
23
- prev = addr;
24
- }
25
- segments.push({ start, end: prev + 1 });
26
- return segments;
27
- }
28
- /**
29
- * Compute the effective written range for an emitted byte map.
30
- *
31
- * - If `map.writtenRange` is present, it is returned directly.
32
- * - Otherwise, the range is derived from the min/max written addresses.
33
- * - For an empty map, `{ start: 0, end: 0 }` is returned.
34
- */
35
- export function getWrittenRange(map) {
36
- if (map.writtenRange)
37
- return map.writtenRange;
38
- const segments = getWrittenSegments(map);
39
- if (segments.length === 0)
40
- return { start: 0, end: 0 };
41
- return {
42
- start: segments[0].start,
43
- end: segments[segments.length - 1].end,
44
- };
45
- }