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

This commit is contained in:
Roberto Raggi
2010-08-12 16:30:43 +02:00
parent ade1762af3
commit 47069717f8
2 changed files with 17 additions and 0 deletions

View File

@@ -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);

View File

@@ -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;