slot.hpp
Go to the documentation of this file.
1
2#pragma once
3
6#include "core/ast/origin.hpp"
7
8namespace by {
9
10 class visitor;
11
16 class _nout slot: public node {
17 BY(CLASS(slot, node), VISIT())
18
19 public:
20 slot(const manifest& manifest);
21 slot(const manifest& manifest, const obj& pack);
22
23 public:
24 manifest& getManifest();
25 const manifest& getManifest() const;
26 nbool isValid() const;
27 virtual obj& getPack();
28 const obj& getPack() const BY_CONST_FUNC(getPack())
29 void rel() override;
30
31 void addDependent(me& dependent);
32 void addDependent(me* it) BY_SIDE_FUNC(addDependent)
33
34 const tnarr<me>& getDependents() const;
35
36 using super::subs;
37 scope& subs() override;
38
39 using super::prioritize;
40 priorType prioritize(const args& a) const override;
41
42 using super::run;
43 str run(const args& a) override;
44
45 str getEval() const override;
46
47 protected:
48 virtual nbool _invalidate();
49 void _setValid(nbool valid);
50 str _onRunSub(node& sub, const args& a) override;
51
52 private:
53 void _rel();
54
55 protected:
56 tstr<obj> _pak;
57
58 private:
59 manifest _manifest;
60 nbool _isValid;
61 tnarr<me> _dependents;
62 };
63
67} // namespace by
Function call arguments container.
Definition: args.hpp:13
Base class for all AST nodes in byeol language.
Definition: node.hpp:30
Managed object in byeol programming environment.
Definition: obj.hpp:19
Pack slot for loading and management.
Definition: slot.hpp:16
str getEval() const override
Definition: tnarr.hpp:9
Definition: tnbicontainer.hpp:8
Definition: tnmap.hpp:11
pack manifest information
Definition: manifest.hpp:29
priorType
the lower value, the higher priority.
Definition: tpriorities.hpp:8