로딩중...
검색중...
일치하는것 없음
graphVisitor.hpp
이 파일의 문서화 페이지로 가기
1
2#pragma once
3
5
6namespace by {
7
15 class _nout graphVisitor: public visitor {
17
18 public:
20
21 public:
22 nbool onVisit(const visitInfo& i, node& visitee, nbool alreadyVisited) override;
23 void onLeave(const visitInfo& i, node& visitee, nbool alreadyVisited) override;
24 nbool onVisit(const visitInfo& i, obj& obj, nbool alreadyVisited) override;
25 nbool onVisit(const visitInfo& i, baseFunc& fun, nbool alreadyVisited) override;
26 nbool onVisit(const visitInfo& i, func& fun, nbool alreadyVisited) override;
27 nbool onVisit(const visitInfo& i, defNestedFuncExpr& e, nbool alreadyVisited) override;
28 nbool onVisit(const visitInfo& i, genericOrigin& o, nbool alreadyVisited) override;
29 nbool onVisit(const visitInfo& i, getExpr& e, nbool alreadyVisited) override;
30 nbool onVisit(const visitInfo& i, evalExpr& e, nbool alreadyVisited) override;
31 nbool onVisit(const visitInfo& i, FBOExpr& e, nbool alreadyVisited) override;
32 nbool onVisit(const visitInfo& i, FUOExpr& e, nbool alreadyVisited) override;
33 nbool onVisit(const visitInfo& i, assignExpr& e, nbool alreadyVisited) override;
34 nbool onVisit(const visitInfo& i, defVarExpr& e, nbool alreadyVisited) override;
35 nbool onVisit(const visitInfo& i, nInt& e, nbool alreadyVisited) override;
36 nbool onVisit(const visitInfo& i, nFlt& e, nbool alreadyVisited) override;
37 nbool onVisit(const visitInfo& i, nStr& e, nbool alreadyVisited) override;
38 nbool onVisit(const visitInfo& i, nByte& e, nbool alreadyVisited) override;
39 nbool onVisit(const visitInfo& i, nBool& e, nbool alreadyVisited) override;
40 me& setShowData(nbool showData);
41 nbool isShowData() const;
42
43 protected:
44 void _onWork() override;
45
46 private:
47 void _drawIndent();
48 void _onIndent();
49 void _drawFrame(const visitInfo& i);
50 nbool _isLastFrame(const visitInfo& i);
51
52 template <typename T> nbool _onVisitPrimitive(const visitInfo& i, T& e) {
53 _drawFrame(i);
54 using platformAPI::foreColor;
55 _showModifier(e.getModifier());
56 std::cout << foreColor(LIGHTRED) << i.name << " " << foreColor(CYAN) << e.getType().getName()
57 << foreColor(LIGHTGRAY) << " = " << foreColor(YELLOW) << e.get();
58 return false;
59 }
60
61 std::string _encodeNewLine(const std::string& msg) const;
62 std::string _getNameFrom(const node& it) const;
63 std::string _getNameFrom(const node* it) const BY_SIDE_FUNC(it, _getNameFrom(*it), "frame");
64 void _showModifier(const modifier& mod);
65
66 private:
67 std::vector<nbool> _parentsLast;
68 std::vector<const char*> _indents;
69 nbool _isStart;
70 nbool _isShowData;
71 };
72} // namespace by
Fundamental Binary Operator expression
Definition FBOExpr.hpp:18
Fundamental Unary Operator expression
Definition FUOExpr.hpp:17
Assignment expression
Definition assignExpr.hpp:19
Base class for all function types
Definition baseFunc.hpp:41
Nested function definition expression
Definition defNestedFuncExpr.hpp:13
Variable definition expression base class
Definition defVarExpr.hpp:18
Function/method call expression
Definition evalExpr.hpp:15
Function definition in byeol language
Definition func.hpp:38
Definition genericOrigin.hpp:25
Expression for property and method access
Definition getExpr.hpp:18
AST graph visualization visitor
Definition graphVisitor.hpp:15
Access modifier for type members
Definition modifier.hpp:13
Boolean primitive type in byeol language
Definition nBool.hpp:13
Byte primitive type in byeol language
Definition nByte.hpp:13
Float primitive type in byeol language
Definition nFlt.hpp:13
Integer primitive type in byeol language
Definition nInt.hpp:13
String primitive type in byeol language
Definition nStr.hpp:14
Base class for all AST nodes in the byeol language
Definition node.hpp:195
Byeol runtime environment object
Definition obj.hpp:62
Definition tnarr.hpp:9
Visitor context information
Definition visitInfo.hpp:11
Base visitor class for AST traversal
Definition visitor.hpp:61
to Top