Intel SPMD Program Compiler  1.9.1
Public Member Functions | Public Attributes | List of all members
Declaration Class Reference

Representation of a full declaration of one or more variables, including the shared DeclSpecs as well as the per-variable Declarators. More...

#include <decl.h>

Collaboration diagram for Declaration:
Collaboration graph
[legend]

Public Member Functions

 Declaration (DeclSpecs *ds, std::vector< Declarator * > *dlist=NULL)
 
 Declaration (DeclSpecs *ds, Declarator *d)
 
void Print (int indent) const
 
std::vector< VariableDeclarationGetVariableDeclarations () const
 
void DeclareFunctions ()
 

Public Attributes

DeclSpecsdeclSpecs
 
std::vector< Declarator * > declarators
 

Detailed Description

Representation of a full declaration of one or more variables, including the shared DeclSpecs as well as the per-variable Declarators.

Definition at line 187 of file decl.h.

Constructor & Destructor Documentation

Declaration::Declaration ( DeclSpecs ds,
std::vector< Declarator * > *  dlist = NULL 
)

Definition at line 613 of file decl.cpp.

References declarators, and declSpecs.

Declaration::Declaration ( DeclSpecs ds,
Declarator d 
)

Definition at line 623 of file decl.cpp.

References declarators, declSpecs, and Declarator::InitFromDeclSpecs().

Member Function Documentation

void Declaration::DeclareFunctions ( )
std::vector< VariableDeclaration > Declaration::GetVariableDeclarations ( ) const

This method walks through all of the Declarators in a declaration and returns a fully-initialized Symbol and (possibly) and initialization expression for each one. (This allows the rest of the system to not have to worry about the mess of the general Declarator representation.)

Definition at line 634 of file decl.cpp.

References SymbolTable::AddVariable(), Assert, declarators, declSpecs, Error(), Module::errorCount, Declarator::initExpr, Type::IsVoidType(), m, Declarator::name, Declarator::pos, Type::ResolveUnboundVariability(), SC_TYPEDEF, DeclSpecs::storageClass, Declarator::storageClass, Module::symbolTable, Declarator::type, and Variability::Varying.

void Declaration::Print ( int  indent) const

Definition at line 685 of file decl.cpp.

References declarators, declSpecs, and DeclSpecs::Print().

Member Data Documentation

std::vector<Declarator *> Declaration::declarators
DeclSpecs* Declaration::declSpecs

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