mirror of
https://codeberg.org/ProgramSnail/lang.git
synced 2026-01-25 21:17:11 +00:00
bug fixes, tests passed, result modifier (!) added to function arguments and to types
This commit is contained in:
parent
4470454838
commit
3914ff7d8b
16 changed files with 418 additions and 62 deletions
|
|
@ -34,26 +34,28 @@ private:
|
|||
class Type : public Node {
|
||||
public:
|
||||
Type(Node node, Identifier &&identifier, bool is_on_heap = false,
|
||||
bool is_optional = false)
|
||||
bool is_optional = false, bool is_result = false)
|
||||
: Node(node), name_(std::move(identifier)), is_on_heap_(is_on_heap),
|
||||
is_optional_(is_optional) {}
|
||||
is_optional_(is_optional), is_result_(is_result) {}
|
||||
|
||||
Type(Node node, const Identifier &identifier, bool is_on_heap = false,
|
||||
bool is_optional = false)
|
||||
bool is_optional = false, bool is_result = false)
|
||||
: Node(node), name_(identifier), is_on_heap_(is_on_heap),
|
||||
is_optional_(is_optional) {}
|
||||
is_optional_(is_optional), is_result_(is_result) {}
|
||||
|
||||
Type(Node node, Identifier &&identifier, std::vector<TypeProxy> &¶meters,
|
||||
bool is_on_heap = false, bool is_optional = false)
|
||||
bool is_on_heap = false, bool is_optional = false,
|
||||
bool is_result = false)
|
||||
: Node(node), name_(std::move(identifier)),
|
||||
parameters_(std::move(parameters)), is_on_heap_(is_on_heap),
|
||||
is_optional_(is_optional) {}
|
||||
is_optional_(is_optional), is_result_(is_result) {}
|
||||
|
||||
Type(Node node, const Identifier &identifier,
|
||||
std::vector<TypeProxy> &¶meters, bool is_on_heap = false,
|
||||
bool is_optional = false)
|
||||
bool is_optional = false, bool is_result = false)
|
||||
: Node(node), name_(identifier), parameters_(std::move(parameters)),
|
||||
is_on_heap_(is_on_heap), is_optional_(is_optional) {}
|
||||
is_on_heap_(is_on_heap), is_optional_(is_optional),
|
||||
is_result_(is_result) {}
|
||||
|
||||
std::string *get_name() { return name_.get(); }
|
||||
|
||||
|
|
@ -71,12 +73,15 @@ public:
|
|||
|
||||
bool is_optional() { return is_optional_; }
|
||||
|
||||
bool is_result() { return is_result_; }
|
||||
|
||||
private:
|
||||
Identifier name_;
|
||||
std::vector<TypeProxy> parameters_;
|
||||
// or use allocator ??
|
||||
bool is_on_heap_ = false;
|
||||
bool is_optional_ = false;
|
||||
bool is_result_ = false;
|
||||
};
|
||||
|
||||
class TypeStorage {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue