autoslot.hpp
Go to the documentation of this file.
1
2#pragma once
3
7#include "core/ast/scope.hpp"
8#include "core/ast/slot.hpp"
9
10namespace by {
11
12 class visitor;
13
18 class _nout autoslot: public slot, public packMakable, public statable {
19 BY(CLASS(autoslot, slot), VISIT())
20
21 public:
22 autoslot(const manifest& manifest, const packLoadings& loadingsInHeap);
23 ~autoslot() override;
24
25 public:
26 state getState() const override;
27 void setState(state new1) override;
28
29 using super::getPack;
30 obj& getPack() override;
31
32 void rel() override;
33
41 void setReport(errReport& rpt);
42 void setReport(errReport* it) BY_SIDE_FUNC(setReport);
43
44 protected:
45 nbool _invalidate() override;
46
47 private:
48 tstr<srcs> parse(errReport& rpt, bicontainable& tray) override;
49 nbool verify(errReport& rpt, obj& pak) override;
50 nbool link();
51 void _rel();
52
53 private:
54 packLoadings _loadings;
55 state _state;
56 srcs _srcs;
57 tstr<errReport> _rpt;
58 };
59} // namespace by
Automatic slot with pack loading capabilities.
Definition: autoslot.hpp:18
void rel() override
void setReport(errReport &rpt)
Error reporting and collection system.
Definition: errReport.hpp:14
Managed object in byeol programming environment.
Definition: obj.hpp:19
Interface for pack creation and verification.
Definition: packMakable.hpp:20
Pack slot for loading and management.
Definition: slot.hpp:16
Interface for objects with compilation state.
Definition: statable.hpp:17
Template bidirectional container interface.
Definition: tbicontainable.hpp:17
Strong reference smart pointer with strict type checking.
Definition: tstr.hpp:13
pack manifest information
Definition: manifest.hpp:29