#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()
添加符号到符号作用域
- 参数
-
- 返回
- 是否添加成功(如果符号已存在则返回false)
◆ findSymbol()
| Expr * ast::SymbolScope::findSymbol |
( |
StringView | name, |
|
|
bool | searchParent = true ) const |
查找符号作用域中的符号
- 参数
-
| name | 符号名称 |
| searchParent | 是否向上查找父符号作用域 |
- 返回
- 符号对应的表达式,如果不存在则返回nullptr
◆ getSymbols()
| SymbolScope::SymbolList ast::SymbolScope::getSymbols |
( |
| ) |
const |
◆ hasSymbol()
| bool ast::SymbolScope::hasSymbol |
( |
StringView | name, |
|
|
bool | searchParent = true ) const |
检查符号是否存在
- 参数
-
| name | 符号名称 |
| searchParent | 是否向上查找父符号表 |
- 返回
- 符号是否存在
◆ parent()
◆ removeSymbol()
| bool ast::SymbolScope::removeSymbol |
( |
StringView | name | ) |
|
◆ resolveSymbol()
解析符号作用域中的符号,如果不存在则创建一个新的变量
- 参数
-
- 返回
- 符号对应的表达式指针
◆ setParent()
| void ast::SymbolScope::setParent |
( |
SymbolScope * | parent | ) |
|
◆ setSymbol()
该类的文档由以下文件生成: