lestes::lang::cplus::sem::ss_declaration_time Class Reference

Declaration time. More...

#include <ss_misc.g.hh>

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

Inheritance graph
[legend]
List of all members.

Public Member Functions

bool is_before (ptr< ss_declaration_time > other)
 Tells whether this time is before the one passed as argument.
virtual ptr< reflection_listreflection_get () const
 for purposes of dumping
virtual ptr< field_list_listfield_values_get () const
 for purposes of dumping

Static Public Member Functions

static ptr< ss_declaration_timeinfinity ()
 return an ss_declaration_time instance representing infinity
static ptr< ss_declaration_timecreate (ulint a__ss_declaration_time__time)
 First generated factory method for class ss_declaration_time.

Protected Member Functions

 ss_declaration_time (ulint a__ss_declaration_time__time)
 Generated constructor for class ss_declaration_time.
virtual void gc_mark ()
 Marking routine for class ss_declaration_time.

Private Attributes

ulint time
 The internal representation of the time of declaration.

Static Private Attributes

static ptr< ss_declaration_timeinfinity_instance = infinity_instance
static ptr< reflection_listreflection = reflection

Detailed Description

Declaration time.

It is created from token's sequence number stored in a source_location instance.

For the user, ss_declaration_time is a black box that only knows whether it "is before" another one. See the 'is_before' method.

Todo:
about creating this class
Instances of this class are meant to be used as time tags. At least declarations and expressions are tagged this way.

One of the uses is in the name lookup code. Declaration time is used to filter out declarations that were not visible at specified time (because they were introduced into a scope later).


Constructor & Destructor Documentation

lestes::lang::cplus::sem::ss_declaration_time::ss_declaration_time ( ulint  a__ss_declaration_time__time  )  [protected]

Generated constructor for class ss_declaration_time.

Generated constructor for class ss_declaration_time.

Author:
lsg


Member Function Documentation

bool lestes::lang::cplus::sem::ss_declaration_time::is_before ( ptr< ss_declaration_time other  ) 

Tells whether this time is before the one passed as argument.

Tells whether this declaration time is before other declaration time.

Precondition:
other != NULL
Parameters:
other The declaration time to compare to.
Returns:
true If this declaration is earlier.

ptr< ss_declaration_time > lestes::lang::cplus::sem::ss_declaration_time::infinity (  )  [static]

return an ss_declaration_time instance representing infinity

The infinity value shall be larger than any regular value.

ptr< ss_declaration_time > lestes::lang::cplus::sem::ss_declaration_time::create ( ulint  a__ss_declaration_time__time  )  [static]

First generated factory method for class ss_declaration_time.

This factory method for class ss_declaration_time takes values of all fields as arguments.

Author:
lsg

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

for purposes of dumping

Reimplemented from lestes::std::object.

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

for purposes of dumping

Reimplemented from lestes::std::object.

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

Marking routine for class ss_declaration_time.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::std::mem::keystone.


Member Data Documentation

ulint lestes::lang::cplus::sem::ss_declaration_time::time [private]

The internal representation of the time of declaration.

ptr< ss_declaration_time > lestes::lang::cplus::sem::ss_declaration_time::infinity_instance = infinity_instance [static, private]

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

Reimplemented from lestes::std::object.


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