26 lines
564 B
Markdown
26 lines
564 B
Markdown
|
|
何度目だという[[評価環境]]の実装。
|
|
|
|
モジュールも考慮して、名前空間のOpenとかも含めた評価環境を実装したい。
|
|
|
|
名前の側で正規化するのがいいのか?
|
|
|
|
```rust
|
|
//Environment全体をSlotMapで管理する
|
|
struct Environment<V>{
|
|
namespace:Option<Symbol>
|
|
parent: Option<EnvKey>
|
|
children: Vec<EnvKey>
|
|
binds: Vec<(Symbol,V)>
|
|
}
|
|
```
|
|
|
|
letでスコープを広げたときはnamespaceなしで辿ることにする
|
|
|
|
最終的にはLanguage ServerでSpanからEnvironment
|
|
|
|
```rust
|
|
fn get_normalized_name()
|
|
|
|
|
|
``` |