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
31 public:
39 FunctionDefinition(std::string name, std::vector<Token> body_tokens, SourcePosition position)
40 : name_{std::move(name)}, body_tokens_{std::move(body_tokens)}, position_{position}
41 {
42 }
43
49 [[nodiscard]] const std::string &name() const
50 {
51 return name_;
52 }
53
64 [[nodiscard]] const std::vector<Token> &body_tokens() const
65 {
66 return body_tokens_;
67 }
68
74 [[nodiscard]] const SourcePosition &position() const
75 {
76 return position_;
77 }
78
79 private:
80 std::string name_;
81 std::vector<Token> body_tokens_;
82 SourcePosition position_;
83};
84
85} // 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.