lestes::lang::cplus::sem::ss_statement Class Reference

Base class for statements. More...

#include <ss_statement.g.hh>

Inheritance diagram for lestes::lang::cplus::sem::ss_statement:

Inheritance graph
[legend]
List of all members.

Public Member Functions

ptr< ::lestes::std::list<
srp< ss_label > > > 
labels_get () const
 The method labels_get returns the value of the field ss_statement::labels.
ptr< ss_compound_stmtparent_get () const
 The method parent_get returns the value of the field ss_statement::parent.
ptr< ss_sppsp_get () const
 The method psp_get returns the value of the field ss_statement::psp.
void psp_set (const ptr< ss_sp > &)
 The method psp_set sets the field ss_statement::psp to the given value.
ptr< ss_spnsp_get () const
 The method nsp_get returns the value of the field ss_statement::nsp.
void nsp_set (const ptr< ss_sp > &)
 The method nsp_set sets the field ss_statement::nsp to the given value.
ptr< ::lestes::std::list<
srp< ss_sp > > > 
sequence_points_get () const
 The method sequence_points_get returns the value of the field ss_statement::sequence_points.
void parent_set_once_hack (ptr< ss_compound_stmt >)
 Sets the parent field, can only be called from ss_compound_stmt::instance.
virtual void accept_ss_statement_visitor (ptr< ss_statement_visitor > v) override
virtual ptr< reflection_listreflection_get () const
 for purposes of dumping
virtual ptr< field_list_listfield_values_get () const
 for purposes of dumping

Protected Member Functions

 ss_statement (ptr< ::lestes::std::source_location > a__ss_base_with_location__location, ptr< ::lestes::std::list< srp< ss_label > > > a__ss_statement__labels, ptr< ss_compound_stmt > a__ss_statement__parent, ptr< ss_sp > a__ss_statement__psp, ptr< ss_sp > a__ss_statement__nsp, ptr< ::lestes::std::list< srp< ss_sp > > > a__ss_statement__sequence_points)
 Generated constructor for class ss_statement.
virtual void gc_mark ()
 Marking routine for class ss_statement.

Private Attributes

srp< ::lestes::std::list<
srp< ss_label > > > 
labels
 List of labels prefixing the current statement.
srp< ss_compound_stmtparent
srp< ss_sppsp
srp< ss_spnsp
srp< ::lestes::std::list<
srp< ss_sp > > > 
sequence_points
 List of all sequence points in this statement.

Static Private Attributes

static bool parent_set_ward = false
static ptr< reflection_listreflection = reflection

Detailed Description

Base class for statements.


Constructor & Destructor Documentation

lestes::lang::cplus::sem::ss_statement::ss_statement ( ptr< ::lestes::std::source_location a__ss_base_with_location__location,
ptr< ::lestes::std::list< srp< ss_label > > >  a__ss_statement__labels,
ptr< ss_compound_stmt a__ss_statement__parent,
ptr< ss_sp a__ss_statement__psp,
ptr< ss_sp a__ss_statement__nsp,
ptr< ::lestes::std::list< srp< ss_sp > > >  a__ss_statement__sequence_points 
) [protected]

Generated constructor for class ss_statement.

Generated constructor for class ss_statement.

Author:
lsg


Member Function Documentation

ptr<::lestes::std::list< srp< ss_label > > > lestes::lang::cplus::sem::ss_statement::labels_get (  )  const

The method labels_get returns the value of the field ss_statement::labels.

Returns:
The value of ss_statement::labels.
Author:
lsg

ptr< ss_compound_stmt > lestes::lang::cplus::sem::ss_statement::parent_get (  )  const

The method parent_get returns the value of the field ss_statement::parent.

Returns:
The value of ss_statement::parent.
Author:
lsg

ptr< ss_sp > lestes::lang::cplus::sem::ss_statement::psp_get (  )  const

The method psp_get returns the value of the field ss_statement::psp.

Returns:
The value of ss_statement::psp.
Author:
lsg

void lestes::lang::cplus::sem::ss_statement::psp_set ( const ptr< ss_sp > &  x  ) 

The method psp_set sets the field ss_statement::psp to the given value.

Parameters:
[in] x The new value to set ss_statement::psp to.
Author:
lsg

ptr< ss_sp > lestes::lang::cplus::sem::ss_statement::nsp_get (  )  const

The method nsp_get returns the value of the field ss_statement::nsp.

Returns:
The value of ss_statement::nsp.
Author:
lsg

void lestes::lang::cplus::sem::ss_statement::nsp_set ( const ptr< ss_sp > &  x  ) 

The method nsp_set sets the field ss_statement::nsp to the given value.

Parameters:
[in] x The new value to set ss_statement::nsp to.
Author:
lsg

ptr<::lestes::std::list< srp< ss_sp > > > lestes::lang::cplus::sem::ss_statement::sequence_points_get (  )  const

The method sequence_points_get returns the value of the field ss_statement::sequence_points.

Returns:
The value of ss_statement::sequence_points.
Author:
lsg

void lestes::lang::cplus::sem::ss_statement::parent_set_once_hack ( ptr< ss_compound_stmt a_parent  ) 

Sets the parent field, can only be called from ss_compound_stmt::instance.

As we currently do not have protected setters, a setter for the parent field is not provided. However, when constructing the "global" ss_compound_stmt, which is derived from ss_statement, the parent field has to be set to point to the instance itself, which is impossible to achieve using the factory method.

Therefore, this hack is provided. It exists solely for the purpose above. Normal code MUST NOT call it, or it will explode :)

virtual void lestes::lang::cplus::sem::ss_statement::accept_ss_statement_visitor ( ptr< ss_statement_visitor v  )  [pure virtual]

Implemented in lestes::lang::cplus::sem::ss_compound_stmt, lestes::lang::cplus::sem::ss_decl_stmt, lestes::lang::cplus::sem::ss_try, lestes::lang::cplus::sem::ss_break, lestes::lang::cplus::sem::ss_return, lestes::lang::cplus::sem::ss_goto, lestes::lang::cplus::sem::ss_expr_stmt, lestes::lang::cplus::sem::ss_continue, lestes::lang::cplus::sem::ss_if_stmt, lestes::lang::cplus::sem::ss_catch, lestes::lang::cplus::sem::ss_breakable_stmt, lestes::lang::cplus::sem::ss_switch_stmt, lestes::lang::cplus::sem::ss_iteration_stmt, lestes::lang::cplus::sem::ss_do, lestes::lang::cplus::sem::ss_while, and lestes::lang::cplus::sem::ss_for.

ptr< object::reflection_list > lestes::lang::cplus::sem::ss_statement::reflection_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::intercode::ss_base_with_location.

Reimplemented in lestes::lang::cplus::sem::ss_compound_stmt, lestes::lang::cplus::sem::ss_decl_stmt, lestes::lang::cplus::sem::ss_try, lestes::lang::cplus::sem::ss_break, lestes::lang::cplus::sem::ss_return, lestes::lang::cplus::sem::ss_goto, lestes::lang::cplus::sem::ss_expr_stmt, lestes::lang::cplus::sem::ss_continue, lestes::lang::cplus::sem::ss_if_stmt, lestes::lang::cplus::sem::ss_catch, lestes::lang::cplus::sem::ss_breakable_stmt, lestes::lang::cplus::sem::ss_switch_stmt, lestes::lang::cplus::sem::ss_iteration_stmt, lestes::lang::cplus::sem::ss_do, lestes::lang::cplus::sem::ss_while, and lestes::lang::cplus::sem::ss_for.

ptr< object::field_list_list > lestes::lang::cplus::sem::ss_statement::field_values_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::intercode::ss_base_with_location.

Reimplemented in lestes::lang::cplus::sem::ss_compound_stmt, lestes::lang::cplus::sem::ss_decl_stmt, lestes::lang::cplus::sem::ss_try, lestes::lang::cplus::sem::ss_break, lestes::lang::cplus::sem::ss_return, lestes::lang::cplus::sem::ss_goto, lestes::lang::cplus::sem::ss_expr_stmt, lestes::lang::cplus::sem::ss_continue, lestes::lang::cplus::sem::ss_if_stmt, lestes::lang::cplus::sem::ss_catch, lestes::lang::cplus::sem::ss_breakable_stmt, lestes::lang::cplus::sem::ss_switch_stmt, lestes::lang::cplus::sem::ss_iteration_stmt, lestes::lang::cplus::sem::ss_do, lestes::lang::cplus::sem::ss_while, and lestes::lang::cplus::sem::ss_for.

void lestes::lang::cplus::sem::ss_statement::gc_mark ( void   )  [protected, virtual]

Marking routine for class ss_statement.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::intercode::ss_base_with_location.

Reimplemented in lestes::lang::cplus::sem::ss_compound_stmt, lestes::lang::cplus::sem::ss_decl_stmt, lestes::lang::cplus::sem::ss_try, lestes::lang::cplus::sem::ss_break, lestes::lang::cplus::sem::ss_return, lestes::lang::cplus::sem::ss_goto, lestes::lang::cplus::sem::ss_expr_stmt, lestes::lang::cplus::sem::ss_continue, lestes::lang::cplus::sem::ss_if_stmt, lestes::lang::cplus::sem::ss_catch, lestes::lang::cplus::sem::ss_breakable_stmt, lestes::lang::cplus::sem::ss_switch_stmt, lestes::lang::cplus::sem::ss_iteration_stmt, lestes::lang::cplus::sem::ss_do, lestes::lang::cplus::sem::ss_while, and lestes::lang::cplus::sem::ss_for.


Member Data Documentation

srp< ::lestes::std::list< srp< ss_label > > > lestes::lang::cplus::sem::ss_statement::labels [private]

List of labels prefixing the current statement.

srp< ss_compound_stmt > lestes::lang::cplus::sem::ss_statement::parent [private]

srp< ss_sp > lestes::lang::cplus::sem::ss_statement::psp [private]

srp< ss_sp > lestes::lang::cplus::sem::ss_statement::nsp [private]

srp< ::lestes::std::list< srp< ss_sp > > > lestes::lang::cplus::sem::ss_statement::sequence_points [private]

List of all sequence points in this statement.

Note: This also includes previous and next sequnce point(psp,nsp).

It might be necessary to allow setter/alter after two-pass analysis of expressions is implemented.

bool lestes::lang::cplus::sem::ss_statement::parent_set_ward = false [static, private]

ptr< object::reflection_list > lestes::lang::cplus::sem::ss_statement::reflection = reflection [static, private]

Reimplemented from lestes::intercode::ss_base_with_location.

Reimplemented in lestes::lang::cplus::sem::ss_compound_stmt, lestes::lang::cplus::sem::ss_decl_stmt, lestes::lang::cplus::sem::ss_try, lestes::lang::cplus::sem::ss_break, lestes::lang::cplus::sem::ss_return, lestes::lang::cplus::sem::ss_goto, lestes::lang::cplus::sem::ss_expr_stmt, lestes::lang::cplus::sem::ss_continue, lestes::lang::cplus::sem::ss_if_stmt, lestes::lang::cplus::sem::ss_catch, lestes::lang::cplus::sem::ss_breakable_stmt, lestes::lang::cplus::sem::ss_switch_stmt, lestes::lang::cplus::sem::ss_iteration_stmt, lestes::lang::cplus::sem::ss_do, lestes::lang::cplus::sem::ss_while, and lestes::lang::cplus::sem::ss_for.


The documentation for this class was generated from the following files:
Generated on Mon Feb 12 18:48:17 2007 for lestes by doxygen 1.5.1-20070107