38 coreInternal::setOrigin(*
this, *
this);
42 const node& getSubPod()
const override {
51 scope& subs()
override {
return *_subs; }
53 const modifier& getModifier()
const override {
return *_mod; }
56 baseObj* ret =
new super(*
this);
57 coreInternal::setOrigin(*ret, *
this);
61 clonable* cloneDeep()
const override {
62 me* ret =
new me(*
this);
63 ret->onCloneDeep(*
this);
67 void onCloneDeep(
const clonable& from)
override {
68 const me& rhs = (
const me&) from;
69 if(rhs._subs) _subs.
bind((
scope&) *rhs._subs->cloneDeep());
70 if(rhs._mod) _mod.
bind((
modifier&) *rhs._mod->cloneDeep());
74 void _setModifier(
const modifier& mod)
override { _mod.
bind(mod); }
Base class for representing byeol objects
Definition baseObj.hpp:73
Interface for objects that can be cloned
Definition clonable.hpp:13
Access modifier for type members
Definition modifier.hpp:13
Base class for all AST nodes in the byeol language
Definition node.hpp:195
represents native c++ type system for byeol language
Definition ntype.hpp:33
Template for easily defining baseObj origin objects
Definition tbaseObjOrigin.hpp:28
Template type wrapper providing entry point for meta information
Definition ttype.hpp:37
Weak reference smart pointer with type-safe access
Definition tweak.hpp:16
const T *get() const BY_CONST_FUNC(get()) using super nbool bind(const T &new1)
Binds a weak reference to the specified instance.
Type trait to check if T is subclass of super
Definition rtti.hpp:53