Commit 47069717 authored by Roberto Raggi's avatar Roberto Raggi

Added Bind::switchScope() and Bind::currentScope().

parent ade1762a
......@@ -64,6 +64,7 @@ namespace { bool debug_todo = false; }
Bind::Bind(TranslationUnit *unit)
: ASTVisitor(unit),
_currentScope(0),
_currentExpression(0),
_currentName(0)
{
......@@ -71,6 +72,18 @@ Bind::Bind(TranslationUnit *unit)
translationUnit(unit->ast()->asTranslationUnit());
}
Scope *Bind::currentScope() const
{
return _currentScope;
}
Scope *Bind::switchScope(Scope *scope)
{
Scope *previousScope = _currentScope;
_currentScope = scope;
return previousScope;
}
void Bind::statement(StatementAST *ast)
{
accept(ast);
......
......@@ -72,6 +72,9 @@ public:
FullySpecifiedType coreDeclarator(CoreDeclaratorAST *ast, const FullySpecifiedType &init);
FullySpecifiedType postfixDeclarator(PostfixDeclaratorAST *ast, const FullySpecifiedType &init);
Scope *currentScope() const;
Scope *switchScope(Scope *scope);
protected:
using ASTVisitor::translationUnit;
......@@ -266,6 +269,7 @@ protected:
virtual bool visit(ArrayDeclaratorAST *ast);
private:
Scope *_currentScope;
ExpressionTy _currentExpression;
const Name *_currentName;
FullySpecifiedType _currentType;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment