most part of statement printers done

This commit is contained in:
ProgramSnail 2023-07-24 23:55:11 +03:00
parent c176d1b11d
commit 0bb72e0b10
7 changed files with 208 additions and 25 deletions

View file

@ -72,7 +72,7 @@ public:
std::vector<std::optional<std::string>> &&annotations,
std::vector<Identifier> &&arguments,
std::vector<Modifier> &&reference_types,
std::vector<std::optional<TypeProxy>> &&types,
std::vector<TypeProxy> &&types,
std::vector<bool> &&optional_arguments,
std::vector<bool> &&result_arguments,
std::optional<ExpressionProxy> expression)
@ -101,7 +101,7 @@ public:
//
ModifierType get_modifier() { return modifier_; }
ModifierType get_modifier() const { return modifier_; }
//
@ -135,7 +135,7 @@ public:
//
Modifier get_argument_reference_type(size_t id) {
Modifier get_argument_reference_type(size_t id) const {
return reference_types_.at(id);
}
@ -143,19 +143,9 @@ public:
size_t get_argument_types_size() const { return types_.size(); }
std::optional<Type *> get_argument_type(size_t id) {
if (types_.at(id).has_value()) {
return types_[id].value().get();
}
return std::nullopt;
}
Type *get_argument_type(size_t id) { return types_.at(id).get(); }
std::optional<const Type *> get_argument_type(size_t id) const {
if (types_.at(id).has_value()) {
return types_[id].value().get();
}
return std::nullopt;
}
const Type *get_argument_type(size_t id) const { return types_.at(id).get(); }
//
@ -191,7 +181,7 @@ private:
std::vector<std::optional<std::string>> annotations_;
std::vector<Identifier> arguments_;
std::vector<Modifier> reference_types_;
std::vector<std::optional<TypeProxy>> types_;
std::vector<TypeProxy> types_;
std::vector<bool> optional_arguments_;
std::vector<bool> result_arguments_;
std::optional<ExpressionProxy> expression_;
@ -215,7 +205,7 @@ public:
//
bool is_on_heap() { return is_on_heap_; }
bool is_on_heap() const { return is_on_heap_; }
//