12#ifndef YAZE_SRC_CLI_SERVICE_AGENT_TOOLS_CODE_GEN_TOOL_H_
13#define YAZE_SRC_CLI_SERVICE_AGENT_TOOLS_CODE_GEN_TOOL_H_
20#include "absl/status/status.h"
21#include "absl/status/statusor.h"
83 void AddInfo(
const std::string& message, uint32_t address = 0) {
88 void AddWarning(
const std::string& message, uint32_t address = 0) {
93 void AddError(
const std::string& message, uint32_t address = 0) {
120 size_t min_size = 0x100)
const;
128 const std::string& template_code,
129 const std::map<std::string, std::string>& params)
const;
134 absl::StatusOr<AsmTemplate>
GetTemplate(
const std::string&
name)
const;
179 std::string
GetName()
const override {
return "codegen-asm-hook"; }
182 return "Generate ASM hook at ROM address";
186 return "codegen-asm-hook --address=0x008040 --label=MyHook [--nop-fill=N] "
187 "[--format=<json|text>]";
211 std::string
GetName()
const override {
return "codegen-freespace-patch"; }
214 return "Generate patch using detected free regions";
218 return "codegen-freespace-patch --label=MyCode [--size=0x100] "
219 "[--prefer-bank=N] [--format=<json|text>]";
243 std::string
GetName()
const override {
return "codegen-sprite-template"; }
246 return "Generate sprite ASM from template";
250 return "codegen-sprite-template --name=MySprite [--init-code=\"...\"] "
251 "[--main-code=\"...\"] [--format=<json|text>]";
275 std::string
GetName()
const override {
return "codegen-event-handler"; }
280 return "codegen-event-handler --type=<nmi|irq|reset> --label=MyHandler "
281 "[--custom-code=\"...\"] [--format=<json|text>]";
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Utility for parsing common CLI argument patterns.
absl::Status RequireArgs(const std::vector< std::string > &required) const
Validate that required arguments are present.
Base class for CLI command handlers.