yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
project_graph_tool.h
Go to the documentation of this file.
1#ifndef YAZE_CLI_SERVICE_AGENT_TOOLS_PROJECT_GRAPH_TOOL_H_
2#define YAZE_CLI_SERVICE_AGENT_TOOLS_PROJECT_GRAPH_TOOL_H_
3
4#include <string>
5#include <vector>
6
7#include "absl/status/status.h"
10
11namespace yaze {
12namespace cli {
13namespace agent {
14namespace tools {
15
26 public:
27 ProjectGraphTool() = default;
28 ~ProjectGraphTool() override = default;
29
30 std::string GetName() const override { return "project-graph"; }
31 std::string GetUsage() const override {
32 return "project-graph --query=<info|files|symbols|lookup|writes|bank> "
33 "[--path=<folder>] [--symbol=<name>] [--address=<hex>] "
34 "[--bank=<hex>]";
35 }
36 bool RequiresRom() const override { return false; }
37
38 protected:
39 absl::Status ValidateArgs(const resources::ArgumentParser& parser) override;
40 absl::Status Execute(Rom* rom, const resources::ArgumentParser& parser,
41 resources::OutputFormatter& formatter) override;
42
43 private:
44 absl::Status GetProjectInfo(resources::OutputFormatter& formatter) const;
45 absl::Status GetFileStructure(const std::string& path,
46 resources::OutputFormatter& formatter) const;
47 absl::Status GetSymbolTable(resources::OutputFormatter& formatter) const;
48 absl::Status LookupAddressOrSymbol(
49 const resources::ArgumentParser& parser,
50 resources::OutputFormatter& formatter) const;
51 absl::Status GetWriteCoverage(resources::OutputFormatter& formatter) const;
52 absl::Status GetBankContext(const resources::ArgumentParser& parser,
53 resources::OutputFormatter& formatter) const;
54};
55
56} // namespace tools
57} // namespace agent
58} // namespace cli
59} // namespace yaze
60
61#endif // YAZE_CLI_SERVICE_AGENT_TOOLS_PROJECT_GRAPH_TOOL_H_
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Definition rom.h:28
Provides the AI agent with structured information about the project.
absl::Status GetProjectInfo(resources::OutputFormatter &formatter) const
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
absl::Status GetSymbolTable(resources::OutputFormatter &formatter) const
std::string GetName() const override
Get the command name.
std::string GetUsage() const override
Get the command usage string.
absl::Status GetFileStructure(const std::string &path, resources::OutputFormatter &formatter) const
absl::Status GetWriteCoverage(resources::OutputFormatter &formatter) const
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
absl::Status LookupAddressOrSymbol(const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) const
absl::Status GetBankContext(const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) const
bool RequiresRom() const override
Check if the command requires a loaded ROM.
Utility for parsing common CLI argument patterns.
Base class for CLI command handlers.
Utility for consistent output formatting across commands.