#include <SymbolScope.hpp>
|
|
using | SymbolMap = std::unordered_map<std::string, SharedPtr<Expr>> |
| |
|
using | SymbolPair = std::pair<std::string, SharedPtr<Expr>> |
| |
|
using | SymbolList = std::vector<SymbolPair> |
| |
符号作用域
符号作用域用于存储符号(Symbol )与变量(Variable)、函数(Function)等的映射关系。
◆ SymbolScope()
◆ addSymbol()
◆ findSymbol()
| Expr * ast::SymbolScope::findSymbol |
( |
StringView | name, |
|
|
bool | searchParent = true ) const |
|
overridevirtual |
查找符号作用域中的符号
- 参数
-
| name | 符号名称 |
| searchParent | 是否向上查找父符号作用域 |
- 返回
- 符号对应的表达式,如果不存在则返回nullptr
实现了 ast::ISymbolScope.
◆ getSymbols()
| SymbolScope::SymbolList ast::SymbolScope::getSymbols |
( |
| ) |
const |
◆ hasSymbol()
| bool ast::SymbolScope::hasSymbol |
( |
StringView | name, |
|
|
bool | searchParent = true ) const |
检查符号是否存在
- 参数
-
| name | 符号名称 |
| searchParent | 是否向上查找父符号表 |
- 返回
- 符号是否存在
◆ parent()
◆ removeSymbol()
| errc_t ast::SymbolScope::removeSymbol |
( |
StringView | name | ) |
|
◆ resolveSymbol()
◆ setParent()
| void ast::SymbolScope::setParent |
( |
SymbolScope * | parent | ) |
|
◆ setSymbol()
该类的文档由以下文件生成: