Puma Reference Manual Puma::ACSliceInfo Class Reference



Puma::ACSliceInfo Class Reference

Semantic information about an AspectC++ 'slice' declaration. More...

#include <Puma/ACSliceInfo.h>

List of all members.

Public Types

enum  Type {
  SL_UNKNOWN,
  SL_ASPECT,
  SL_CLASS,
  SL_STRUCT,
  SL_UNION
}
 Various types of slices. More...

Public Member Functions

 ACSliceInfo (CObjectInfo *oi)
 Construct a slice info object.
 ~ACSliceInfo ()
 Desctructor: delete all pattern units.
const char * name ()
 Get the name of the slice.
CObjectInfoobject ()
 Get the object info of the slice declaration.
void def_node (CT_ClassSliceDecl *node)
 Set the slice definition syntax tree node.
CT_ClassSliceDecldef_node ()
 Get the syntax tree node of the slice definition.
void add_member (CT_Intro *i)
 Add a non-inline slice member.
int members () const
 Get the number of non-inline slice members.
CT_Intromember (int i) const
 Get the ith non-inline slice member.
const Unitmember_pattern (int i) const
 Get the ith non-inline slice member code pattern.
const Unitmember_unit (int i) const
 Get the ith non-inline slice member unit.
void in_advice (bool a)
 Set a flag to determine if this definition is part of an advice decl.
bool in_advice () const
 true, iff this slice decl is located within 'advice .
Type type () const
 Get the slice type (e.g.
ACSliceInfodefinition () const
 Get the definition of this slice or return 0 if there is no definition.
const Unitbase_pattern () const
 Get the base class pattern of this slice as a unit.
const Unitpattern () const
 Get the inline member pattern of this slice as a unit.

Detailed Description

Semantic information about an AspectC++ 'slice' declaration.

A slice represents a fragment of a C/C++ language element. For example a 'class slice' is a (possibly incomplete) fragment of a class.


Member Enumeration Documentation

Various types of slices.

Enumerator:
SL_UNKNOWN 
SL_ASPECT 
SL_CLASS 
SL_STRUCT 
SL_UNION 

Constructor & Destructor Documentation

Puma::ACSliceInfo::ACSliceInfo ( CObjectInfo oi)
inline

Construct a slice info object.

Parameters:
oiThe object info of the slice declaration, e.g. class info.
Puma::ACSliceInfo::~ACSliceInfo ( )

Desctructor: delete all pattern units.


Member Function Documentation

void Puma::ACSliceInfo::add_member ( CT_Intro i)

Add a non-inline slice member.

Parameters:
iThe new member.
const Unit* Puma::ACSliceInfo::base_pattern ( ) const
inline

Get the base class pattern of this slice as a unit.

void Puma::ACSliceInfo::def_node ( CT_ClassSliceDecl node)

Set the slice definition syntax tree node.

Parameters:
nodeThe slice syntax tree node.
CT_ClassSliceDecl* Puma::ACSliceInfo::def_node ( )
inline

Get the syntax tree node of the slice definition.

ACSliceInfo* Puma::ACSliceInfo::definition ( ) const

Get the definition of this slice or return 0 if there is no definition.

void Puma::ACSliceInfo::in_advice ( bool  a)
inline

Set a flag to determine if this definition is part of an advice decl.

Parameters:
atrue, iff this definition is location within 'advice .. : ..'.
bool Puma::ACSliceInfo::in_advice ( ) const
inline

true, iff this slice decl is located within 'advice .

. : ..'.

CT_Intro* Puma::ACSliceInfo::member ( int  i) const
inline

Get the ith non-inline slice member.

const Unit* Puma::ACSliceInfo::member_pattern ( int  i) const
inline

Get the ith non-inline slice member code pattern.

const Unit* Puma::ACSliceInfo::member_unit ( int  i) const
inline

Get the ith non-inline slice member unit.

int Puma::ACSliceInfo::members ( ) const
inline

Get the number of non-inline slice members.

const char* Puma::ACSliceInfo::name ( )
inline

Get the name of the slice.

CObjectInfo* Puma::ACSliceInfo::object ( )
inline

Get the object info of the slice declaration.

const Unit* Puma::ACSliceInfo::pattern ( ) const
inline

Get the inline member pattern of this slice as a unit.

Type Puma::ACSliceInfo::type ( ) const

Get the slice type (e.g.

class or union)




Puma Reference Manual. Created on Sat Jun 30 2012.