Inferno  0.2
IdentifierTracker Class Reference

#include <identifier_tracker.hpp>

List of all members.

Classes

struct  TNode

Public Member Functions

 IdentifierTracker (shared_ptr< Node > g)
void Add (clang::IdentifierInfo *II, shared_ptr< Node > node, clang::Scope *S)
void PushScope (clang::Scope *S, shared_ptr< Node > n)
 Push a scope based on supplied Inferno tree Node.
void SeenScope (clang::Scope *S)
virtual void PopScope (clang::Scope *S)
shared_ptr< NodeGet (const clang::IdentifierInfo *II, shared_ptr< Node > iscope=shared_ptr< Node >(), bool recurse=true)
shared_ptr< NodeTryGet (const clang::IdentifierInfo *II, shared_ptr< Node > iscope=shared_ptr< Node >(), bool recurse=true)
void SetNextRecord (shared_ptr< Node > n=shared_ptr< Node >())
shared_ptr< NodeGetCurrent ()

Detailed Description

Definition at line 19 of file identifier_tracker.hpp.


Constructor & Destructor Documentation

Definition at line 8 of file identifier_tracker.cpp.

References TRACE.


Member Function Documentation

void IdentifierTracker::Add ( clang::IdentifierInfo *  II,
shared_ptr< Node node,
clang::Scope *  S 
)

Associate supplied node with supplied identifier and scope. Will remain until the scope is popped. S must be current scope due to implementation.

Definition at line 131 of file identifier_tracker.cpp.

References SeenScope(), and TRACE.

shared_ptr< Node > IdentifierTracker::Get ( const clang::IdentifierInfo *  II,
shared_ptr< Node iscope = shared_ptr<Node>(),
bool  recurse = true 
)

Definition at line 236 of file identifier_tracker.cpp.

References ASSERT, FOREACH, TRACE, and TryGet().

Definition at line 104 of file identifier_tracker.hpp.

void IdentifierTracker::PopScope ( clang::Scope *  S) [virtual]

ActOnPopScope - When a scope is popped, if any typedefs are now out-of-scope, they are removed from the clang::IdentifierInfo::FETokenInfo field.

Definition at line 80 of file identifier_tracker.cpp.

References ASSERT, and TRACE.

void IdentifierTracker::PushScope ( clang::Scope *  S,
shared_ptr< Node n 
)

Push a scope based on supplied Inferno tree Node.

Definition at line 35 of file identifier_tracker.cpp.

References ASSERT.

void IdentifierTracker::SeenScope ( clang::Scope *  S)

Let identifier tracker know we saw a scope. We must do this before calling other functions so we catch all the scope changes that are not communicated to us any other way.

Definition at line 115 of file identifier_tracker.cpp.

References ASSERT, and TRACE.

Referenced by Add().

Definition at line 91 of file identifier_tracker.hpp.

References ASSERT, and TRACE.

shared_ptr< Node > IdentifierTracker::TryGet ( const clang::IdentifierInfo *  II,
shared_ptr< Node iscope = shared_ptr<Node>(),
bool  recurse = true 
)

Definition at line 261 of file identifier_tracker.cpp.

References ASSERT, NOMATCH, and TRACE.

Referenced by Get().


The documentation for this class was generated from the following files: