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
31 public:
38 IncbinDeclaration(std::string variable_name, std::string macro_name, std::string path, SourcePosition position)
39 : variable_name_{std::move(variable_name)}, macro_name_{std::move(macro_name)}, paths_{std::move(path)},
40 position_{position}
41 {
42 }
43
55 std::string variable_name, std::string macro_name, std::vector<std::string> paths, SourcePosition position)
56 : variable_name_{std::move(variable_name)}, macro_name_{std::move(macro_name)}, paths_{std::move(paths)},
57 position_{position}
58 {
59 }
60
64 [[nodiscard]] const std::string &variable_name() const
65 {
66 return variable_name_;
67 }
68
72 [[nodiscard]] const std::string &macro_name() const
73 {
74 return macro_name_;
75 }
76
80 [[nodiscard]] const std::vector<std::string> &paths() const
81 {
82 return paths_;
83 }
84
88 [[nodiscard]] const SourcePosition &position() const
89 {
90 return position_;
91 }
92
96 [[nodiscard]] bool is_multi_path() const
97 {
98 return paths_.size() > 1;
99 }
100
101 private:
102 std::string variable_name_;
103 std::string macro_name_;
104 std::vector<std::string> paths_;
105 SourcePosition position_;
106};
107
108} // 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.