로딩중...
검색중...
일치하는것 없음
generalizer.hpp
이 파일의 문서화 페이지로 가기
1
2#pragma once
3
4#include "core/ast/params.hpp"
6
7namespace by {
8
17 class _nout generalizer: public visitor {
19
20 public:
24 me& add(const obj& origin);
25 me& add(const param& newParam);
26 me& add(const params& newParams);
27
28 using super::onVisit;
29 nbool onVisit(const visitInfo& i, asExpr& me, nbool) override;
30 nbool onVisit(const visitInfo& i, blockExpr& me, nbool) override;
31 nbool onVisit(const visitInfo& i, defVarExpr& me, nbool) override;
32 nbool onVisit(const visitInfo& i, evalExpr& me, nbool) override;
33 nbool onVisit(const visitInfo& i, baseFunc& me, nbool) override;
34 nbool onVisit(const visitInfo& i, ctor& me, nbool) override;
35 nbool onVisit(const visitInfo& i, baseCtor& me, nbool) override;
36 nbool onVisit(const visitInfo& i, params& me);
37 nbool onVisit(const visitInfo& i, FBOExpr& me, nbool) override;
38 nbool onVisit(const visitInfo& i, baseObj& me, nbool) override;
39 nbool onVisit(const visitInfo& i, getGenericExpr& me, nbool) override;
40
41 protected:
42 void _onWork() override;
43
44 private:
45 str _findOrigin(const node& toReplace) const;
46 str _findOrigin(const node* it) const BY_SIDE_FUNC(_findOrigin);
47 str _findOriginFrom(const getExpr& expr) const;
48 str _findOriginFrom(const getGenericExpr& expr) const;
49 std::string _makeParamsKey() const;
50
51 private:
52 params _params;
53 mutable std::string _paramsKey;
54 tstr<obj> _org;
55 };
56} // namespace by
Fundamental Binary Operator expression
Definition FBOExpr.hpp:18
Type casting expression
Definition asExpr.hpp:17
Base class for all constructor types
Definition baseCtor.hpp:13
Base class for all function types
Definition baseFunc.hpp:41
Base class for representing byeol objects
Definition baseObj.hpp:73
Block expression
Definition blockExpr.hpp:24
Constructor function for byeol objects
Definition ctor.hpp:12
Variable definition expression base class
Definition defVarExpr.hpp:18
Function/method call expression
Definition evalExpr.hpp:15
Base class for all expressions
Definition expr.hpp:36
Visitor for generic type parameter replacement
Definition generalizer.hpp:17
me & add(const obj &origin)
Expression for property and method access
Definition getExpr.hpp:18
Generic type access expression
Definition getGenericExpr.hpp:19
Base class for all AST nodes in the byeol language
Definition node.hpp:195
Byeol runtime environment object
Definition obj.hpp:62
User-defined origin type
Definition origin.hpp:99
Function parameter
Definition param.hpp:14
Function parameter list container
Definition params.hpp:16
Definition tnarr.hpp:9
Visitor context information
Definition visitInfo.hpp:11
Base visitor class for AST traversal
Definition visitor.hpp:61
to Top