Porytiles
Loading...
Searching...
No Matches
function_definition.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <vector>
5
8
9namespace porytiles {
10
29 public:
35 FunctionDefinition(std::string name, std::vector<Token> body_tokens, SourcePosition position)
36 : name_{std::move(name)}, body_tokens_{std::move(body_tokens)}, position_{position}
37 {
38 }
39
43 [[nodiscard]] const std::string &name() const
44 {
45 return name_;
46 }
47
56 [[nodiscard]] const std::vector<Token> &body_tokens() const
57 {
58 return body_tokens_;
59 }
60
64 [[nodiscard]] const SourcePosition &position() const
65 {
66 return position_;
67 }
68
69 private:
70 std::string name_;
71 std::vector<Token> body_tokens_;
72 SourcePosition position_;
73};
74
75} // namespace porytiles
Represents a parsed C function definition.
const std::string & name() const
Returns the function name.
const SourcePosition & position() const
Returns the source position of the function name.
const std::vector< Token > & body_tokens() const
Returns the function body tokens.
FunctionDefinition(std::string name, std::vector< Token > body_tokens, SourcePosition position)
Constructs a FunctionDefinition.
Represents a position within source content.