From 8f84f81e6d319404ef549726c62fdbef1d699df0 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Tue, 31 Mar 2009 13:56:28 +0200 Subject: Introduced startOffset(), endOffset(), getPosition(), getStartPosition(), and getEndPosition(). --- src/shared/cplusplus/CheckDeclaration.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/shared/cplusplus/CheckDeclaration.cpp') diff --git a/src/shared/cplusplus/CheckDeclaration.cpp b/src/shared/cplusplus/CheckDeclaration.cpp index c6de2cf4aa..c508110167 100644 --- a/src/shared/cplusplus/CheckDeclaration.cpp +++ b/src/shared/cplusplus/CheckDeclaration.cpp @@ -55,6 +55,7 @@ #include "CoreTypes.h" #include "Symbols.h" #include "Control.h" +#include "Literals.h" #include CPLUSPLUS_BEGIN_NAMESPACE @@ -186,6 +187,9 @@ bool CheckDeclaration::visit(SimpleDeclarationAST *ast) } Declaration *symbol = control()->newDeclaration(location, name); + symbol->setStartOffset(tokenAt(ast->firstToken()).offset); + symbol->setEndOffset(tokenAt(ast->lastToken()).offset); + symbol->setType(control()->integerType(IntegerType::Int)); symbol->setType(declTy); @@ -259,6 +263,8 @@ bool CheckDeclaration::visit(FunctionDefinitionAST *ast) } Function *fun = funTy->asFunctionType(); + fun->setStartOffset(tokenAt(ast->firstToken()).offset); + fun->setEndOffset(tokenAt(ast->lastToken()).offset); if (ast->declarator) fun->setSourceLocation(ast->declarator->firstToken()); fun->setName(name); @@ -335,6 +341,8 @@ bool CheckDeclaration::visit(NamespaceAST *ast) sourceLocation = ast->identifier_token; Namespace *ns = control()->newNamespace(sourceLocation, namespaceName); + ns->setStartOffset(tokenAt(ast->firstToken()).offset); + ns->setEndOffset(tokenAt(ast->lastToken()).offset); ast->symbol = ns; _scope->enterSymbol(ns); semantic()->check(ast->linkage_body, ns->members()); // ### we'll do the merge later. -- cgit v1.2.1