mirror of
https://github.com/ValKmjolnir/Nasal-Interpreter.git
synced 2026-07-23 19:39:02 +08:00
29 lines
784 B
C++
29 lines
784 B
C++
#include "symbol_finder.h"
|
|
|
|
bool symbol_finder::visit_definition_expr(definition_expr* node) {
|
|
if (node->get_variable_name()) {
|
|
symbols.push_back(node->get_variable_name()->get_name());
|
|
} else {
|
|
for(auto i : node->get_variables()->get_variables()) {
|
|
symbols.push_back(i->get_name());
|
|
}
|
|
}
|
|
node->get_value()->accept(this);
|
|
return true;
|
|
}
|
|
|
|
bool symbol_finder::visit_function(function* node) {
|
|
return true;
|
|
}
|
|
|
|
bool symbol_finder::visit_iter_expr(iter_expr* node) {
|
|
if (node->get_name()) {
|
|
symbols.push_back(node->get_name()->get_name());
|
|
}
|
|
}
|
|
|
|
const std::vector<std::string>& symbol_finder::do_find(code_block* root) {
|
|
symbols.clear();
|
|
root->accept(this);
|
|
return symbols;
|
|
} |