로딩중...
검색중...
일치하는것 없음
baseObj.hpp
이 파일의 문서화 페이지로 가기
1
2#pragma once
3
8#include "core/ast/tmock.hpp"
9
10namespace by {
11
12 class baseFunc;
13 typedef tnarr<baseFunc> funcs;
14 class frame;
15 class origin;
16 class obj;
17 class mgdType;
18 template <typename T> class tbaseObjOrigin;
19
73 class _nout baseObj: public node, public statable {
74 BY(ADT(baseObj, node))
75 friend class coreInternal;
76
77 protected:
83 explicit baseObj() = default;
90 explicit baseObj(const baseObj* org, nbool isScripted);
91
92 public:
93 using super::eval;
94 str eval(const args& a) override;
95
96 using super::subs;
97 scope& subs() override;
98
99 state getState() const override;
100 void setState(state new1) override;
101
102 using super::prioritize;
103 priorType prioritize(const args& a) const override;
104
105 virtual const baseObj& getOrigin() const;
106
107 using super::inFrame;
108 void inFrame(const bicontainable* args) const override;
109 using super::outFrame;
110 void outFrame() const override;
111
112 const src& getSrc() const override;
113
119 virtual const node& getSubPod() const;
120
121 virtual baseObj* make() const;
122
123 const modifier& getModifier() const override;
124
125 protected:
126 str _onEvalSub(node& sub, const args& a) override;
127 void _setSrc(const src& s) override;
136 virtual void _inFrame(frame& fr, const bicontainable* args) const;
137
144 virtual void _setType(const mgdType& new1);
145
146 virtual void _setModifier(const modifier& mod);
147
155
156 public:
157 inline static const std::string COMMON_NAME = "@common";
158 inline static const std::string EXPAND_NAME = "@expand";
159
160 protected:
161 tstr<baseObj> _org;
162 };
163
164 typedef tmock<baseObj> mockObj;
165} // namespace by
Function or object evaluation arguments
Definition args.hpp:22
Base class for representing byeol objects
Definition baseObj.hpp:73
virtual str _onBeforeCtor()
Hook method called before the object's constructor is fully executed.
virtual void _setType(const mgdType &new1)
Sets the script type for this base object.
virtual void _inFrame(frame &fr, const bicontainable *args) const
Enters this object's frame into the current execution stack.
str _onEvalSub(node &sub, const args &a) override
Protected virtual method for evaluating a sub-node.
baseObj(const baseObj *org, nbool isScripted)
Constructs a baseObj from an existing origin object.
virtual const node & getSubPod() const
Retrieves a sub-pod represented as a node.
baseObj()=default
Default constructor for baseObj.
Definition coreInternal.hpp:39
Execution frame
Definition frame.hpp:52
Script type for byeol objects
Definition mgdType.hpp:18
Access modifier for type members
Definition modifier.hpp:13
Base class for all AST nodes in the byeol language
Definition node.hpp:195
Source location information
Definition src.hpp:15
Interface for objects with compilation state
Definition statable.hpp:21
Definition tnarr.hpp:9
priorType
Definition tpriorities.hpp:10
to Top