Puma Reference Manual Puma: Puma::CSemantic Class Reference



Puma::CSemantic Class Reference

#include <CSemantic.h>

Inheritance diagram for Puma::CSemantic:

Inheritance graph

List of all members.

Public Member Functions

 CSemantic (CSyntax &, CBuilder &)
virtual void init (CSemDatabase &, Unit &)
 Initialize the semantic analysis.
void configure (Config &)
 Configure the semantic analysis.
virtual CTree * id_expr ()
virtual CTree * typedef_name ()
virtual CTree * init_declarator (CTree *)
virtual CTree * abst_declarator ()
virtual CTree * direct_abst_declarator ()
virtual CTree * param_decl_clause ()
virtual CTree * finish_fct_def ()
virtual CTree * arg_decl_seq ()
virtual CTree * decl_spec_seq1 ()
virtual CTree * decl_spec_seq_err ()
virtual CTree * class_spec_err (CTree *)
virtual CTree * declare_parameter ()
virtual CTree * identifier_list ()
virtual CTree * finish_param_check ()
virtual CTree * begin_decl ()
virtual CTree * array_delim ()
virtual CTree * trans_unit ()
virtual CTree * class_spec ()
virtual CTree * cmpd_stmt ()
virtual CTree * select_stmt ()
virtual CTree * iter_stmt ()
virtual CTree * introduce_label ()
virtual CTree * introduce_object ()
virtual CTree * introduce_named_type ()
virtual CTree * introduce_enum ()
virtual CTree * introduce_enumerator ()
virtual CTree * introduce_function ()
virtual CTree * introduce_parameter ()
virtual CTree * introduce_class ()
virtual CTree * introduce_member ()
virtual CTree * introduce_tag ()
void enter_arg_decl_seq ()
void leave_arg_decl_seq ()
void begin_param_check ()
bool in_arg_decl_seq () const
bool decl_spec_seq ()
bool empty_decl_spec_seq ()
virtual bool implicit_int ()
virtual CProtection::Type protection () const

Protected Types

enum  SemObjType {
  CLASS,
  UNION,
  ENUM,
  TYPEDEF,
  FCT,
  ATTRIB,
  ARG,
  TAG,
  NON_TAG,
  ANY
}

Protected Member Functions

void declareImplicitFcts ()
virtual CBuilder & builder () const
virtual CSyntax & syntax () const
virtual void Delete ()
 Delete the top item on the semantic stack.
CObjectInfo * lookup (const char *, SemObjType, bool=false) const
CObjectInfo * lookup (CT_SimpleName *, SemObjType, bool=false) const
CObjectInfo * lookup (const char *, CStructure *, SemObjType, bool) const
CLinkage::Type determine_linkage (CSemDeclSpecs *, SemObjType, CObjectInfo *=(CObjectInfo *) 0) const
CStorage::Type determine_storage_class (CSemDeclSpecs *, SemObjType, CLinkage::Type) const
bool typeMatch (CTypeInfo *, CTypeInfo *) const
CStructure * findParent () const
void setSpecifiers (CObjectInfo *, CSemDeclSpecs *) const
bool isRedefiningTypedef (CObjectInfo *, int obj_type) const
CAttributeInfo * createAttribute (const char *, CStructure *, CTypeInfo *, bool=false)
CTypedefInfo * createTypedef (const char *, CStructure *, CTypeInfo *)
void createParameter (CFunctionInfo *, CTypeInfo *)
CFunctionInfo * createFunction (const char *, CStructure *, CTypeInfo *)
CTypeInfo * resolveExpr (CTree *expr, CTree *base) const

Protected Attributes

bool in_arg_decl
bool _in_arg_decl_seq
bool is_type_name
bool support_implicit_int


Member Enumeration Documentation

enum Puma::CSemantic::SemObjType [protected]

Enumerator:
CLASS 
UNION 
ENUM 
TYPEDEF 
FCT 
ATTRIB 
ARG 
TAG 
NON_TAG 
ANY 


Constructor & Destructor Documentation

Puma::CSemantic::CSemantic ( CSyntax &  s,
CBuilder &  b 
) [inline]


Member Function Documentation

void Puma::CSemantic::declareImplicitFcts (  )  [inline, protected]

Reimplemented in Puma::CCSemantic.

virtual void Puma::CSemantic::init ( CSemDatabase &  db,
Unit &  file 
) [virtual]

Initialize the semantic analysis.

Parameters:
db The semantic object database.
file The input file.

Reimplemented from Puma::Semantic.

Reimplemented in Puma::CCSemantic.

void Puma::CSemantic::configure ( Config &  c  )  [virtual]

Configure the semantic analysis.

Parameters:
c The configuration settings.

Reimplemented from Puma::Semantic.

CBuilder & Puma::CSemantic::builder (  )  const [inline, protected, virtual]

Reimplemented in Puma::CCSemantic.

CSyntax & Puma::CSemantic::syntax (  )  const [inline, protected, virtual]

Reimplemented in Puma::CCSemantic.

virtual void Puma::CSemantic::Delete (  )  [protected, virtual]

Delete the top item on the semantic stack.

To be implemented by derived classes.

Reimplemented from Puma::Semantic.

Reimplemented in Puma::CCSemantic.

virtual CTree* Puma::CSemantic::id_expr (  )  [virtual]

virtual CTree* Puma::CSemantic::typedef_name (  )  [virtual]

Reimplemented in Puma::CCSemantic.

virtual CTree* Puma::CSemantic::init_declarator ( CTree *   )  [virtual]

Reimplemented in Puma::CCSemantic.

virtual CTree* Puma::CSemantic::abst_declarator (  )  [virtual]

virtual CTree* Puma::CSemantic::direct_abst_declarator (  )  [virtual]

virtual CTree* Puma::CSemantic::param_decl_clause (  )  [virtual]

virtual CTree* Puma::CSemantic::finish_fct_def (  )  [virtual]

virtual CTree* Puma::CSemantic::arg_decl_seq (  )  [virtual]

virtual CTree* Puma::CSemantic::decl_spec_seq1 (  )  [virtual]

Reimplemented in Puma::CCSemantic.

virtual CTree* Puma::CSemantic::decl_spec_seq_err (  )  [virtual]

virtual CTree* Puma::CSemantic::class_spec_err ( CTree *   )  [virtual]

virtual CTree* Puma::CSemantic::declare_parameter (  )  [virtual]

virtual CTree* Puma::CSemantic::identifier_list (  )  [virtual]

virtual CTree* Puma::CSemantic::finish_param_check (  )  [virtual]

virtual CTree* Puma::CSemantic::begin_decl (  )  [virtual]

virtual CTree* Puma::CSemantic::array_delim (  )  [virtual]

virtual CTree* Puma::CSemantic::trans_unit (  )  [virtual]

virtual CTree* Puma::CSemantic::class_spec (  )  [virtual]

Reimplemented in Puma::CCSemantic.

virtual CTree* Puma::CSemantic::cmpd_stmt (  )  [virtual]

virtual CTree* Puma::CSemantic::select_stmt (  )  [virtual]

virtual CTree* Puma::CSemantic::iter_stmt (  )  [virtual]

virtual CTree* Puma::CSemantic::introduce_label (  )  [virtual]

Reimplemented in Puma::CCSemantic.

virtual CTree* Puma::CSemantic::introduce_object (  )  [virtual]

Reimplemented in Puma::CCSemantic.

virtual CTree* Puma::CSemantic::introduce_named_type (  )  [virtual]

Reimplemented in Puma::CCSemantic.

virtual CTree* Puma::CSemantic::introduce_enum (  )  [virtual]

Reimplemented in Puma::CCSemantic.

virtual CTree* Puma::CSemantic::introduce_enumerator (  )  [virtual]

Reimplemented in Puma::CCSemantic.

virtual CTree* Puma::CSemantic::introduce_function (  )  [virtual]

Reimplemented in Puma::CCSemantic.

virtual CTree* Puma::CSemantic::introduce_parameter (  )  [virtual]

Reimplemented in Puma::CCSemantic.

virtual CTree* Puma::CSemantic::introduce_class (  )  [virtual]

Reimplemented in Puma::CCSemantic.

virtual CTree* Puma::CSemantic::introduce_member (  )  [virtual]

Reimplemented in Puma::CCSemantic.

virtual CTree* Puma::CSemantic::introduce_tag (  )  [virtual]

Reimplemented in Puma::CCSemantic.

void Puma::CSemantic::enter_arg_decl_seq (  )  [inline]

void Puma::CSemantic::leave_arg_decl_seq (  )  [inline]

void Puma::CSemantic::begin_param_check (  ) 

bool Puma::CSemantic::in_arg_decl_seq (  )  const [inline]

bool Puma::CSemantic::decl_spec_seq (  ) 

bool Puma::CSemantic::empty_decl_spec_seq (  ) 

virtual bool Puma::CSemantic::implicit_int (  )  [virtual]

Reimplemented in Puma::CCSemantic.

CProtection::Type Puma::CSemantic::protection (  )  const [inline, virtual]

Reimplemented in Puma::CCSemantic.

CObjectInfo * Puma::CSemantic::lookup ( const char *  id,
SemObjType  type,
bool  nested = false 
) const [inline, protected]

CObjectInfo * Puma::CSemantic::lookup ( CT_SimpleName *  id,
SemObjType  type,
bool  nested = false 
) const [inline, protected]

CObjectInfo* Puma::CSemantic::lookup ( const char *  ,
CStructure *  ,
SemObjType  ,
bool   
) const [protected]

CLinkage::Type Puma::CSemantic::determine_linkage ( CSemDeclSpecs *  ,
SemObjType  ,
CObjectInfo *  = (CObjectInfo *) 0 
) const [protected]

Reimplemented in Puma::CCSemantic.

CStorage::Type Puma::CSemantic::determine_storage_class ( CSemDeclSpecs *  ,
SemObjType  ,
CLinkage::Type   
) const [protected]

bool Puma::CSemantic::typeMatch ( CTypeInfo *  ,
CTypeInfo *   
) const [protected]

CStructure* Puma::CSemantic::findParent (  )  const [protected]

void Puma::CSemantic::setSpecifiers ( CObjectInfo *  ,
CSemDeclSpecs *   
) const [protected]

bool Puma::CSemantic::isRedefiningTypedef ( CObjectInfo *  ,
int  obj_type 
) const [protected]

CAttributeInfo* Puma::CSemantic::createAttribute ( const char *  ,
CStructure *  ,
CTypeInfo *  ,
bool  = false 
) [protected]

CTypedefInfo* Puma::CSemantic::createTypedef ( const char *  ,
CStructure *  ,
CTypeInfo *   
) [protected]

void Puma::CSemantic::createParameter ( CFunctionInfo *  ,
CTypeInfo *   
) [protected]

CFunctionInfo* Puma::CSemantic::createFunction ( const char *  ,
CStructure *  ,
CTypeInfo *   
) [protected]

CTypeInfo* Puma::CSemantic::resolveExpr ( CTree *  expr,
CTree *  base 
) const [protected]

Reimplemented in Puma::CCSemantic.


Member Data Documentation

bool Puma::CSemantic::in_arg_decl [protected]




Puma Reference Manual. Created on 11 Jul 2008.