로딩중...
검색중...
일치하는것 없음
baseFunc.hpp
이 파일의 문서화 페이지로 가기
1
2#pragma once
3
4#include "core/ast/node.hpp"
6
7namespace by {
8
9 class param;
10 template <typename T, typename TACTIC> class tnarr;
11 class params;
12 class visitor;
13
41 class _nout baseFunc: public node {
42 BY(ME(baseFunc, node), VISIT())
43
44 public:
45 baseFunc() = default;
46
47 baseFunc(const modifier& mod);
48
49 public:
50 using super::subs;
51 scope& subs() override;
52
53 using super::prioritize;
54 priorType prioritize(const args& a) const override;
55
64 virtual params& getParams();
65 const params& getParams() const BY_CONST_FUNC(getParams());
66
78 virtual const node* getRet() const;
79
80 const src& getSrc() const override;
81
82 const modifier& getModifier() const override;
83
84 virtual const baseObj& getOrigin() const = 0;
85
91 static nbool isFuncButNotClosure(const node& n);
92 static nbool isFuncButNotClosure(const node* it) BY_SIDE_FUNC(isFuncButNotClosure);
93
94 protected:
95 void _setSrc(const src& newSrc) override;
96
97 private:
98 nbool _isNatureNumber(const node& it) const;
99 priorType _prioritize(const node& param, const node& arg) const;
100
101 private:
102 tstr<modifier> _mod;
103 tstr<src> _src;
104
105 public:
106 static inline const std::string ME = "me";
107 };
108
109 typedef tnarr<baseFunc> funcs;
110} // namespace by
Function or object evaluation arguments
Definition args.hpp:22
Base class for all function types
Definition baseFunc.hpp:41
virtual params & getParams()
Base class for representing byeol objects
Definition baseObj.hpp:73
Access modifier for type members
Definition modifier.hpp:13
Base class for all AST nodes in the byeol language
Definition node.hpp:195
Function parameter
Definition param.hpp:14
Function parameter list container
Definition params.hpp:16
Source location information
Definition src.hpp:15
Definition tnarr.hpp:9
priorType
Definition tpriorities.hpp:10
to Top