로딩중...
검색중...
일치하는것 없음
defBlock.hpp
이 파일의 문서화 페이지로 가기
1
2#pragma once
3
4#include "core/ast/scope.hpp"
6
7namespace by {
8
9 class defVarExpr;
10
16 class _nout defBlock: public instance {
17 BY(CLASS(defBlock, instance))
18
19 public:
20 defBlock();
21
22 public:
23 me& addCommon(node& stmt);
24 me& addCommon(node* it) BY_SIDE_FUNC(it, addCommon(*it), *this);
25
26 me& addScope(const std::string& name, node& stmt);
27 me& addScope(const std::string* name, node& stmt) BY_SIDE_FUNC(name, addScope(*name, stmt), *this);
28 me& addScope(const std::string& name, node* it) BY_SIDE_FUNC(it, addScope(name, *it), *this);
29 me& addScope(const std::string* name, node* stmt) BY_SIDE_FUNC(name&& stmt, addScope(*name, *stmt), *this);
30
31 me& expand(node& stmt);
32 me& expand(node* it) BY_SIDE_FUNC(it, expand(*it), *this);
33
34 const narr& getExpands() const;
35 scope& getScope();
36 const scope& getScope() const BY_CONST_FUNC(getScope())
37 const narr& getCommon() const;
38
39 private:
40 tstr<scope> _scope;
41 tstr<narr> _common;
42 tstr<narr> _expands;
43 };
44}
Definition block for organizing object definitions
Definition defBlock.hpp:16
Base class for all AST nodes in the byeol language
Definition node.hpp:195
Definition tnarr.hpp:9
to Top