comma::SubroutineRef Class Reference

#include <SubroutineRef.h>

Inheritance diagram for comma::SubroutineRef:
Inheritance graph
[legend]
Collaboration diagram for comma::SubroutineRef:
Collaboration graph
[legend]

List of all members.

Classes

class  SubroutineDeclIter

Public Member Functions

 SubroutineRef (Location loc, SubroutineDecl *decl)
 Creates a SubroutineRef representing the given declaration.
 SubroutineRef (Location loc, SubroutineDecl **decls, unsigned numDecls)
template<class I >
 SubroutineRef (Location loc, I begin, I end)
IdentifierInfogetIdInfo () const
 Returns the IdentifierInfo common to all of the referenced declarations.
const char * getString () const
 Returns a C-string representing the name common to all overloads.
Location getLocation () const
 Returns the location of this reference.
void addDeclaration (SubroutineDecl *srDecl)
 Extends this reference with another declaration.
template<class Iter >
void addDeclarations (Iter I, Iter E)
bool isOverloaded () const
 Returns true if this references more than one declaration.
bool empty () const
 Returns true if this reference is empty.
bool referencesFunctions () const
 Returns true if this is a reference to a set of function declarations.
bool referencesProcedures () const
 Returns true if this is a reference to a set of procedure declarations.
unsigned numDeclarations () const
 Returns the number of declarations associated with this reference.
bool contains (const SubroutineDecl *srDecl) const
bool contains (const SubroutineType *srType) const
bool keepSubroutinesWithArity (unsigned arity)
void resolve (SubroutineDecl *srDecl)
bool isResolved () const
 Returns true if this is a resolved reference.
Erase Methods.

Removes the declaration pointed to by the given iterator from this reference.

Returns an iterator pointing to the next declaration in the reference.



iterator erase (iterator I)
template<class T >
SubroutineDeclIter< T > erase (SubroutineDeclIter< T > SDI)

Static Public Member Functions

static bool classof (const SubroutineRef *node)
 Support isa and dyn_cast.
static bool classof (const Ast *node)



typedef DeclVector::iterator iterator
 Iterators over the referenced declarations.
typedef DeclVector::const_iterator const_iterator
 Iterators over the referenced declarations.
typedef SubroutineDeclIter
< FunctionDecl
fun_iterator
typedef const
SubroutineDeclIter
< FunctionDecl
const_fun_iterator
 Iterators over the referenced declarations.
typedef SubroutineDeclIter
< ProcedureDecl
proc_iterator
 Iterators over the referenced declarations.
typedef const
SubroutineDeclIter
< ProcedureDecl
const_proc_iterator
 Iterators over the referenced declarations.
const SubroutineDeclgetDeclaration (unsigned i) const
 Returns the i'th delaration associated with this reference.
SubroutineDeclgetDeclaration (unsigned i)
 Iterators over the referenced declarations.
const SubroutineDeclgetDeclaration () const
SubroutineDeclgetDeclaration ()
 Iterators over the referenced declarations.
iterator begin ()
 Iterators over the referenced declarations.
iterator end ()
 Iterators over the referenced declarations.
const_iterator begin () const
 Iterators over the referenced declarations.
const_iterator end () const
 Iterators over the referenced declarations.
fun_iterator begin_functions ()
 Iterators over the referenced declarations.
fun_iterator end_functions ()
 Iterators over the referenced declarations.
const_fun_iterator begin_functions () const
 Iterators over the referenced declarations.
const_fun_iterator end_functions () const
 Iterators over the referenced declarations.
proc_iterator begin_procedures ()
 Iterators over the referenced declarations.
proc_iterator end_procedures ()
 Iterators over the referenced declarations.
const_proc_iterator begin_procedures () const
 Iterators over the referenced declarations.
const_proc_iterator end_procedures () const
 Iterators over the referenced declarations.

Detailed Description

This class represents a reference to a subroutine name. It provides location information as to where the reference occurs in source code. It also provides a set of declaration nodes representing a overloaded family of declarations.

Note that this class is a miscellaneous member of the AST in that it does not belong to one of the major branches (Type, Decl, Expr).

Definition at line 29 of file SubroutineRef.h.


Member Typedef Documentation

typedef const SubroutineDeclIter<FunctionDecl> comma::SubroutineRef::const_fun_iterator

Iterators over the referenced declarations.

Definition at line 244 of file SubroutineRef.h.

typedef DeclVector::const_iterator comma::SubroutineRef::const_iterator

Iterators over the referenced declarations.

Definition at line 167 of file SubroutineRef.h.

typedef const SubroutineDeclIter<ProcedureDecl> comma::SubroutineRef::const_proc_iterator

Iterators over the referenced declarations.

Definition at line 268 of file SubroutineRef.h.

typedef SubroutineDeclIter<FunctionDecl> comma::SubroutineRef::fun_iterator

Specialized iterators to traverse the set of functions or procedures. Note that any given SubroutineRef only holds functions or procedures and never a mix of the two. The iterators will always be empty if the iterator type does not match the kind of subroutines this reference contains.

Definition at line 233 of file SubroutineRef.h.

typedef DeclVector::iterator comma::SubroutineRef::iterator

Iterators over the referenced declarations.

Definition at line 163 of file SubroutineRef.h.

Iterators over the referenced declarations.

Definition at line 257 of file SubroutineRef.h.


Constructor & Destructor Documentation

comma::SubroutineRef::SubroutineRef ( Location  loc,
SubroutineDecl decl 
) [inline]

Creates a SubroutineRef representing the given declaration.

Definition at line 39 of file SubroutineRef.h.

comma::SubroutineRef::SubroutineRef ( Location  loc,
SubroutineDecl **  decls,
unsigned  numDecls 
) [inline]

Creates a SubroutineRef given a set of SubroutineDecl's.

All subroutine decls provided must be either ProcedureDecl's or FunctionDecl's and be identically named.

Definition at line 48 of file SubroutineRef.h.

template<class I >
comma::SubroutineRef::SubroutineRef ( Location  loc,
begin,
end 
) [inline]

Creates a SubroutineRef given an iterator pair over a set of SubroutineDecl's.

All subroutine decls provided must be either ProcedureDecl's or FunctionDecl's and be identically named.

Definition at line 60 of file SubroutineRef.h.


Member Function Documentation

void SubroutineRef::addDeclaration ( SubroutineDecl srDecl  ) 

Extends this reference with another declaration.

Definition at line 153 of file Ast.cpp.

template<class Iter >
void comma::SubroutineRef::addDeclarations ( Iter  I,
Iter  E 
) [inline]

Extends this reference with the set of declarations given by a pair of iterators.

Definition at line 84 of file SubroutineRef.h.

const_iterator comma::SubroutineRef::begin (  )  const [inline]

Iterators over the referenced declarations.

Definition at line 168 of file SubroutineRef.h.

iterator comma::SubroutineRef::begin (  )  [inline]

Iterators over the referenced declarations.

Definition at line 164 of file SubroutineRef.h.

const_fun_iterator comma::SubroutineRef::begin_functions (  )  const [inline]

Iterators over the referenced declarations.

Definition at line 245 of file SubroutineRef.h.

fun_iterator comma::SubroutineRef::begin_functions (  )  [inline]

Iterators over the referenced declarations.

Definition at line 234 of file SubroutineRef.h.

const_proc_iterator comma::SubroutineRef::begin_procedures (  )  const [inline]

Iterators over the referenced declarations.

Definition at line 269 of file SubroutineRef.h.

proc_iterator comma::SubroutineRef::begin_procedures (  )  [inline]

Iterators over the referenced declarations.

Definition at line 258 of file SubroutineRef.h.

static bool comma::SubroutineRef::classof ( const Ast node  )  [inline, static]

Definition at line 300 of file SubroutineRef.h.

static bool comma::SubroutineRef::classof ( const SubroutineRef node  )  [inline, static]

Support isa and dyn_cast.

Reimplemented from comma::Ast.

Definition at line 299 of file SubroutineRef.h.

bool SubroutineRef::contains ( const SubroutineType srType  )  const

Returns true if this reference contains a subroutine declaration with the given type.

Definition at line 173 of file Ast.cpp.

bool SubroutineRef::contains ( const SubroutineDecl srDecl  )  const

Returns true if this reference contains the given subroutine declaration.

Definition at line 165 of file Ast.cpp.

bool comma::SubroutineRef::empty (  )  const [inline]

Returns true if this reference is empty.

Definition at line 93 of file SubroutineRef.h.

const_iterator comma::SubroutineRef::end (  )  const [inline]

Iterators over the referenced declarations.

Definition at line 169 of file SubroutineRef.h.

iterator comma::SubroutineRef::end (  )  [inline]

Iterators over the referenced declarations.

Definition at line 165 of file SubroutineRef.h.

const_fun_iterator comma::SubroutineRef::end_functions (  )  const [inline]

Iterators over the referenced declarations.

Definition at line 252 of file SubroutineRef.h.

fun_iterator comma::SubroutineRef::end_functions (  )  [inline]

Iterators over the referenced declarations.

Definition at line 240 of file SubroutineRef.h.

const_proc_iterator comma::SubroutineRef::end_procedures (  )  const [inline]

Iterators over the referenced declarations.

Definition at line 276 of file SubroutineRef.h.

proc_iterator comma::SubroutineRef::end_procedures (  )  [inline]

Iterators over the referenced declarations.

Definition at line 264 of file SubroutineRef.h.

template<class T >
SubroutineDeclIter<T> comma::SubroutineRef::erase ( SubroutineDeclIter< T >  SDI  )  [inline]

Definition at line 292 of file SubroutineRef.h.

iterator comma::SubroutineRef::erase ( iterator  I  )  [inline]

Definition at line 289 of file SubroutineRef.h.

SubroutineDecl* comma::SubroutineRef::getDeclaration (  )  [inline]

Iterators over the referenced declarations.

Definition at line 128 of file SubroutineRef.h.

const SubroutineDecl* comma::SubroutineRef::getDeclaration (  )  const [inline]

If this is a resolved reference, return the unique declaration it names. Otherwise, return null.

Definition at line 124 of file SubroutineRef.h.

SubroutineDecl* comma::SubroutineRef::getDeclaration ( unsigned  i  )  [inline]

Iterators over the referenced declarations.

Definition at line 115 of file SubroutineRef.h.

const SubroutineDecl* comma::SubroutineRef::getDeclaration ( unsigned  i  )  const [inline]

Returns the i'th delaration associated with this reference.

Definition at line 110 of file SubroutineRef.h.

IdentifierInfo* comma::SubroutineRef::getIdInfo (  )  const [inline]

Returns the IdentifierInfo common to all of the referenced declarations.

Definition at line 67 of file SubroutineRef.h.

Location comma::SubroutineRef::getLocation (  )  const [inline, virtual]

Returns the location of this reference.

Reimplemented from comma::Ast.

Definition at line 76 of file SubroutineRef.h.

const char* comma::SubroutineRef::getString (  )  const [inline]

Returns a C-string representing the name common to all overloads.

Definition at line 73 of file SubroutineRef.h.

bool comma::SubroutineRef::isOverloaded (  )  const [inline]

Returns true if this references more than one declaration.

Definition at line 90 of file SubroutineRef.h.

bool comma::SubroutineRef::isResolved (  )  const [inline]

Returns true if this is a resolved reference.

Definition at line 159 of file SubroutineRef.h.

bool SubroutineRef::keepSubroutinesWithArity ( unsigned  arity  ) 

Removes all subroutine declarations which are not of the given arity from this reference.

Returns true if any declarations remain after the filtering and false if this reference was reduced to the empty reference.

Definition at line 183 of file Ast.cpp.

unsigned comma::SubroutineRef::numDeclarations (  )  const [inline]

Returns the number of declarations associated with this reference.

Definition at line 106 of file SubroutineRef.h.

bool comma::SubroutineRef::referencesFunctions (  )  const [inline]

Returns true if this is a reference to a set of function declarations.

Definition at line 96 of file SubroutineRef.h.

bool comma::SubroutineRef::referencesProcedures (  )  const [inline]

Returns true if this is a reference to a set of procedure declarations.

Definition at line 101 of file SubroutineRef.h.

void comma::SubroutineRef::resolve ( SubroutineDecl srDecl  )  [inline]

Resolves this reference to point at the given declaration.

This method removes all declarations from the reference, then adds in the given declaration. This method is used once overloads have been resolved.

Definition at line 153 of file SubroutineRef.h.


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

Generated on 1 Feb 2010 for Comma by  doxygen 1.6.1