interpreter.hpp
Go to the documentation of this file.
1
2#pragma once
3
6
7namespace by {
8
13 class _nout interpreter: public worker<tstr<slot>, slot> {
15 BY(CLASS(interpreter, __super7))
16
17 public:
18 enum logFlag2 {
19 LOG_STRUCTURE = 1 << 7,
20 LOG_GRAPH_ON_EX = 1 << 8
21 };
22
23 public:
25
26 public:
27 me& addSupply(const srcSupply& supply);
28 me& relSupplies();
29 nbool isParsed() const;
30 nbool isVerified() const;
31 node* getSubPack();
32 const node* getSubPack() const BY_CONST_FUNC(getSubPack())
33
34 void rel() override;
35
36 protected:
37 tstr<slot> _onWork() override;
38
39 private:
40 nbool _isPackExist();
41
42 void _parse();
43 void _expand();
44 void _verify();
45 void _log() const;
46 void _showGraph(nbool showData) const;
47
48 private:
49 verifier _veri;
50 parser _pser;
51 nbool _isParsed;
52 };
53} // namespace by
High-level interpreter for byeol language.
Definition: interpreter.hpp:13
Base class for all AST nodes in byeol language.
Definition: node.hpp:30
Parser for byeol language source code.
Definition: parser.hpp:43
Pack slot for loading and management.
Definition: slot.hpp:16
Source code supply interface.
Definition: srcSupply.hpp:15
Strong reference smart pointer with strict type checking.
Definition: tstr.hpp:13
AST verifier for semantic analysis.
Definition: verifier.hpp:20
Base worker template for processing tasks.
Definition: worker.hpp:28