Puma Reference Manual Puma: Puma::CSemantic Class Reference



Puma::CSemantic Class Reference

#include <CSemantic.h>

Inherits Puma::Semantic.

Inherited by Puma::CCSemantic.

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 CTreeid_expr ()
virtual CTreetypedef_name ()
virtual CTreeinit_declarator (CTree *)
virtual CTreeabst_declarator ()
virtual CTreedirect_abst_declarator ()
virtual CTreeparam_decl_clause ()
virtual CTreefinish_fct_def ()
virtual CTreearg_decl_seq ()
virtual CTreedecl_spec_seq1 ()
virtual CTreedecl_spec_seq_err ()
virtual CTreeclass_spec_err (CTree *)
virtual CTreedeclare_parameter ()
virtual CTreeidentifier_list ()
virtual CTreefinish_param_check ()
virtual CTreebegin_decl ()
virtual CTreearray_delim ()
virtual CTreetrans_unit ()
virtual CTreeclass_spec ()
virtual CTreecmpd_stmt ()
virtual CTreeselect_stmt ()
virtual CTreeiter_stmt ()
virtual CTreeintroduce_label ()
virtual CTreeintroduce_object ()
virtual CTreeintroduce_named_type ()
virtual CTreeintroduce_enum ()
virtual CTreeintroduce_enumerator ()
virtual CTreeintroduce_function ()
virtual CTreeintroduce_parameter ()
virtual CTreeintroduce_class ()
virtual CTreeintroduce_member ()
virtual CTreeintroduce_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 CBuilderbuilder () const
virtual CSyntaxsyntax () const
virtual void Delete ()
 Delete the top item on the semantic stack.
CObjectInfolookup (const char *, SemObjType, bool=false) const
CObjectInfolookup (CT_SimpleName *, SemObjType, bool=false) const
CObjectInfolookup (const char *, CStructure *, SemObjType, bool) const
CObjectInfolookupBuiltin (const char *name) 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
CStructurefindParent () const
void setSpecifiers (CObjectInfo *, CSemDeclSpecs *) const
bool isRedefiningTypedef (CObjectInfo *, int obj_type) const
bool isRedefinedFunction (CFunctionInfo *) const
CAttributeInfocreateAttribute (const char *, CStructure *, CTypeInfo *, bool=false)
CTypedefInfocreateTypedef (const char *, CStructure *, CTypeInfo *)
void createParameter (CFunctionInfo *, CTypeInfo *)
CFunctionInfocreateFunction (const char *, CStructure *, CTypeInfo *)
CTypeInforesolveExpr (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

virtual CTree* Puma::CSemantic::abst_declarator (  )  [virtual]
virtual CTree* Puma::CSemantic::arg_decl_seq (  )  [virtual]
virtual CTree* Puma::CSemantic::array_delim (  )  [virtual]
virtual CTree* Puma::CSemantic::begin_decl (  )  [virtual]
void Puma::CSemantic::begin_param_check (  ) 
CBuilder & Puma::CSemantic::builder (  )  const [inline, protected, virtual]

Reimplemented in Puma::CCSemantic.

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

Reimplemented in Puma::CCSemantic.

virtual CTree* Puma::CSemantic::class_spec_err ( CTree  )  [virtual]
virtual CTree* Puma::CSemantic::cmpd_stmt (  )  [virtual]
void Puma::CSemantic::configure ( Config c  )  [virtual]

Configure the semantic analysis.

Parameters:
c The configuration settings.

Reimplemented from Puma::Semantic.

CAttributeInfo* Puma::CSemantic::createAttribute ( const char *  ,
CStructure ,
CTypeInfo ,
bool  = false 
) [protected]
CFunctionInfo* Puma::CSemantic::createFunction ( const char *  ,
CStructure ,
CTypeInfo  
) [protected]
void Puma::CSemantic::createParameter ( CFunctionInfo ,
CTypeInfo  
) [protected]
CTypedefInfo* Puma::CSemantic::createTypedef ( const char *  ,
CStructure ,
CTypeInfo  
) [protected]
bool Puma::CSemantic::decl_spec_seq (  ) 
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::declare_parameter (  )  [virtual]
void Puma::CSemantic::declareImplicitFcts (  )  [inline, protected]

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.

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]
virtual CTree* Puma::CSemantic::direct_abst_declarator (  )  [virtual]
bool Puma::CSemantic::empty_decl_spec_seq (  ) 
void Puma::CSemantic::enter_arg_decl_seq (  )  [inline]
CStructure* Puma::CSemantic::findParent (  )  const [protected]
virtual CTree* Puma::CSemantic::finish_fct_def (  )  [virtual]
virtual CTree* Puma::CSemantic::finish_param_check (  )  [virtual]
virtual CTree* Puma::CSemantic::id_expr (  )  [virtual]
virtual CTree* Puma::CSemantic::identifier_list (  )  [virtual]
virtual bool Puma::CSemantic::implicit_int (  )  [virtual]

Reimplemented in Puma::CCSemantic.

bool Puma::CSemantic::in_arg_decl_seq (  )  const [inline]
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.

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

Reimplemented in Puma::CCSemantic.

virtual CTree* Puma::CSemantic::introduce_class (  )  [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_label (  )  [virtual]

Reimplemented in Puma::CCSemantic.

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

Reimplemented in Puma::CCSemantic.

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

Reimplemented in Puma::CCSemantic.

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

Reimplemented in Puma::CCSemantic.

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

Reimplemented in Puma::CCSemantic.

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

Reimplemented in Puma::CCSemantic.

bool Puma::CSemantic::isRedefinedFunction ( CFunctionInfo  )  const [protected]
bool Puma::CSemantic::isRedefiningTypedef ( CObjectInfo ,
int  obj_type 
) const [protected]
virtual CTree* Puma::CSemantic::iter_stmt (  )  [virtual]
void Puma::CSemantic::leave_arg_decl_seq (  )  [inline]
CObjectInfo* Puma::CSemantic::lookup ( const char *  ,
CStructure ,
SemObjType  ,
bool   
) const [protected]
CObjectInfo * Puma::CSemantic::lookup ( CT_SimpleName id,
SemObjType  type,
bool  nested = false 
) const [inline, protected]
CObjectInfo * Puma::CSemantic::lookup ( const char *  id,
SemObjType  type,
bool  nested = false 
) const [inline, protected]
CObjectInfo* Puma::CSemantic::lookupBuiltin ( const char *  name  )  const [protected]
virtual CTree* Puma::CSemantic::param_decl_clause (  )  [virtual]
CProtection::Type Puma::CSemantic::protection (  )  const [inline, virtual]

Reimplemented in Puma::CCSemantic.

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

Reimplemented in Puma::CCSemantic.

virtual CTree* Puma::CSemantic::select_stmt (  )  [virtual]
void Puma::CSemantic::setSpecifiers ( CObjectInfo ,
CSemDeclSpecs  
) const [protected]
CSyntax & Puma::CSemantic::syntax (  )  const [inline, protected, virtual]

Reimplemented in Puma::CCSemantic.

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

Reimplemented in Puma::CCSemantic.

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

Member Data Documentation

bool Puma::CSemantic::in_arg_decl [protected]



Puma Reference Manual. Created on 11 Sep 2009.