Refactored the AST visitors.

Now, the ASTVisitor constructor takes a valid reference to a TranslationUnit.
This commit is contained in:
Roberto Raggi
2009-11-17 13:28:20 +01:00
parent 04a333bac6
commit 5d7def6d2a
13 changed files with 49 additions and 32 deletions

View File

@@ -191,8 +191,8 @@ class FindUses: protected ASTVisitor
FindScope findScope;
public:
FindUses(Control *control)
: ASTVisitor(control)
FindUses(TranslationUnit *translationUnit)
: ASTVisitor(translationUnit)
{ }
// local and external uses.
@@ -382,8 +382,8 @@ class FunctionDefinitionUnderCursor: protected ASTVisitor
FunctionDefinitionAST *_functionDefinition;
public:
FunctionDefinitionUnderCursor(Control *control)
: ASTVisitor(control),
FunctionDefinitionUnderCursor(TranslationUnit *translationUnit)
: ASTVisitor(translationUnit),
_line(0), _column(0)
{ }
@@ -427,8 +427,9 @@ class ProcessDeclarators: protected ASTVisitor
bool _visitFunctionDeclarator;
public:
ProcessDeclarators(Control *control)
: ASTVisitor(control), _visitFunctionDeclarator(true)
ProcessDeclarators(TranslationUnit *translationUnit)
: ASTVisitor(translationUnit),
_visitFunctionDeclarator(true)
{ }
QList<DeclaratorIdAST *> operator()(FunctionDefinitionAST *ast)
@@ -2030,14 +2031,13 @@ SemanticInfo SemanticHighlighter::semanticInfo(const Source &source)
doc->check();
}
Control *control = doc->control();
TranslationUnit *translationUnit = doc->translationUnit();
AST *ast = translationUnit->ast();
FunctionDefinitionUnderCursor functionDefinitionUnderCursor(control);
FunctionDefinitionUnderCursor functionDefinitionUnderCursor(translationUnit);
FunctionDefinitionAST *currentFunctionDefinition = functionDefinitionUnderCursor(ast, source.line, source.column);
FindUses useTable(control);
FindUses useTable(translationUnit);
useTable(currentFunctionDefinition);
SemanticInfo semanticInfo;