@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
@@ -1,376 +0,0 @@
1
- /**
2
- * Frontend AST contracts for AZM.
3
- *
4
- * This module intentionally defines types/interfaces only (no parsing/semantics).
5
- * Later PRs extend these contracts via coordinated changes.
6
- */
7
- export interface SourcePosition {
8
- /** 1-based line number. */
9
- line: number;
10
- /** 1-based column number. */
11
- column: number;
12
- /** 0-based byte offset in the file. */
13
- offset: number;
14
- }
15
- /**
16
- * Source span with inclusive start and end positions.
17
- */
18
- export interface SourceSpan {
19
- /** User-facing file path (as provided on input). */
20
- file: string;
21
- start: SourcePosition;
22
- end: SourcePosition;
23
- }
24
- /**
25
- * Base shape for all AST nodes.
26
- */
27
- export interface BaseNode {
28
- kind: string;
29
- span: SourceSpan;
30
- }
31
- /**
32
- * Parsed compilation unit, including the entry file and all loaded source files.
33
- */
34
- export interface ProgramNode extends BaseNode {
35
- kind: 'Program';
36
- entryFile: string;
37
- files: SourceFileNode[];
38
- }
39
- /**
40
- * A single AZM source file.
41
- */
42
- export interface SourceFileNode extends BaseNode {
43
- kind: 'SourceFile';
44
- path: string;
45
- items: SourceItemNode[];
46
- }
47
- interface AsmEquNode extends BaseNode {
48
- kind: 'AsmEqu';
49
- name: string;
50
- exprText: string;
51
- }
52
- interface AsmOrgNode extends BaseNode {
53
- kind: 'AsmOrg';
54
- exprText: string;
55
- }
56
- interface AsmBinFromNode extends BaseNode {
57
- kind: 'AsmBinFrom';
58
- exprText: string;
59
- }
60
- interface AsmBinToNode extends BaseNode {
61
- kind: 'AsmBinTo';
62
- exprText: string;
63
- }
64
- interface AsmEndNode extends BaseNode {
65
- kind: 'AsmEnd';
66
- }
67
- interface AsmAlignNode extends BaseNode {
68
- kind: 'AsmAlign';
69
- value: ImmExprNode;
70
- }
71
- type AsmRawDataValueNode = ImmExprNode | {
72
- kind: 'AsmString';
73
- value: string;
74
- };
75
- export type AsmRawDataNode = {
76
- kind: 'AsmRawData';
77
- span: SourceSpan;
78
- name?: string;
79
- directive: 'db' | 'dw' | 'cstr' | 'pstr' | 'istr';
80
- values: AsmRawDataValueNode[];
81
- valuesText?: string;
82
- } | {
83
- kind: 'AsmRawData';
84
- span: SourceSpan;
85
- name?: string;
86
- directive: 'ds';
87
- values?: AsmRawDataValueNode[];
88
- size?: ImmExprNode;
89
- fill?: ImmExprNode;
90
- valuesText?: string;
91
- };
92
- /**
93
- * Top-level items permitted in a source file.
94
- */
95
- export type SourceItemNode = AsmEquNode | AsmOrgNode | AsmBinFromNode | AsmBinToNode | AsmEndNode | AsmAlignNode | AsmRawDataNode | AsmLabelNode | AsmInstructionNode | EnumDeclNode | UnionDeclNode | TypeDeclNode | OpDeclNode;
96
- /**
97
- * Packed record layout declaration.
98
- */
99
- export interface TypeDeclNode extends BaseNode {
100
- kind: 'TypeDecl';
101
- name: string;
102
- typeExpr: Extract<TypeExprNode, {
103
- kind: 'RecordType';
104
- }>;
105
- }
106
- /**
107
- * Union declaration.
108
- */
109
- export interface UnionDeclNode extends BaseNode {
110
- kind: 'UnionDecl';
111
- name: string;
112
- fields: RecordFieldNode[];
113
- }
114
- /**
115
- * Enum declaration.
116
- */
117
- export interface EnumDeclNode extends BaseNode {
118
- kind: 'EnumDecl';
119
- name: string;
120
- members: string[];
121
- }
122
- /**
123
- * `op` (macro-instruction) declaration.
124
- */
125
- export interface OpDeclNode extends BaseNode {
126
- kind: 'OpDecl';
127
- name: string;
128
- params: OpParamNode[];
129
- body: AsmBlockNode;
130
- }
131
- /**
132
- * `op` parameter with a matcher type.
133
- */
134
- export interface OpParamNode extends BaseNode {
135
- kind: 'OpParam';
136
- name: string;
137
- matcher: OpMatcherNode;
138
- }
139
- /**
140
- * Operand matcher variants for `op` parameters.
141
- */
142
- export type OpMatcherNode = {
143
- kind: 'MatcherReg8';
144
- span: SourceSpan;
145
- } | {
146
- kind: 'MatcherReg16';
147
- span: SourceSpan;
148
- } | {
149
- kind: 'MatcherIdx16';
150
- span: SourceSpan;
151
- } | {
152
- kind: 'MatcherCc';
153
- span: SourceSpan;
154
- } | {
155
- kind: 'MatcherImm8';
156
- span: SourceSpan;
157
- } | {
158
- kind: 'MatcherImm16';
159
- span: SourceSpan;
160
- } | {
161
- kind: 'MatcherEa';
162
- span: SourceSpan;
163
- } | {
164
- kind: 'MatcherMem8';
165
- span: SourceSpan;
166
- } | {
167
- kind: 'MatcherMem16';
168
- span: SourceSpan;
169
- } | {
170
- kind: 'MatcherFixed';
171
- span: SourceSpan;
172
- token: string;
173
- };
174
- /**
175
- * Instruction stream inside ASM source or an `op` body.
176
- */
177
- export interface AsmBlockNode extends BaseNode {
178
- kind: 'AsmBlock';
179
- items: AsmItemNode[];
180
- }
181
- /**
182
- * Items that can appear inside an instruction stream.
183
- */
184
- export type AsmItemNode = AsmInstructionNode | AsmLabelNode;
185
- /**
186
- * Label definition inside an `asm` stream.
187
- */
188
- export interface AsmLabelNode extends BaseNode {
189
- kind: 'AsmLabel';
190
- name: string;
191
- /** True when the source label used the ASM80-style `@Name:` entry marker. */
192
- isEntry?: boolean;
193
- }
194
- /**
195
- * Z80 instruction-like statement inside an `asm` stream.
196
- */
197
- export interface AsmInstructionNode extends BaseNode {
198
- kind: 'AsmInstruction';
199
- /** Canonical lower-case instruction mnemonic. */
200
- head: string;
201
- operands: AsmOperandNode[];
202
- /** Original unparsed operand tail for ASM80 source preservation. */
203
- operandText?: string;
204
- }
205
- /**
206
- * Operand variants in `asm` instructions.
207
- */
208
- export type AsmOperandNode = {
209
- kind: 'Reg';
210
- span: SourceSpan; /** Canonical upper-case register token. */
211
- name: string;
212
- } | {
213
- kind: 'Imm';
214
- span: SourceSpan;
215
- expr: ImmExprNode;
216
- } | {
217
- kind: 'Ea';
218
- span: SourceSpan;
219
- expr: EaExprNode;
220
- } | {
221
- kind: 'Mem';
222
- span: SourceSpan;
223
- expr: EaExprNode;
224
- } | {
225
- kind: 'PortC';
226
- span: SourceSpan;
227
- } | {
228
- kind: 'PortImm8';
229
- span: SourceSpan;
230
- expr: ImmExprNode;
231
- };
232
- /**
233
- * Type expression variants.
234
- */
235
- export type TypeExprNode = {
236
- kind: 'TypeName';
237
- span: SourceSpan;
238
- name: string;
239
- } | {
240
- kind: 'ArrayType';
241
- span: SourceSpan;
242
- element: TypeExprNode;
243
- length?: number;
244
- } | {
245
- kind: 'RecordType';
246
- span: SourceSpan;
247
- fields: RecordFieldNode[];
248
- };
249
- /**
250
- * Field inside a record type.
251
- */
252
- export interface RecordFieldNode extends BaseNode {
253
- kind: 'RecordField';
254
- name: string;
255
- typeExpr: TypeExprNode;
256
- }
257
- /**
258
- * Immediate-expression variants.
259
- */
260
- export type ImmExprNode = {
261
- kind: 'ImmLiteral';
262
- span: SourceSpan;
263
- value: number;
264
- } | {
265
- kind: 'ImmCurrentLocation';
266
- span: SourceSpan;
267
- } | {
268
- kind: 'ImmName';
269
- span: SourceSpan;
270
- name: string;
271
- } | {
272
- kind: 'ImmSizeof';
273
- span: SourceSpan;
274
- typeExpr: TypeExprNode;
275
- } | {
276
- kind: 'ImmOffset';
277
- span: SourceSpan;
278
- typeExpr: TypeExprNode;
279
- path: OffsetPathNode;
280
- } | {
281
- kind: 'ImmUnary';
282
- span: SourceSpan;
283
- op: '+' | '-' | '~';
284
- expr: ImmExprNode;
285
- } | {
286
- kind: 'ImmBinary';
287
- span: SourceSpan;
288
- op: '*' | '/' | '%' | '+' | '-' | '&' | '^' | '|' | '<<' | '>>';
289
- left: ImmExprNode;
290
- right: ImmExprNode;
291
- };
292
- /**
293
- * Effective-address expression variants.
294
- */
295
- export type EaExprNode = {
296
- kind: 'EaName';
297
- span: SourceSpan;
298
- name: string;
299
- } | {
300
- kind: 'EaImm';
301
- span: SourceSpan;
302
- expr: ImmExprNode;
303
- } | {
304
- kind: 'EaLayoutCast';
305
- span: SourceSpan;
306
- typeExpr: TypeExprNode;
307
- base: EaExprNode;
308
- } | {
309
- kind: 'EaField';
310
- span: SourceSpan;
311
- base: EaExprNode;
312
- field: string;
313
- } | {
314
- kind: 'EaIndex';
315
- span: SourceSpan;
316
- base: EaExprNode;
317
- index: EaIndexNode;
318
- } | {
319
- kind: 'EaAdd';
320
- span: SourceSpan;
321
- base: EaExprNode;
322
- offset: ImmExprNode;
323
- } | {
324
- kind: 'EaSub';
325
- span: SourceSpan;
326
- base: EaExprNode;
327
- offset: ImmExprNode;
328
- };
329
- /**
330
- * Index expression variants for effective addresses.
331
- */
332
- export type EaIndexNode = {
333
- kind: 'IndexImm';
334
- span: SourceSpan;
335
- value: ImmExprNode;
336
- } | {
337
- kind: 'IndexReg8';
338
- span: SourceSpan; /** Canonical upper-case reg8 token. */
339
- reg: string;
340
- } | {
341
- kind: 'IndexReg16';
342
- span: SourceSpan; /** Canonical upper-case reg16 token. */
343
- reg: string;
344
- } | {
345
- kind: 'IndexMemHL';
346
- span: SourceSpan;
347
- } | {
348
- kind: 'IndexMemIxIy';
349
- span: SourceSpan;
350
- /** Canonical upper-case base register token. */
351
- base: 'IX' | 'IY';
352
- /** Optional displacement imm expression (signed). */
353
- disp?: ImmExprNode;
354
- } | {
355
- kind: 'IndexEa';
356
- span: SourceSpan;
357
- expr: EaExprNode;
358
- };
359
- /**
360
- * Field path used by the `offset(Type, path)` built-in.
361
- */
362
- export interface OffsetPathNode extends BaseNode {
363
- kind: 'OffsetPath';
364
- base?: string;
365
- steps: OffsetPathStepNode[];
366
- }
367
- export type OffsetPathStepNode = {
368
- kind: 'OffsetField';
369
- span: SourceSpan;
370
- name: string;
371
- } | {
372
- kind: 'OffsetIndex';
373
- span: SourceSpan;
374
- expr: ImmExprNode;
375
- };
376
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,14 +0,0 @@
1
- type DirectiveAliasProfileName = 'azm';
2
- export type DirectiveAliasProfile = {
3
- name?: string;
4
- extends?: DirectiveAliasProfileName;
5
- directiveAliases?: Record<string, string>;
6
- };
7
- export type DirectiveAliasPolicy = {
8
- directiveAliases: Map<string, string>;
9
- };
10
- export declare function defaultDirectiveAliasProfileName(): DirectiveAliasProfileName;
11
- export declare function buildDirectiveAliasPolicy(profileName: DirectiveAliasProfileName, projectProfiles?: DirectiveAliasProfile[]): DirectiveAliasPolicy;
12
- export declare function readDirectiveAliasProfile(path: string): Promise<DirectiveAliasProfile>;
13
- export declare function resolveDirectiveAlias(head: string, policy: DirectiveAliasPolicy | undefined): string | undefined;
14
- export {};
@@ -1,189 +0,0 @@
1
- import { readFile } from 'node:fs/promises';
2
- import { TOP_LEVEL_KEYWORDS } from './grammarData.js';
3
- const RESERVED_INSTRUCTION_HEADS = new Set([
4
- 'adc',
5
- 'add',
6
- 'and',
7
- 'bit',
8
- 'call',
9
- 'ccf',
10
- 'cp',
11
- 'cpd',
12
- 'cpdr',
13
- 'cpi',
14
- 'cpir',
15
- 'cpl',
16
- 'daa',
17
- 'dec',
18
- 'di',
19
- 'djnz',
20
- 'ei',
21
- 'ex',
22
- 'exx',
23
- 'halt',
24
- 'im',
25
- 'in',
26
- 'inc',
27
- 'ind',
28
- 'indr',
29
- 'ini',
30
- 'inir',
31
- 'jp',
32
- 'jr',
33
- 'ld',
34
- 'ldd',
35
- 'lddr',
36
- 'ldi',
37
- 'ldir',
38
- 'neg',
39
- 'nop',
40
- 'or',
41
- 'otdr',
42
- 'otir',
43
- 'out',
44
- 'outd',
45
- 'outi',
46
- 'pop',
47
- 'push',
48
- 'res',
49
- 'ret',
50
- 'reti',
51
- 'retn',
52
- 'rl',
53
- 'rla',
54
- 'rlc',
55
- 'rlca',
56
- 'rld',
57
- 'rr',
58
- 'rra',
59
- 'rrc',
60
- 'rrca',
61
- 'rrd',
62
- 'rst',
63
- 'sbc',
64
- 'scf',
65
- 'set',
66
- 'sla',
67
- 'sll',
68
- 'sra',
69
- 'srl',
70
- 'sub',
71
- 'xor',
72
- ]);
73
- const CANONICAL_DIRECTIVES = new Set([
74
- '.align',
75
- '.binfrom',
76
- '.binto',
77
- '.cstr',
78
- '.db',
79
- '.ds',
80
- '.dw',
81
- '.end',
82
- '.equ',
83
- '.include',
84
- '.istr',
85
- '.org',
86
- '.pstr',
87
- ]);
88
- const BUILTIN_PROFILES = {
89
- azm: {
90
- name: 'azm',
91
- directiveAliases: {
92
- ALIGN: '.align',
93
- BINFROM: '.binfrom',
94
- BINTO: '.binto',
95
- CSTR: '.cstr',
96
- DB: '.db',
97
- DS: '.ds',
98
- DW: '.dw',
99
- END: '.end',
100
- EQU: '.equ',
101
- INCLUDE: '.include',
102
- ISTR: '.istr',
103
- ORG: '.org',
104
- PSTR: '.pstr',
105
- },
106
- },
107
- };
108
- export function defaultDirectiveAliasProfileName() {
109
- return 'azm';
110
- }
111
- function normalizeAliasKey(key) {
112
- const trimmed = key.trim();
113
- if (!/^[.]?[A-Za-z][A-Za-z0-9_]*$/.test(trimmed))
114
- return undefined;
115
- return trimmed.replace(/^\./, '').toLowerCase();
116
- }
117
- function normalizeAliasTarget(value) {
118
- const trimmed = value.trim().toLowerCase();
119
- const dotted = trimmed.startsWith('.') ? trimmed : `.${trimmed}`;
120
- if (!CANONICAL_DIRECTIVES.has(dotted))
121
- return undefined;
122
- return dotted;
123
- }
124
- function mergeProfile(profile, out, seen, source, baselineKeys = new Set()) {
125
- if (profile.extends) {
126
- if (seen.has(profile.extends)) {
127
- throw new Error(`Directive alias profile cycle at "${profile.extends}"`);
128
- }
129
- seen.add(profile.extends);
130
- mergeProfile(BUILTIN_PROFILES[profile.extends], out, seen, 'builtin', baselineKeys);
131
- seen.delete(profile.extends);
132
- }
133
- for (const [rawKey, rawTarget] of Object.entries(profile.directiveAliases ?? {})) {
134
- const key = normalizeAliasKey(rawKey);
135
- if (!key)
136
- throw new Error(`Invalid directive alias head "${rawKey}"`);
137
- if (source === 'project') {
138
- if (baselineKeys.has(key)) {
139
- throw new Error(`Directive alias "${rawKey}" conflicts with the AZM baseline`);
140
- }
141
- if (RESERVED_INSTRUCTION_HEADS.has(key)) {
142
- throw new Error(`Directive alias "${rawKey}" conflicts with a Z80 instruction`);
143
- }
144
- if (TOP_LEVEL_KEYWORDS.has(key)) {
145
- throw new Error(`Directive alias "${rawKey}" conflicts with an AZM language keyword`);
146
- }
147
- }
148
- const target = normalizeAliasTarget(rawTarget);
149
- if (!target)
150
- throw new Error(`Invalid directive alias target "${rawTarget}" for "${rawKey}"`);
151
- out.set(key, target);
152
- }
153
- }
154
- export function buildDirectiveAliasPolicy(profileName, projectProfiles = []) {
155
- const directiveAliases = new Map();
156
- mergeProfile(BUILTIN_PROFILES[profileName], directiveAliases, new Set([profileName]), 'builtin');
157
- const baselineKeys = new Set(directiveAliases.keys());
158
- for (const profile of projectProfiles) {
159
- mergeProfile(profile, directiveAliases, new Set(), 'project', baselineKeys);
160
- }
161
- return { directiveAliases };
162
- }
163
- export async function readDirectiveAliasProfile(path) {
164
- const text = await readFile(path, 'utf8');
165
- const parsed = JSON.parse(text);
166
- if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
167
- throw new Error(`Directive alias file "${path}" must contain a JSON object`);
168
- }
169
- const profile = parsed;
170
- if (profile.extends !== undefined && profile.extends !== 'azm') {
171
- throw new Error(`Unsupported directive alias base "${String(profile.extends)}" in "${path}"`);
172
- }
173
- if (profile.directiveAliases !== undefined &&
174
- (!profile.directiveAliases ||
175
- typeof profile.directiveAliases !== 'object' ||
176
- Array.isArray(profile.directiveAliases))) {
177
- throw new Error(`Directive alias file "${path}" has invalid "directiveAliases"`);
178
- }
179
- return profile;
180
- }
181
- export function resolveDirectiveAlias(head, policy) {
182
- const normalized = normalizeAliasKey(head);
183
- if (!normalized)
184
- return undefined;
185
- const dotted = `.${normalized}`;
186
- if (head.trim().startsWith('.') && CANONICAL_DIRECTIVES.has(dotted))
187
- return dotted;
188
- return policy?.directiveAliases.get(normalized);
189
- }
@@ -1,14 +0,0 @@
1
- export declare const TOP_LEVEL_KEYWORDS: Set<string>;
2
- export declare const ALL_REGISTER_NAMES: Set<string>;
3
- export declare const INDEX_REG8_NAMES: Set<string>;
4
- export declare const INDEX_REG16_NAMES: Set<string>;
5
- export declare const INDEX_MEM_BASE_REGISTERS: Set<string>;
6
- export declare const IMM_BINARY_OPERATOR_PRECEDENCE: Map<string, number>;
7
- export declare const IMM_BINARY_OPERATORS: Set<string>;
8
- export declare const IMM_UNARY_OPERATOR_SET: Set<string>;
9
- export declare const IMM_MULTI_CHAR_OPERATORS: Set<string>;
10
- export declare const CHAR_ESCAPE_VALUES: Map<string, number>;
11
- declare const MATCHER_TYPE_LIST: readonly ["reg8", "reg16", "idx16", "cc", "imm8", "imm16", "ea", "mem8", "mem16"];
12
- export declare const MATCHER_TYPES: Set<string>;
13
- export declare const MATCHER_KIND_BY_TYPE: Readonly<Record<(typeof MATCHER_TYPE_LIST)[number], 'MatcherReg8' | 'MatcherReg16' | 'MatcherIdx16' | 'MatcherCc' | 'MatcherImm8' | 'MatcherImm16' | 'MatcherEa' | 'MatcherMem8' | 'MatcherMem16'>>;
14
- export {};
@@ -1,65 +0,0 @@
1
- const TOP_LEVEL_KEYWORD_LIST = ['enum', 'type', 'union', 'op'];
2
- export const TOP_LEVEL_KEYWORDS = new Set(TOP_LEVEL_KEYWORD_LIST);
3
- const REGISTERS_8 = ['A', 'B', 'C', 'D', 'E', 'H', 'L'];
4
- const REGISTERS_8_EXTENDED = ['IXH', 'IXL', 'IYH', 'IYL', 'I', 'R'];
5
- const REGISTERS_16_GENERAL = ['HL', 'DE', 'BC', 'SP', 'IX', 'IY'];
6
- const REGISTERS_16_SPECIAL = ['AF'];
7
- const REGISTERS_16 = [...REGISTERS_16_GENERAL, ...REGISTERS_16_SPECIAL];
8
- const REGISTERS_16_SHADOW = ["AF'"];
9
- const ALL_REGISTER_NAME_LIST = [
10
- ...REGISTERS_8,
11
- ...REGISTERS_8_EXTENDED,
12
- ...REGISTERS_16,
13
- ...REGISTERS_16_SHADOW,
14
- ];
15
- export const ALL_REGISTER_NAMES = new Set(ALL_REGISTER_NAME_LIST);
16
- export const INDEX_REG8_NAMES = new Set(REGISTERS_8);
17
- const INDEX_REG16_LIST = ['HL', 'DE', 'BC'];
18
- export const INDEX_REG16_NAMES = new Set(INDEX_REG16_LIST);
19
- const INDEX_MEM_BASE_REGISTER_LIST = ['IX', 'IY'];
20
- export const INDEX_MEM_BASE_REGISTERS = new Set(INDEX_MEM_BASE_REGISTER_LIST);
21
- const IMM_OPERATOR_PRECEDENCE = [
22
- { level: 7, ops: ['*', '/', '%'] },
23
- { level: 6, ops: ['+', '-'] },
24
- { level: 5, ops: ['<<', '>>'] },
25
- { level: 4, ops: ['&'] },
26
- { level: 3, ops: ['^'] },
27
- { level: 2, ops: ['|'] },
28
- ];
29
- export const IMM_BINARY_OPERATOR_PRECEDENCE = new Map(IMM_OPERATOR_PRECEDENCE.flatMap(({ level, ops }) => ops.map((op) => [op, level])));
30
- export const IMM_BINARY_OPERATORS = new Set(IMM_BINARY_OPERATOR_PRECEDENCE.keys());
31
- const IMM_UNARY_OPERATORS = ['+', '-', '~'];
32
- export const IMM_UNARY_OPERATOR_SET = new Set(IMM_UNARY_OPERATORS);
33
- export const IMM_MULTI_CHAR_OPERATORS = new Set(['<<', '>>']);
34
- export const CHAR_ESCAPE_VALUES = new Map([
35
- ['n', 10],
36
- ['r', 13],
37
- ['t', 9],
38
- ['0', 0],
39
- ['\\', 92],
40
- ["'", 39],
41
- ['"', 34],
42
- ]);
43
- const MATCHER_TYPE_LIST = [
44
- 'reg8',
45
- 'reg16',
46
- 'idx16',
47
- 'cc',
48
- 'imm8',
49
- 'imm16',
50
- 'ea',
51
- 'mem8',
52
- 'mem16',
53
- ];
54
- export const MATCHER_TYPES = new Set(MATCHER_TYPE_LIST);
55
- export const MATCHER_KIND_BY_TYPE = {
56
- reg8: 'MatcherReg8',
57
- reg16: 'MatcherReg16',
58
- idx16: 'MatcherIdx16',
59
- cc: 'MatcherCc',
60
- imm8: 'MatcherImm8',
61
- imm16: 'MatcherImm16',
62
- ea: 'MatcherEa',
63
- mem8: 'MatcherMem8',
64
- mem16: 'MatcherMem16',
65
- };
@@ -1,2 +0,0 @@
1
- import type { ImmExprNode } from './ast.js';
2
- export declare function containsCurrentLocation(expr: ImmExprNode): boolean;
@@ -1,12 +0,0 @@
1
- export function containsCurrentLocation(expr) {
2
- switch (expr.kind) {
3
- case 'ImmCurrentLocation':
4
- return true;
5
- case 'ImmUnary':
6
- return containsCurrentLocation(expr.expr);
7
- case 'ImmBinary':
8
- return containsCurrentLocation(expr.left) || containsCurrentLocation(expr.right);
9
- default:
10
- return false;
11
- }
12
- }
@@ -1,17 +0,0 @@
1
- import type { Diagnostic } from '../diagnosticTypes.js';
2
- import type { SourceItemNode, SourceSpan } from './ast.js';
3
- import type { DirectiveAliasPolicy } from './directiveAliases.js';
4
- import type { ParseItemContext } from './parseSourceItemDispatch.js';
5
- /** Parses one source-file line of ASM flat assembler directives. */
6
- export declare function parseAsmFlatDirectiveLine(args: {
7
- rest: string;
8
- stmtSpan: SourceSpan;
9
- filePath: string;
10
- lineNo: number;
11
- diagnostics: Diagnostic[];
12
- ctx: Extract<ParseItemContext, {
13
- scope: 'source';
14
- }>;
15
- aliasPolicy?: DirectiveAliasPolicy;
16
- stringEquates: Map<string, string>;
17
- }): SourceItemNode[] | undefined;