Annotate the ClassSpecifierAST node with the class symbol.

This commit is contained in:
Roberto Raggi
2009-02-09 11:35:57 +01:00
parent 1dcabe5a3a
commit 6672f89ff5
3 changed files with 42 additions and 0 deletions

View File

@@ -515,6 +515,9 @@ public:
DeclarationAST *member_specifiers;
unsigned rbrace_token;
public: // annotations
Class *class_symbol;
public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;

View File

@@ -300,6 +300,7 @@ bool CheckSpecifier::visit(ClassSpecifierAST *ast)
{
Name *className = semantic()->check(ast->name, _scope);
Class *klass = control()->newClass(ast->firstToken(), className);
ast->class_symbol = klass;
unsigned classKey = tokenKind(ast->classkey_token);
if (classKey == T_CLASS)
klass->setClassKey(Class::ClassKey);