@jhlagado/azm 0.1.1 → 0.2.1
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.
- package/README.md +103 -70
- package/dist/{src → legacy-root-azm/src}/formats/index.d.ts +1 -1
- package/dist/{src → legacy-root-azm/src}/formats/index.js +1 -1
- package/dist/{src → legacy-root-azm/src}/formats/types.d.ts +67 -7
- package/dist/{src → legacy-root-azm/src}/formats/writeHex.d.ts +0 -1
- package/dist/{src → legacy-root-azm/src}/formats/writeHex.js +0 -1
- package/dist/{src → legacy-root-azm/src}/pipeline.d.ts +3 -5
- package/dist/legacy-root-azm/src/z80/effects.d.ts +3 -0
- package/dist/legacy-root-azm/src/z80/effects.js +516 -0
- package/dist/legacy-root-azm/src/z80/encode.d.ts +10 -0
- package/dist/legacy-root-azm/src/z80/encode.js +412 -0
- package/dist/src/api-compile.d.ts +49 -8
- package/dist/src/api-compile.js +313 -3
- package/dist/src/api-tooling.d.ts +7 -25
- package/dist/src/api-tooling.js +3 -21
- package/dist/src/assembly/address-planning.d.ts +19 -0
- package/dist/src/assembly/address-planning.js +268 -0
- package/dist/src/assembly/assemble-program.d.ts +13 -0
- package/dist/src/assembly/assemble-program.js +34 -0
- package/dist/src/assembly/fixup-emission.d.ts +10 -0
- package/dist/src/assembly/fixup-emission.js +247 -0
- package/dist/src/assembly/placement.d.ts +26 -0
- package/dist/src/assembly/placement.js +79 -0
- package/dist/src/assembly/program-emission.d.ts +13 -0
- package/dist/src/assembly/program-emission.js +268 -0
- package/dist/src/cli/parse-args.d.ts +29 -0
- package/dist/src/cli/parse-args.js +372 -0
- package/dist/src/cli/run.d.ts +2 -0
- package/dist/src/cli/run.js +35 -0
- package/dist/src/cli/write-artifacts.d.ts +21 -0
- package/dist/src/cli/write-artifacts.js +175 -0
- package/dist/src/cli.d.ts +1 -30
- package/dist/src/cli.js +20 -524
- package/dist/src/core/compile-artifacts.d.ts +26 -0
- package/dist/src/core/compile-artifacts.js +17 -0
- package/dist/src/core/compile.d.ts +26 -0
- package/dist/src/core/compile.js +164 -0
- package/dist/src/diagnostics/format.d.ts +4 -0
- package/dist/src/diagnostics/format.js +9 -0
- package/dist/src/expansion/op-expansion.d.ts +96 -0
- package/dist/src/expansion/op-expansion.js +913 -0
- package/dist/src/index.d.ts +14 -3
- package/dist/src/index.js +7 -2
- package/dist/src/model/diagnostic.d.ts +50 -0
- package/dist/src/model/diagnostic.js +29 -0
- package/dist/src/model/expression.d.ts +51 -0
- package/dist/src/model/expression.js +1 -0
- package/dist/src/model/fixup.d.ts +18 -0
- package/dist/src/model/fixup.js +1 -0
- package/dist/src/model/source-item.d.ts +87 -0
- package/dist/src/model/source-item.js +1 -0
- package/dist/src/model/symbol.d.ts +1 -0
- package/dist/src/model/symbol.js +1 -0
- package/dist/src/node/source-host.d.ts +19 -0
- package/dist/src/node/source-host.js +146 -0
- package/dist/src/outputs/hex.d.ts +1 -0
- package/dist/src/outputs/hex.js +75 -0
- package/dist/src/outputs/index.d.ts +3 -0
- package/dist/src/outputs/index.js +13 -0
- package/dist/src/outputs/range.d.ts +3 -0
- package/dist/src/outputs/range.js +31 -0
- package/dist/src/outputs/types.d.ts +182 -0
- package/dist/src/outputs/types.js +1 -0
- package/dist/src/outputs/write-asm80.d.ts +7 -0
- package/dist/src/outputs/write-asm80.js +666 -0
- package/dist/src/outputs/write-bin.d.ts +2 -0
- package/dist/src/outputs/write-bin.js +27 -0
- package/dist/src/outputs/write-d8.d.ts +2 -0
- package/dist/src/outputs/write-d8.js +257 -0
- package/dist/src/outputs/write-hex.d.ts +2 -0
- package/dist/src/outputs/write-hex.js +53 -0
- package/dist/src/outputs/write-listing.d.ts +2 -0
- package/dist/src/outputs/write-listing.js +79 -0
- package/dist/src/register-care/accept-output.d.ts +2 -0
- package/dist/src/register-care/accept-output.js +35 -0
- package/dist/src/register-care/analyze.d.ts +26 -0
- package/dist/src/register-care/analyze.js +115 -0
- package/dist/src/register-care/annotate.d.ts +11 -0
- package/dist/src/register-care/annotate.js +76 -0
- package/dist/src/register-care/annotations.d.ts +8 -0
- package/dist/src/register-care/annotations.js +41 -0
- package/dist/src/register-care/boundaryHints.d.ts +2 -0
- package/dist/src/register-care/boundaryHints.js +11 -0
- package/dist/src/register-care/carriers.d.ts +2 -0
- package/dist/src/register-care/carriers.js +78 -0
- package/dist/src/register-care/controlFlow.d.ts +5 -0
- package/dist/src/register-care/controlFlow.js +38 -0
- package/dist/src/register-care/fix.d.ts +11 -0
- package/dist/src/register-care/fix.js +130 -0
- package/dist/src/register-care/instruction-shape.d.ts +11 -0
- package/dist/src/register-care/instruction-shape.js +129 -0
- package/dist/src/register-care/liveness.d.ts +3 -0
- package/dist/src/register-care/liveness.js +197 -0
- package/dist/src/register-care/profiles.d.ts +9 -0
- package/dist/src/register-care/profiles.js +47 -0
- package/dist/src/register-care/programModel.d.ts +3 -0
- package/dist/src/register-care/programModel.js +188 -0
- package/dist/src/register-care/report.d.ts +5 -0
- package/dist/src/register-care/report.js +139 -0
- package/dist/src/register-care/routine-summaries.d.ts +6 -0
- package/dist/src/register-care/routine-summaries.js +89 -0
- package/dist/src/register-care/smartComments.d.ts +5 -0
- package/dist/src/register-care/smartComments.js +243 -0
- package/dist/src/register-care/sourceText.d.ts +8 -0
- package/dist/src/register-care/sourceText.js +15 -0
- package/dist/src/register-care/summaries.d.ts +12 -0
- package/dist/src/register-care/summaries.js +121 -0
- package/dist/src/register-care/summary.d.ts +3 -0
- package/dist/src/register-care/summary.js +474 -0
- package/dist/src/{registerCare → register-care}/tooling.d.ts +7 -6
- package/dist/src/{registerCare → register-care}/tooling.js +17 -6
- package/dist/src/register-care/types.d.ts +170 -0
- package/dist/src/register-care/types.js +1 -0
- package/dist/src/semantics/expression-evaluation.d.ts +29 -0
- package/dist/src/semantics/expression-evaluation.js +409 -0
- package/dist/src/source/logical-lines.d.ts +7 -0
- package/dist/src/source/logical-lines.js +11 -0
- package/dist/src/source/source-file.d.ts +5 -0
- package/dist/src/source/source-file.js +3 -0
- package/dist/src/source/source-span.d.ts +5 -0
- package/dist/src/source/source-span.js +1 -0
- package/dist/src/source/strip-line-comment.d.ts +6 -0
- package/dist/src/source/strip-line-comment.js +53 -0
- package/dist/src/syntax/directive-aliases.d.ts +10 -0
- package/dist/src/syntax/directive-aliases.js +199 -0
- package/dist/src/syntax/parse-diagnostics.d.ts +12 -0
- package/dist/src/syntax/parse-diagnostics.js +18 -0
- package/dist/src/syntax/parse-expression.d.ts +3 -0
- package/dist/src/syntax/parse-expression.js +551 -0
- package/dist/src/syntax/parse-line.d.ts +12 -0
- package/dist/src/syntax/parse-line.js +382 -0
- package/dist/src/tooling/api.d.ts +42 -0
- package/dist/src/tooling/api.js +42 -0
- package/dist/src/tooling/case-style.d.ts +8 -0
- package/dist/src/tooling/case-style.js +163 -0
- package/dist/src/z80/effects.d.ts +3 -3
- package/dist/src/z80/effects.js +349 -302
- package/dist/src/z80/encode.d.ts +2 -10
- package/dist/src/z80/encode.js +951 -374
- package/dist/src/z80/instruction.d.ts +226 -0
- package/dist/src/z80/instruction.js +1 -0
- package/dist/src/z80/parse-instruction.d.ts +7 -0
- package/dist/src/z80/parse-instruction.js +1068 -0
- package/docs/reference/tooling-api.md +68 -9
- package/package.json +22 -3
- /package/dist/{src → legacy-root-azm/src}/analysis.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/analysis.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/compile.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/compile.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/compileShared.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/compileShared.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/diagnosticTypes.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/diagnosticTypes.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/range.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/range.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/types.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/writeAsm80.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/writeAsm80.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/writeBin.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/writeBin.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/writeD8m.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/writeD8m.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/writeListing.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/formats/writeListing.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/asm80/asmLine.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/asm80/asmLine.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/asm80/parseAsmRawValues.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/asm80/parseAsmRawValues.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/asm80/quoteScan.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/asm80/quoteScan.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/ast.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/ast.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/directiveAliases.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/directiveAliases.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/grammarData.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/grammarData.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/immExprUtils.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/immExprUtils.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmFlatDirectiveLine.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmFlatDirectiveLine.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmInstruction.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmInstruction.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmStatements.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmStatements.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmStream.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmStream.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmTopLevel.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseAsmTopLevel.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseDiagnostics.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseDiagnostics.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseEnum.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseEnum.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseImm.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseImm.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseLogicalLines.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseLogicalLines.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseOp.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseOp.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseOpHeader.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseOpHeader.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseOperands.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseOperands.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseParams.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseParams.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseParserRecovery.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseParserRecovery.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseParserShared.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseParserShared.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseRawDataDirectiveStart.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseRawDataDirectiveStart.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseRawDataDirectives.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseRawDataDirectives.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseRecordFieldDecl.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseRecordFieldDecl.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseSourceItemDispatch.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseSourceItemDispatch.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseSourceItemTable.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseSourceItemTable.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseTopLevelCommon.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseTopLevelCommon.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseTypes.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parseTypes.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parser.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/parser.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/source.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/source.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/sourceExtensions.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/frontend/sourceExtensions.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lintCaseStyle.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lintCaseStyle.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmDirectiveLowering.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmDirectiveLowering.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmDirectiveTraversal.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmDirectiveTraversal.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmEquResolution.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmEquResolution.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmInstructionLdHelpers.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmInstructionLdHelpers.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmInstructionLowering.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmInstructionLowering.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmInstructionStream.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmInstructionStream.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmLoweringBranchCall.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmLoweringBranchCall.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmLoweringHost.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmLoweringHost.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmLoweringLd.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmLoweringLd.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmRangeLowering.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmRangeLowering.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmRawDataLowering.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmRawDataLowering.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmSourceEmitter.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmSourceEmitter.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmSourceInstructionLowering.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmSourceInstructionLowering.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmUtils.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/asmUtils.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/assemblerFlowSetup.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/assemblerFlowSetup.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/assemblerLoweringContext.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/assemblerLoweringContext.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/assemblerLoweringContextSplit.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/assemblerLoweringContextSplit.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/assemblerLoweringPhases.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/assemblerLoweringPhases.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/bytePlacement.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/bytePlacement.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/capabilities.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/capabilities.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/eaResolution.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/eaResolution.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emissionCore.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emissionCore.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emit.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emit.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitContextBuilder.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitContextBuilder.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitFinalization.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitFinalization.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitFinalizationSetup.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitFinalizationSetup.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1BuildProgramLoweringContext.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1BuildProgramLoweringContext.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1Helpers.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1Helpers.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1Types.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1Types.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1WirePipeline.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1WirePipeline.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1Workspace.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPhase1Workspace.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPipeline.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitPipeline.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitProgramContext.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitProgramContext.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitState.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/emitState.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/fixupBaseResolution.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/fixupBaseResolution.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/fixupEmission.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/fixupEmission.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/immMath.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/immMath.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/inputAssets.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/inputAssets.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/ldEncoding.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/ldEncoding.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/ldEncodingRegMemHelpers.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/ldEncodingRegMemHelpers.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/ldFormSelection.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/ldFormSelection.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/ldLowering.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/ldLowering.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredAsmByteEmission.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredAsmByteEmission.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredAsmPlacement.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredAsmPlacement.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredAsmStreamRecording.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredAsmStreamRecording.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredAsmTypes.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredAsmTypes.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredFormat.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredFormat.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredItemSize.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweredItemSize.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweringDiagnostics.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweringDiagnostics.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweringTypes.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/loweringTypes.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opCandidateRegistry.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opCandidateRegistry.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opExpansionExecution.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opExpansionExecution.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opExpansionOrchestration.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opExpansionOrchestration.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opExpansionStream.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opExpansionStream.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opMatching.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opMatching.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opSubstitution.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/opSubstitution.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/prescanTypes.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/prescanTypes.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programLowering.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programLowering.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programLoweringDeclarations.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programLoweringDeclarations.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programLoweringFinalize.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programLoweringFinalize.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programLoweringTraversal.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programLoweringTraversal.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programPrescan.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/programPrescan.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/traceFormat.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/lowering/traceFormat.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/packageInfo.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/packageInfo.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/pathCompare.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/pathCompare.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/pipeline.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/analyze.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/analyze.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/annotate.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/annotate.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/boundaryHints.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/boundaryHints.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/carriers.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/carriers.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/controlFlow.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/controlFlow.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/fix.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/fix.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/liveness.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/liveness.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/profiles.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/profiles.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/programModel.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/programModel.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/report.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/report.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/smartComments.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/smartComments.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/sourceText.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/sourceText.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/summary.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/summary.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/types.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/registerCare/types.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/declVisitor.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/declVisitor.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/env.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/env.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/layout.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/layout.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/layoutCastFold.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/layoutCastFold.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/semanticsDiagnostics.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/semanticsDiagnostics.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/typeQueries.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/semantics/typeQueries.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/sourceIncludeExpansion.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/sourceIncludeExpansion.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/sourceIncludePaths.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/sourceIncludePaths.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/sourceLoader.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/sourceLoader.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeAlu.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeAlu.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeBitOps.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeBitOps.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeContext.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeContext.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeControl.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeControl.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeCoreOps.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeCoreOps.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeIo.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeIo.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeLd.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encodeLd.js +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encoderRegistry.d.ts +0 -0
- /package/dist/{src → legacy-root-azm/src}/z80/encoderRegistry.js +0 -0
package/dist/src/cli.js
CHANGED
|
@@ -1,526 +1,25 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { realpathSync } from 'node:fs';
|
|
3
|
+
import { resolve } from 'node:path';
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
' --nod8m Suppress .d8.json',
|
|
21
|
-
' --asm80 Emit assembler-valid lowered source (.z80)',
|
|
22
|
-
' --source-root <d> Normalize D8 source paths relative to this directory',
|
|
23
|
-
' --case-style <m> Case-style lint mode: off|upper|lower|consistent',
|
|
24
|
-
' --rc <m> Register-care mode: off|audit|warn|error|strict',
|
|
25
|
-
' --reg-report Emit .regcare.txt report',
|
|
26
|
-
' --reg-interface Emit inferred register-care interface (.asmi)',
|
|
27
|
-
' --fix Apply conservative register-care source fixes',
|
|
28
|
-
' --contracts Update source AZM contract blocks in place',
|
|
29
|
-
' --accept-out <r:c> Promote inferred output candidate while annotating',
|
|
30
|
-
' --interface <file> Load register-care interface contracts',
|
|
31
|
-
' --reg-profile <p> Register-care profile: mon3',
|
|
32
|
-
' --aliases <file> Load project directive alias JSON (repeatable)',
|
|
33
|
-
' -I, --include <dir> Add include search path (repeatable)',
|
|
34
|
-
' -V, --version Print version',
|
|
35
|
-
' -h, --help Show help',
|
|
36
|
-
'',
|
|
37
|
-
'Notes:',
|
|
38
|
-
' - <entry.asm|entry.z80> must be the last argument (assembler-style).',
|
|
39
|
-
' - Output artifacts are written next to the primary output using the artifact base name.',
|
|
40
|
-
'',
|
|
41
|
-
].join('\n');
|
|
42
|
-
}
|
|
43
|
-
function fail(message) {
|
|
44
|
-
throw Object.assign(new Error(message), { name: 'CliError' });
|
|
45
|
-
}
|
|
46
|
-
function createDefaultCliState() {
|
|
47
|
-
return {
|
|
48
|
-
outputPath: undefined,
|
|
49
|
-
outputType: 'hex',
|
|
50
|
-
emitBin: true,
|
|
51
|
-
emitHex: true,
|
|
52
|
-
emitD8m: true,
|
|
53
|
-
emitListing: true,
|
|
54
|
-
emitAsm80: false,
|
|
55
|
-
caseStyle: 'off',
|
|
56
|
-
includeDirs: [],
|
|
57
|
-
directiveAliasFiles: [],
|
|
58
|
-
entryFile: undefined,
|
|
59
|
-
registerCare: 'off',
|
|
60
|
-
emitRegisterReport: false,
|
|
61
|
-
emitRegisterInterface: false,
|
|
62
|
-
annotateRegisterContracts: false,
|
|
63
|
-
fixRegisterContracts: false,
|
|
64
|
-
acceptRegisterOutputCandidates: [],
|
|
65
|
-
registerCareInterfaces: [],
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
function parseDirectiveAliasFileArg(arg, argv, indexRef, state) {
|
|
69
|
-
if (arg !== '--aliases' && !arg.startsWith('--aliases='))
|
|
70
|
-
return false;
|
|
71
|
-
const value = arg.includes('=')
|
|
72
|
-
? arg.slice(arg.indexOf('=') + 1)
|
|
73
|
-
: readFlagValue(argv, indexRef, '--aliases');
|
|
74
|
-
if (!value)
|
|
75
|
-
fail(`--aliases expects a value`);
|
|
76
|
-
state.directiveAliasFiles.push(value);
|
|
77
|
-
return true;
|
|
78
|
-
}
|
|
79
|
-
function readFlagValue(argv, indexRef, flag) {
|
|
80
|
-
const value = argv[++indexRef.current];
|
|
81
|
-
if (!value)
|
|
82
|
-
fail(`${flag} expects a value`);
|
|
83
|
-
return value;
|
|
84
|
-
}
|
|
85
|
-
function readMatchedFlagValue(arg, argv, indexRef, flags) {
|
|
86
|
-
const flag = flags.find((candidate) => arg === candidate || arg.startsWith(`${candidate}=`)) ?? undefined;
|
|
87
|
-
if (!flag)
|
|
88
|
-
return undefined;
|
|
89
|
-
const value = arg.startsWith(`${flag}=`)
|
|
90
|
-
? arg.slice(flag.length + 1)
|
|
91
|
-
: readFlagValue(argv, indexRef, flag);
|
|
92
|
-
if (!value)
|
|
93
|
-
fail(`${flag} expects a value`);
|
|
94
|
-
return { flag, value };
|
|
95
|
-
}
|
|
96
|
-
function parseOutputPathArg(arg, argv, indexRef, state) {
|
|
97
|
-
if (arg !== '-o' && arg !== '--output' && !arg.startsWith('--output='))
|
|
98
|
-
return false;
|
|
99
|
-
if (arg.startsWith('--output=')) {
|
|
100
|
-
const value = arg.slice('--output='.length);
|
|
101
|
-
if (!value)
|
|
102
|
-
fail(`--output expects a value`);
|
|
103
|
-
state.outputPath = value;
|
|
104
|
-
return true;
|
|
105
|
-
}
|
|
106
|
-
state.outputPath = readFlagValue(argv, indexRef, arg);
|
|
107
|
-
return true;
|
|
108
|
-
}
|
|
109
|
-
function parseOutputTypeArg(arg, argv, indexRef, state) {
|
|
110
|
-
if (arg !== '-t' && arg !== '--type' && !arg.startsWith('--type='))
|
|
111
|
-
return false;
|
|
112
|
-
const value = arg.startsWith('--type=')
|
|
113
|
-
? arg.slice('--type='.length)
|
|
114
|
-
: readFlagValue(argv, indexRef, arg);
|
|
115
|
-
if (!value)
|
|
116
|
-
fail(`--type expects a value`);
|
|
117
|
-
if (value !== 'hex' && value !== 'bin')
|
|
118
|
-
fail(`Unsupported --type "${value}" (expected hex|bin)`);
|
|
119
|
-
state.outputType = value;
|
|
120
|
-
return true;
|
|
121
|
-
}
|
|
122
|
-
function parseCaseStyleArg(arg, argv, indexRef, state) {
|
|
123
|
-
if (arg !== '--case-style' && !arg.startsWith('--case-style='))
|
|
124
|
-
return false;
|
|
125
|
-
const value = arg.startsWith('--case-style=')
|
|
126
|
-
? arg.slice('--case-style='.length)
|
|
127
|
-
: readFlagValue(argv, indexRef, '--case-style');
|
|
128
|
-
if (!value)
|
|
129
|
-
fail(`--case-style expects a value`);
|
|
130
|
-
if (value !== 'off' && value !== 'upper' && value !== 'lower' && value !== 'consistent') {
|
|
131
|
-
fail(`Unsupported --case-style "${value}" (expected off|upper|lower|consistent)`);
|
|
132
|
-
}
|
|
133
|
-
state.caseStyle = value;
|
|
134
|
-
return true;
|
|
135
|
-
}
|
|
136
|
-
function parseSourceRootArg(arg, argv, indexRef, state) {
|
|
137
|
-
const parsed = readMatchedFlagValue(arg, argv, indexRef, ['--source-root', '--map-root']);
|
|
138
|
-
if (!parsed)
|
|
139
|
-
return false;
|
|
140
|
-
state.sourceRoot = parsed.value;
|
|
141
|
-
return true;
|
|
142
|
-
}
|
|
143
|
-
function parseRegisterCareArg(arg, argv, indexRef, state) {
|
|
144
|
-
const parsed = readMatchedFlagValue(arg, argv, indexRef, ['--register-care', '--rc']);
|
|
145
|
-
if (!parsed)
|
|
146
|
-
return false;
|
|
147
|
-
const { flag, value } = parsed;
|
|
148
|
-
if (value !== 'off' &&
|
|
149
|
-
value !== 'audit' &&
|
|
150
|
-
value !== 'warn' &&
|
|
151
|
-
value !== 'error' &&
|
|
152
|
-
value !== 'strict') {
|
|
153
|
-
fail(`Unsupported ${flag} "${value}" (expected off|audit|warn|error|strict)`);
|
|
154
|
-
}
|
|
155
|
-
state.registerCare = value;
|
|
156
|
-
return true;
|
|
157
|
-
}
|
|
158
|
-
function parseRegisterProfileArg(arg, argv, indexRef, state) {
|
|
159
|
-
const parsed = readMatchedFlagValue(arg, argv, indexRef, ['--register-profile', '--reg-profile']);
|
|
160
|
-
if (!parsed)
|
|
161
|
-
return false;
|
|
162
|
-
const { flag, value } = parsed;
|
|
163
|
-
if (value !== 'mon3') {
|
|
164
|
-
fail(`Unsupported ${flag} "${value}" (expected mon3)`);
|
|
165
|
-
}
|
|
166
|
-
state.registerCareProfile = value;
|
|
167
|
-
return true;
|
|
168
|
-
}
|
|
169
|
-
function parseRegisterInterfaceInputArg(arg, argv, indexRef, state) {
|
|
170
|
-
if (arg !== '--interface' && !arg.startsWith('--interface='))
|
|
171
|
-
return false;
|
|
172
|
-
const value = arg.includes('=')
|
|
173
|
-
? arg.slice(arg.indexOf('=') + 1)
|
|
174
|
-
: readFlagValue(argv, indexRef, '--interface');
|
|
175
|
-
if (!value)
|
|
176
|
-
fail(`--interface expects a value`);
|
|
177
|
-
state.registerCareInterfaces.push(value);
|
|
178
|
-
return true;
|
|
179
|
-
}
|
|
180
|
-
function parseAcceptRegisterOutputArg(arg, argv, indexRef, state) {
|
|
181
|
-
const parsed = readMatchedFlagValue(arg, argv, indexRef, [
|
|
182
|
-
'--accept-register-output',
|
|
183
|
-
'--accept-out',
|
|
184
|
-
]);
|
|
185
|
-
if (!parsed)
|
|
186
|
-
return false;
|
|
187
|
-
const { value } = parsed;
|
|
188
|
-
state.acceptRegisterOutputCandidates.push(value);
|
|
189
|
-
return true;
|
|
190
|
-
}
|
|
191
|
-
function parseIncludeArg(arg, argv, indexRef, state) {
|
|
192
|
-
if (arg !== '-I' && arg !== '--include' && !arg.startsWith('--include='))
|
|
193
|
-
return false;
|
|
194
|
-
if (arg.startsWith('--include=')) {
|
|
195
|
-
const value = arg.slice('--include='.length);
|
|
196
|
-
if (!value)
|
|
197
|
-
fail(`--include expects a value`);
|
|
198
|
-
state.includeDirs.push(value);
|
|
199
|
-
return true;
|
|
200
|
-
}
|
|
201
|
-
state.includeDirs.push(readFlagValue(argv, indexRef, arg));
|
|
202
|
-
return true;
|
|
203
|
-
}
|
|
204
|
-
function handleCliFastPath(arg) {
|
|
205
|
-
if (arg === '-h' || arg === '--help') {
|
|
206
|
-
process.stdout.write(usage());
|
|
207
|
-
return { code: 0 };
|
|
208
|
-
}
|
|
209
|
-
if (arg === '-V' || arg === '--version') {
|
|
210
|
-
process.stdout.write(`${readPackageVersion()}\n`);
|
|
211
|
-
return { code: 0 };
|
|
212
|
-
}
|
|
213
|
-
return undefined;
|
|
214
|
-
}
|
|
215
|
-
function finalizeCliOptions(state) {
|
|
216
|
-
if (!state.entryFile) {
|
|
217
|
-
fail(`Expected exactly one <entry.asm|entry.z80> argument (and it must be last)`);
|
|
218
|
-
}
|
|
219
|
-
if (!isSupportedSourcePath(state.entryFile)) {
|
|
220
|
-
const ext = extname(state.entryFile).toLowerCase() || '<none>';
|
|
221
|
-
fail(`Unsupported entry extension "${ext}" (expected ${sourceExtensions.join(', ')})`);
|
|
222
|
-
}
|
|
223
|
-
const emitsRegisterCareArtifact = state.emitRegisterReport ||
|
|
224
|
-
state.emitRegisterInterface ||
|
|
225
|
-
state.annotateRegisterContracts ||
|
|
226
|
-
state.fixRegisterContracts ||
|
|
227
|
-
state.acceptRegisterOutputCandidates.length > 0 ||
|
|
228
|
-
state.registerCareInterfaces.length > 0;
|
|
229
|
-
if (state.outputType === 'hex' && !state.emitHex && !emitsRegisterCareArtifact) {
|
|
230
|
-
fail(`--type hex requires HEX output to be enabled`);
|
|
231
|
-
}
|
|
232
|
-
if (state.outputType === 'bin' && !state.emitBin && !emitsRegisterCareArtifact) {
|
|
233
|
-
fail(`--type bin requires BIN output to be enabled`);
|
|
234
|
-
}
|
|
235
|
-
if (state.outputPath) {
|
|
236
|
-
const ext = extname(state.outputPath).toLowerCase();
|
|
237
|
-
const wantExt = state.outputType === 'hex' ? '.hex' : '.bin';
|
|
238
|
-
if (ext !== wantExt) {
|
|
239
|
-
fail(`--output must end with "${wantExt}" when --type is "${state.outputType}"`);
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
return {
|
|
243
|
-
entryFile: state.entryFile,
|
|
244
|
-
...(state.outputPath ? { outputPath: state.outputPath } : {}),
|
|
245
|
-
outputType: state.outputType,
|
|
246
|
-
...(state.sourceRoot !== undefined ? { sourceRoot: state.sourceRoot } : {}),
|
|
247
|
-
emitBin: state.emitBin,
|
|
248
|
-
emitHex: state.emitHex,
|
|
249
|
-
emitD8m: state.emitD8m,
|
|
250
|
-
emitListing: state.emitListing,
|
|
251
|
-
emitAsm80: state.emitAsm80,
|
|
252
|
-
caseStyle: state.caseStyle,
|
|
253
|
-
includeDirs: state.includeDirs,
|
|
254
|
-
directiveAliasFiles: state.directiveAliasFiles,
|
|
255
|
-
registerCare: state.registerCare,
|
|
256
|
-
emitRegisterReport: state.emitRegisterReport,
|
|
257
|
-
emitRegisterInterface: state.emitRegisterInterface,
|
|
258
|
-
annotateRegisterContracts: state.annotateRegisterContracts,
|
|
259
|
-
fixRegisterContracts: state.fixRegisterContracts,
|
|
260
|
-
acceptRegisterOutputCandidates: state.acceptRegisterOutputCandidates,
|
|
261
|
-
registerCareInterfaces: state.registerCareInterfaces,
|
|
262
|
-
...(state.registerCareProfile !== undefined
|
|
263
|
-
? { registerCareProfile: state.registerCareProfile }
|
|
264
|
-
: {}),
|
|
265
|
-
};
|
|
266
|
-
}
|
|
267
|
-
export function parseCliArgs(argv) {
|
|
268
|
-
const state = createDefaultCliState();
|
|
269
|
-
const indexRef = { current: 0 };
|
|
270
|
-
for (; indexRef.current < argv.length; indexRef.current++) {
|
|
271
|
-
const arg = argv[indexRef.current];
|
|
272
|
-
const fastPath = handleCliFastPath(arg);
|
|
273
|
-
if (fastPath)
|
|
274
|
-
return fastPath;
|
|
275
|
-
if (parseOutputPathArg(arg, argv, indexRef, state))
|
|
276
|
-
continue;
|
|
277
|
-
if (parseOutputTypeArg(arg, argv, indexRef, state))
|
|
278
|
-
continue;
|
|
279
|
-
if (arg === '-n' || arg === '--nolist') {
|
|
280
|
-
state.emitListing = false;
|
|
281
|
-
continue;
|
|
282
|
-
}
|
|
283
|
-
if (arg === '--nobin') {
|
|
284
|
-
state.emitBin = false;
|
|
285
|
-
continue;
|
|
286
|
-
}
|
|
287
|
-
if (arg === '--nohex') {
|
|
288
|
-
state.emitHex = false;
|
|
289
|
-
continue;
|
|
290
|
-
}
|
|
291
|
-
if (arg === '--nod8m') {
|
|
292
|
-
state.emitD8m = false;
|
|
293
|
-
continue;
|
|
294
|
-
}
|
|
295
|
-
if (arg === '--asm80') {
|
|
296
|
-
state.emitAsm80 = true;
|
|
297
|
-
continue;
|
|
298
|
-
}
|
|
299
|
-
if (parseCaseStyleArg(arg, argv, indexRef, state))
|
|
300
|
-
continue;
|
|
301
|
-
if (parseSourceRootArg(arg, argv, indexRef, state))
|
|
302
|
-
continue;
|
|
303
|
-
if (parseDirectiveAliasFileArg(arg, argv, indexRef, state))
|
|
304
|
-
continue;
|
|
305
|
-
if (parseRegisterCareArg(arg, argv, indexRef, state))
|
|
306
|
-
continue;
|
|
307
|
-
if (arg === '--emit-register-report' || arg === '--reg-report') {
|
|
308
|
-
state.emitRegisterReport = true;
|
|
309
|
-
continue;
|
|
310
|
-
}
|
|
311
|
-
if (arg === '--emit-register-interface' || arg === '--reg-interface') {
|
|
312
|
-
state.emitRegisterInterface = true;
|
|
313
|
-
continue;
|
|
314
|
-
}
|
|
315
|
-
if (arg === '--fix') {
|
|
316
|
-
state.fixRegisterContracts = true;
|
|
317
|
-
state.annotateRegisterContracts = true;
|
|
318
|
-
continue;
|
|
319
|
-
}
|
|
320
|
-
if (arg === '--annotate-register-contracts' || arg === '--contracts') {
|
|
321
|
-
state.annotateRegisterContracts = true;
|
|
322
|
-
continue;
|
|
323
|
-
}
|
|
324
|
-
if (parseAcceptRegisterOutputArg(arg, argv, indexRef, state))
|
|
325
|
-
continue;
|
|
326
|
-
if (parseRegisterInterfaceInputArg(arg, argv, indexRef, state))
|
|
327
|
-
continue;
|
|
328
|
-
if (parseRegisterProfileArg(arg, argv, indexRef, state))
|
|
329
|
-
continue;
|
|
330
|
-
if (parseIncludeArg(arg, argv, indexRef, state))
|
|
331
|
-
continue;
|
|
332
|
-
if (arg.startsWith('-')) {
|
|
333
|
-
fail(`Unknown option "${arg}"`);
|
|
334
|
-
}
|
|
335
|
-
if (state.entryFile !== undefined) {
|
|
336
|
-
fail(`Expected exactly one <entry.asm|entry.z80> argument (and it must be last)`);
|
|
337
|
-
}
|
|
338
|
-
if (indexRef.current !== argv.length - 1) {
|
|
339
|
-
fail(`Expected exactly one <entry.asm|entry.z80> argument (and it must be last)`);
|
|
340
|
-
}
|
|
341
|
-
state.entryFile = arg;
|
|
342
|
-
}
|
|
343
|
-
return finalizeCliOptions(state);
|
|
344
|
-
}
|
|
345
|
-
function artifactBase(entryFile, outputType, outputPath) {
|
|
346
|
-
if (outputPath) {
|
|
347
|
-
const resolved = resolve(outputPath);
|
|
348
|
-
const ext = extname(resolved);
|
|
349
|
-
return ext.length > 0 ? resolved.slice(0, -ext.length) : resolved;
|
|
350
|
-
}
|
|
351
|
-
const entry = resolve(entryFile);
|
|
352
|
-
const ext = extname(entry);
|
|
353
|
-
const stem = ext.length > 0 ? entry.slice(0, -ext.length) : entry;
|
|
354
|
-
// Default primary output path is sibling of entry with extension derived from outputType.
|
|
355
|
-
return stem;
|
|
356
|
-
}
|
|
357
|
-
async function writeArtifacts(base, artifacts, outputType) {
|
|
358
|
-
const byKind = new Map();
|
|
359
|
-
for (const a of artifacts)
|
|
360
|
-
byKind.set(a.kind, a);
|
|
361
|
-
const hexPath = `${base}.hex`;
|
|
362
|
-
const binPath = `${base}.bin`;
|
|
363
|
-
const d8mPath = `${base}.d8.json`;
|
|
364
|
-
const lstPath = `${base}.lst`;
|
|
365
|
-
const asm80Path = `${base}.z80`;
|
|
366
|
-
const registerReportPath = `${base}.regcare.txt`;
|
|
367
|
-
const registerInterfacePath = `${base}.asmi`;
|
|
368
|
-
const writes = [];
|
|
369
|
-
const ensureDir = async (p) => mkdir(dirname(p), { recursive: true });
|
|
370
|
-
let primaryWrittenPath;
|
|
371
|
-
let registerReportWrittenPath;
|
|
372
|
-
let registerInterfaceWrittenPath;
|
|
373
|
-
let registerAnnotationWrittenPath;
|
|
374
|
-
const hex = byKind.get('hex');
|
|
375
|
-
if (hex && hex.kind === 'hex') {
|
|
376
|
-
await ensureDir(hexPath);
|
|
377
|
-
writes.push(writeFile(hexPath, hex.text, 'utf8'));
|
|
378
|
-
if (outputType === 'hex')
|
|
379
|
-
primaryWrittenPath = hexPath;
|
|
380
|
-
}
|
|
381
|
-
const bin = byKind.get('bin');
|
|
382
|
-
if (bin && bin.kind === 'bin') {
|
|
383
|
-
await ensureDir(binPath);
|
|
384
|
-
writes.push(writeFile(binPath, Buffer.from(bin.bytes)));
|
|
385
|
-
if (outputType === 'bin')
|
|
386
|
-
primaryWrittenPath = binPath;
|
|
387
|
-
}
|
|
388
|
-
const d8m = byKind.get('d8m');
|
|
389
|
-
if (d8m && d8m.kind === 'd8m') {
|
|
390
|
-
await ensureDir(d8mPath);
|
|
391
|
-
writes.push(writeFile(d8mPath, JSON.stringify(d8m.json, null, 2) + '\n', 'utf8'));
|
|
392
|
-
}
|
|
393
|
-
const lst = byKind.get('lst');
|
|
394
|
-
if (lst && lst.kind === 'lst') {
|
|
395
|
-
await ensureDir(lstPath);
|
|
396
|
-
writes.push(writeFile(lstPath, lst.text, 'utf8'));
|
|
397
|
-
}
|
|
398
|
-
const asm80 = byKind.get('asm80');
|
|
399
|
-
if (asm80 && asm80.kind === 'asm80') {
|
|
400
|
-
await ensureDir(asm80Path);
|
|
401
|
-
writes.push(writeFile(asm80Path, asm80.text, 'utf8'));
|
|
402
|
-
}
|
|
403
|
-
const registerReport = byKind.get('register-care-report');
|
|
404
|
-
if (registerReport && registerReport.kind === 'register-care-report') {
|
|
405
|
-
await ensureDir(registerReportPath);
|
|
406
|
-
writes.push(writeFile(registerReportPath, registerReport.text, 'utf8'));
|
|
407
|
-
registerReportWrittenPath = registerReportPath;
|
|
408
|
-
}
|
|
409
|
-
const registerInterface = byKind.get('register-care-interface');
|
|
410
|
-
if (registerInterface && registerInterface.kind === 'register-care-interface') {
|
|
411
|
-
await ensureDir(registerInterfacePath);
|
|
412
|
-
writes.push(writeFile(registerInterfacePath, registerInterface.text, 'utf8'));
|
|
413
|
-
registerInterfaceWrittenPath = registerInterfacePath;
|
|
414
|
-
}
|
|
415
|
-
const registerAnnotations = byKind.get('register-care-annotations');
|
|
416
|
-
if (registerAnnotations && registerAnnotations.kind === 'register-care-annotations') {
|
|
417
|
-
for (const file of registerAnnotations.files) {
|
|
418
|
-
await ensureDir(file.path);
|
|
419
|
-
writes.push(writeFile(file.path, file.text, 'utf8'));
|
|
420
|
-
registerAnnotationWrittenPath ??= file.path;
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
|
-
await Promise.all(writes);
|
|
424
|
-
const reportedPath = primaryWrittenPath ??
|
|
425
|
-
registerReportWrittenPath ??
|
|
426
|
-
registerInterfaceWrittenPath ??
|
|
427
|
-
registerAnnotationWrittenPath;
|
|
428
|
-
if (reportedPath) {
|
|
429
|
-
process.stdout.write(`${reportedPath}\n`);
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
function normalizeDiagnosticPath(file) {
|
|
433
|
-
const normalized = file.replace(/\\/g, '/');
|
|
434
|
-
return process.platform === 'win32' ? normalized.toLowerCase() : normalized;
|
|
435
|
-
}
|
|
436
|
-
function compareDiagnosticsForCli(a, b) {
|
|
437
|
-
const fileCmp = normalizeDiagnosticPath(a.file).localeCompare(normalizeDiagnosticPath(b.file));
|
|
438
|
-
if (fileCmp !== 0)
|
|
439
|
-
return fileCmp;
|
|
440
|
-
const lineCmp = (a.line ?? Number.POSITIVE_INFINITY) - (b.line ?? Number.POSITIVE_INFINITY);
|
|
441
|
-
if (lineCmp !== 0)
|
|
442
|
-
return lineCmp;
|
|
443
|
-
const colCmp = (a.column ?? Number.POSITIVE_INFINITY) - (b.column ?? Number.POSITIVE_INFINITY);
|
|
444
|
-
if (colCmp !== 0)
|
|
445
|
-
return colCmp;
|
|
446
|
-
const sevRank = (severity) => {
|
|
447
|
-
if (severity === 'error')
|
|
448
|
-
return 0;
|
|
449
|
-
if (severity === 'warning')
|
|
450
|
-
return 1;
|
|
451
|
-
return 2;
|
|
452
|
-
};
|
|
453
|
-
const sevCmp = sevRank(a.severity) - sevRank(b.severity);
|
|
454
|
-
if (sevCmp !== 0)
|
|
455
|
-
return sevCmp;
|
|
456
|
-
const idCmp = a.id.localeCompare(b.id);
|
|
457
|
-
if (idCmp !== 0)
|
|
458
|
-
return idCmp;
|
|
459
|
-
return a.message.localeCompare(b.message);
|
|
460
|
-
}
|
|
461
|
-
export async function runCli(argv) {
|
|
462
|
-
try {
|
|
463
|
-
const parsed = parseCliArgs(argv);
|
|
464
|
-
if ('code' in parsed)
|
|
465
|
-
return parsed.code;
|
|
466
|
-
const base = artifactBase(parsed.entryFile, parsed.outputType, parsed.outputPath);
|
|
467
|
-
const hexPath = `${base}.hex`;
|
|
468
|
-
const binPath = `${base}.bin`;
|
|
469
|
-
const lstPath = `${base}.lst`;
|
|
470
|
-
const compileOptions = {
|
|
471
|
-
emitBin: parsed.emitBin,
|
|
472
|
-
emitHex: parsed.emitHex,
|
|
473
|
-
emitD8m: parsed.emitD8m,
|
|
474
|
-
emitListing: parsed.emitListing,
|
|
475
|
-
emitAsm80: parsed.emitAsm80,
|
|
476
|
-
caseStyle: parsed.caseStyle,
|
|
477
|
-
includeDirs: parsed.includeDirs,
|
|
478
|
-
directiveAliasFiles: parsed.directiveAliasFiles,
|
|
479
|
-
...(parsed.sourceRoot !== undefined ? { sourceRoot: parsed.sourceRoot } : {}),
|
|
480
|
-
d8mInputs: {
|
|
481
|
-
...(parsed.sourceRoot !== undefined && parsed.emitListing ? { listing: lstPath } : {}),
|
|
482
|
-
...(parsed.sourceRoot !== undefined && parsed.emitHex ? { hex: hexPath } : {}),
|
|
483
|
-
...(parsed.sourceRoot !== undefined && parsed.emitBin ? { bin: binPath } : {}),
|
|
484
|
-
},
|
|
485
|
-
requireMain: false,
|
|
486
|
-
defaultCodeBase: 0,
|
|
487
|
-
registerCare: parsed.registerCare,
|
|
488
|
-
emitRegisterReport: parsed.emitRegisterReport,
|
|
489
|
-
emitRegisterInterface: parsed.emitRegisterInterface,
|
|
490
|
-
emitRegisterAnnotations: parsed.annotateRegisterContracts,
|
|
491
|
-
fixRegisterContracts: parsed.fixRegisterContracts,
|
|
492
|
-
acceptRegisterOutputCandidates: parsed.acceptRegisterOutputCandidates,
|
|
493
|
-
registerCareInterfaces: parsed.registerCareInterfaces,
|
|
494
|
-
...(parsed.registerCareProfile !== undefined
|
|
495
|
-
? { registerCareProfile: parsed.registerCareProfile }
|
|
496
|
-
: {}),
|
|
497
|
-
};
|
|
498
|
-
const res = await compile(parsed.entryFile, compileOptions, { formats: defaultFormatWriters });
|
|
499
|
-
const sortedDiagnostics = [...res.diagnostics].sort(compareDiagnosticsForCli);
|
|
500
|
-
if (sortedDiagnostics.length > 0) {
|
|
501
|
-
for (const d of sortedDiagnostics) {
|
|
502
|
-
const loc = d.line !== undefined && d.column !== undefined
|
|
503
|
-
? `${d.file}:${d.line}:${d.column}`
|
|
504
|
-
: d.file;
|
|
505
|
-
process.stderr.write(`${loc}: ${d.severity}: [${d.id}] ${d.message}\n`);
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
|
-
if (sortedDiagnostics.some((d) => d.severity === 'error')) {
|
|
509
|
-
return 1;
|
|
510
|
-
}
|
|
511
|
-
await writeArtifacts(base, res.artifacts, parsed.outputType);
|
|
512
|
-
return 0;
|
|
513
|
-
}
|
|
514
|
-
catch (err) {
|
|
515
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
516
|
-
process.stderr.write(`azm: ${msg}\n`);
|
|
517
|
-
process.stderr.write(`${usage()}\n`);
|
|
518
|
-
return 2;
|
|
519
|
-
}
|
|
5
|
+
export { parseCliArgs, runCli } from './cli/run.js';
|
|
6
|
+
import { runCli } from './cli/run.js';
|
|
7
|
+
function normalizePathForCompare(path) {
|
|
8
|
+
const resolved = resolve(path);
|
|
9
|
+
const canonical = (() => {
|
|
10
|
+
try {
|
|
11
|
+
return realpathSync(resolved);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return resolved;
|
|
15
|
+
}
|
|
16
|
+
})();
|
|
17
|
+
const normalized = canonical.replace(/\\/g, '/');
|
|
18
|
+
const normalizedDarwin = process.platform === 'darwin' ? normalized.replace(/^\/private\//, '/') : normalized;
|
|
19
|
+
return process.platform === 'win32' ? normalizedDarwin.toLowerCase() : normalizedDarwin;
|
|
520
20
|
}
|
|
521
21
|
function samePath(a, b) {
|
|
522
|
-
return
|
|
523
|
-
normalizePathForCompare(b, { realpath: true }));
|
|
22
|
+
return normalizePathForCompare(a) === normalizePathForCompare(b);
|
|
524
23
|
}
|
|
525
24
|
function isDirectCliInvocation(invokedAs) {
|
|
526
25
|
if (!invokedAs)
|
|
@@ -528,11 +27,8 @@ function isDirectCliInvocation(invokedAs) {
|
|
|
528
27
|
const self = fileURLToPath(import.meta.url);
|
|
529
28
|
if (samePath(invokedAs, self))
|
|
530
29
|
return true;
|
|
531
|
-
const invoked = normalizePathForCompare(invokedAs
|
|
532
|
-
|
|
533
|
-
// Windows CI can surface different canonical path spellings for the same file.
|
|
534
|
-
// Fall back to stable suffix matching for the built CLI entry path.
|
|
535
|
-
return invoked.endsWith('/dist/src/cli.js') && normalizedSelf.endsWith('/dist/src/cli.js');
|
|
30
|
+
const invoked = normalizePathForCompare(invokedAs);
|
|
31
|
+
return invoked.endsWith('/dist/src/cli.js');
|
|
536
32
|
}
|
|
537
33
|
if (isDirectCliInvocation(process.argv[1])) {
|
|
538
34
|
void runCli(process.argv.slice(2)).then((code) => process.exit(code));
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Diagnostic } from '../model/diagnostic.js';
|
|
2
|
+
import { type CompileOptions } from './compile.js';
|
|
3
|
+
export type CompileArtifactOptions = CompileOptions & {
|
|
4
|
+
readonly emitBin?: boolean;
|
|
5
|
+
readonly emitHex?: boolean;
|
|
6
|
+
};
|
|
7
|
+
/** @deprecated Use {@link CompileArtifactOptions}. */
|
|
8
|
+
export type CompileNextArtifactOptions = CompileArtifactOptions;
|
|
9
|
+
export type SourceArtifact = {
|
|
10
|
+
readonly kind: 'bin';
|
|
11
|
+
readonly bytes: Uint8Array;
|
|
12
|
+
} | {
|
|
13
|
+
readonly kind: 'hex';
|
|
14
|
+
readonly text: string;
|
|
15
|
+
};
|
|
16
|
+
/** @deprecated Use {@link SourceArtifact}. */
|
|
17
|
+
export type NextArtifact = SourceArtifact;
|
|
18
|
+
export interface CompileArtifactsResult {
|
|
19
|
+
readonly diagnostics: readonly Diagnostic[];
|
|
20
|
+
readonly artifacts: readonly SourceArtifact[];
|
|
21
|
+
}
|
|
22
|
+
/** @deprecated Use {@link CompileArtifactsResult}. */
|
|
23
|
+
export type CompileNextArtifactsResult = CompileArtifactsResult;
|
|
24
|
+
export declare function compileArtifacts(sourceText: string, options?: CompileArtifactOptions): CompileArtifactsResult;
|
|
25
|
+
/** @deprecated Use {@link compileArtifacts}. */
|
|
26
|
+
export declare const compileNextArtifacts: typeof compileArtifacts;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { compileSource } from './compile.js';
|
|
2
|
+
export function compileArtifacts(sourceText, options = {}) {
|
|
3
|
+
const result = compileSource(sourceText, options);
|
|
4
|
+
if (result.diagnostics.some((diagnostic) => diagnostic.severity === 'error')) {
|
|
5
|
+
return { diagnostics: result.diagnostics, artifacts: [] };
|
|
6
|
+
}
|
|
7
|
+
const artifacts = [];
|
|
8
|
+
if (options.emitBin !== false) {
|
|
9
|
+
artifacts.push({ kind: 'bin', bytes: result.bytes });
|
|
10
|
+
}
|
|
11
|
+
if (options.emitHex !== false) {
|
|
12
|
+
artifacts.push({ kind: 'hex', text: result.hexText });
|
|
13
|
+
}
|
|
14
|
+
return { diagnostics: result.diagnostics, artifacts };
|
|
15
|
+
}
|
|
16
|
+
/** @deprecated Use {@link compileArtifacts}. */
|
|
17
|
+
export const compileNextArtifacts = compileArtifacts;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Diagnostic } from '../model/diagnostic.js';
|
|
2
|
+
import type { SourceItem } from '../model/source-item.js';
|
|
3
|
+
import type { LogicalLine } from '../source/logical-lines.js';
|
|
4
|
+
import type { DirectiveAliasPolicy } from '../syntax/directive-aliases.js';
|
|
5
|
+
export interface CompileNextOptions {
|
|
6
|
+
readonly entryName?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface CompileSourceResult {
|
|
9
|
+
readonly diagnostics: readonly Diagnostic[];
|
|
10
|
+
readonly symbols: Readonly<Record<string, number>>;
|
|
11
|
+
readonly bytes: Uint8Array;
|
|
12
|
+
readonly hexText: string;
|
|
13
|
+
}
|
|
14
|
+
interface ParseNextSourceItemsResult {
|
|
15
|
+
readonly diagnostics: readonly Diagnostic[];
|
|
16
|
+
readonly items: readonly SourceItem[];
|
|
17
|
+
}
|
|
18
|
+
interface ParseNextSourceItemsOptions {
|
|
19
|
+
readonly directiveAliasPolicy?: DirectiveAliasPolicy;
|
|
20
|
+
}
|
|
21
|
+
export declare function parseNextSourceItems(lines: readonly LogicalLine[], options?: ParseNextSourceItemsOptions): ParseNextSourceItemsResult;
|
|
22
|
+
export type CompileOptions = CompileNextOptions;
|
|
23
|
+
export declare function compileSource(sourceText: string, options?: CompileOptions): CompileSourceResult;
|
|
24
|
+
/** @deprecated Use {@link compileSource}. */
|
|
25
|
+
export declare const compileNext: typeof compileSource;
|
|
26
|
+
export {};
|