Loading...
Searching...
No Matches
coreInternal.hpp
1#pragma once
2
3#include "core/common/def.hpp"
4
5namespace by {
6
7 class node;
8 class src;
9 class mgdType;
10 class baseObj;
11 class modifier;
12 class ntype;
13 class args;
14 class frames;
15 class frame;
16 class parser;
17 class exprMaker;
18 class func;
19 class baseCtor;
20 class origin;
21 class genericOrigin;
22 class obj;
23 typedef std::map<std::string, tstr<obj>> orgCache;
24 class forExpr;
25 class getExpr;
26 template <typename T, typename TACTIC> class tnarr;
27 typedef tnarr<node, strTactic> narr;
28 template <typename T> class tbridge;
29 class defArrayExpr;
30
39 class _nout coreInternal {
40 BY(ME(coreInternal))
41
42 public:
43 static void setSrc(node& me, const src& s);
44 static void setType(baseObj& me, const mgdType& new1);
45 static void setModifier(baseObj& me, const modifier& mod);
46 static void setOrigin(baseObj& me, const baseObj& newOrg);
47 static void setOrigin(func& me, const baseObj& newOrg);
48 static void setOrigin(baseCtor& me, const baseObj& newOrg);
49 static void setSubPod(origin& me, const node& subpod);
50 static void setSubPod(origin& me, const node* subpod) BY_SIDE_FUNC(subpod, setSubPod(me, *subpod), void());
51 static ntype& getType(node& me);
52 static str onEvalSub(node& me, node& sub, const args& a);
53 static frames* getFrames();
54 static frame* getNowFrame();
55 static exprMaker& getMaker(parser& me);
56
57 template <typename T> static tbridge<T>* makeBridge(T* real) { return new tbridge<T>(real); }
58
59 template <typename T> static tbridge<T>* makeBridge() { return new tbridge<T>(); }
60
61 static orgCache& getCache(genericOrigin& me);
62 static str getContainer(forExpr& me);
63 static node* getMe(getExpr& me);
64 static args* getArgs(getExpr& me);
65 static node* onGet(const getExpr& me, node& it);
66 static narr& getElems(defArrayExpr& me);
67 };
68} // namespace by
Function or object evaluation arguments.
Definition args.hpp:22
Base class for all constructor types.
Definition baseCtor.hpp:13
Base class for representing byeol objects.
Definition baseObj.hpp:73
Definition coreInternal.hpp:39
Array literal expression.
Definition defArrayExpr.hpp:18
Factory for creating expressions with source location information.
Definition exprMaker.hpp:18
For loop expression.
Definition forExpr.hpp:15
Execution frame.
Definition frame.hpp:52
Container for execution frame stack.
Definition frames.hpp:24
Function definition in byeol language.
Definition func.hpp:38
Definition genericOrigin.hpp:25
Expression for property and method access.
Definition getExpr.hpp:18
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
represents native c++ type system for byeol language
Definition ntype.hpp:33
User-defined origin type.
Definition origin.hpp:99
Parser for byeol language source code.
Definition parser.hpp:126
Source location information.
Definition src.hpp:15
Definition tnarr.hpp:9
std::map< std::string, tstr< obj > > orgCache
Generic type origin with type parameters.
Definition genericOrigin.hpp:23
to Top