Porytiles
Loading...
Searching...
No Matches
incbin_declaration.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <vector>
5
7
8namespace porytiles {
9
33 public:
42 IncbinDeclaration(std::string variable_name, std::string macro_name, std::string path, SourcePosition position)
43 : variable_name_{std::move(variable_name)}, macro_name_{std::move(macro_name)}, paths_{std::move(path)},
44 position_{position}
45 {
46 }
47
61 std::string variable_name, std::string macro_name, std::vector<std::string> paths, SourcePosition position)
62 : variable_name_{std::move(variable_name)}, macro_name_{std::move(macro_name)}, paths_{std::move(paths)},
63 position_{position}
64 {
65 }
66
72 [[nodiscard]] const std::string &variable_name() const
73 {
74 return variable_name_;
75 }
76
82 [[nodiscard]] const std::string &macro_name() const
83 {
84 return macro_name_;
85 }
86
92 [[nodiscard]] const std::vector<std::string> &paths() const
93 {
94 return paths_;
95 }
96
102 [[nodiscard]] const SourcePosition &position() const
103 {
104 return position_;
105 }
106
112 [[nodiscard]] bool is_multi_path() const
113 {
114 return paths_.size() > 1;
115 }
116
117 private:
118 std::string variable_name_;
119 std::string macro_name_;
120 std::vector<std::string> paths_;
121 SourcePosition position_;
122};
123
124} // namespace porytiles
Represents a parsed INCBIN array declaration from C source code.
IncbinDeclaration(std::string variable_name, std::string macro_name, std::vector< std::string > paths, SourcePosition position)
Constructs an IncbinDeclaration with multiple paths.
const std::string & variable_name() const
Returns the variable name.
const std::string & macro_name() const
Returns the INCBIN macro name.
IncbinDeclaration(std::string variable_name, std::string macro_name, std::string path, SourcePosition position)
Constructs an IncbinDeclaration with a single path.
bool is_multi_path() const
Checks if this declaration has multiple paths.
const std::vector< std::string > & paths() const
Returns all paths from the INCBIN macro(s).
const SourcePosition & position() const
Returns the source position of the variable name.
Represents a position within source content.