void AnalysisVisitor::visit(ast::SimpleVar & e) { logger.log(L"SimpleVar", e.getSymbol().getName(), e.getLocation()); symbol::Symbol & sym = e.getSymbol(); Info & info = dm.read(sym, &e); Result & res = e.getDecorator().setResult(info.type); res.setConstant(info.getConstant()); res.setRange(info.getRange()); res.setMaxIndex(info.getMaxIndex()); setResult(res); }
void GlobalsCollector::visit(ast::SimpleVar & e) { if (!e.getParent()->isFieldExp() || static_cast<ast::FieldExp *>(e.getParent())->getTail() != &e) { const symbol::Symbol & sym = e.getSymbol(); if (locals.find(sym) == locals.end()) { globals.emplace(sym); } } }