|
|
|
@ -34,16 +34,18 @@ Variable* Scope::GetVariable(const std::string &name) const {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Variable* Scope::GetOrCreateVariable(const std::string &name) {
|
|
|
|
|
Variable* var;
|
|
|
|
|
var = GetVariable(name);
|
|
|
|
|
if (var == nullptr) {
|
|
|
|
|
auto err = CreateVariable(name);
|
|
|
|
|
Variable* var = GetVariable(name);
|
|
|
|
|
if (var != nullptr) {
|
|
|
|
|
return var;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Error err = CreateVariable(name);
|
|
|
|
|
if (!err.isOK()) {
|
|
|
|
|
return nullptr;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
return GetVariable(name);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool Scope::HaveVariable(const std::string &name) {
|
|
|
|
|
return vars_.count(name) != 0;
|
|
|
|
|