lestes::lang::cplus::sem::or_or_functional Class Reference

Base abstract class for functionals, representing function call. More...

#include <or_or.g.hh>

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

lestes::std::object lestes::std::mem::keystone lestes::lang::cplus::sem::or_or_functional_addrof lestes::lang::cplus::sem::or_or_functional_ambiguous lestes::lang::cplus::sem::or_or_functional_comma lestes::lang::cplus::sem::or_or_functional_concrete lestes::lang::cplus::sem::or_or_functional_decl lestes::lang::cplus::sem::or_or_functional_func_decl_set lestes::lang::cplus::sem::or_or_functional_literal lestes::lang::cplus::sem::or_or_functional_noviable lestes::lang::cplus::sem::or_or_functional_this List of all members.

Public Member Functions

ptr< ss_typetype_get () const
 The method type_get returns the value of the field or_or_functional::type.
void type_set (const ptr< ss_type > &)
 The method type_set sets the field or_or_functional::type to the given value.
virtual ptr< ss_expressionoperator() (ptr< ss_sp > psp, ptr< ss_sp > nsp, ptr< ::lestes::std::source_location > location, ptr< ::lestes::std::list< srp< ss_sp > > > sp_list) override
 Operator, which constructs the actual expression (and invokes creation of subexpressions, calling recusrively operator() on them.
virtual void accept_or_or_functional_visitor (ptr< or_or_functional_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

 or_or_functional (ptr< ss_type > a__or_or_functional__type)
 Generated constructor for class or_or_functional.
virtual void gc_mark ()
 Marking routine for class or_or_functional.

Private Attributes

srp< ss_typetype

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Base abstract class for functionals, representing function call.

This class represents the creator of the ss_expression descendants. It is used in the process of "lazy creation" of ss_expressions in overload resolution and as->ss expression transformations. Every instance of this functional represents the ss_expression to be created later (using operator() of the functional).

Definition at line 67 of file or_or.g.hh.


Constructor & Destructor Documentation

lestes::lang::cplus::sem::or_or_functional::or_or_functional ( ptr< ss_type a__or_or_functional__type  )  [protected]

Generated constructor for class or_or_functional.

Generated constructor for class or_or_functional.

Author:
lsg

Definition at line 53 of file or_or.g.cc.

00054         : object(), type(checked(a__or_or_functional__type))
00055 {}


Member Function Documentation

ptr< ss_type > lestes::lang::cplus::sem::or_or_functional::type_get ( void   )  const

The method type_get returns the value of the field or_or_functional::type.

Returns:
The value of or_or_functional::type.
Author:
lsg

Definition at line 35 of file or_or.g.cc.

References type.

Referenced by lestes::lang::cplus::sem::or_or_functional_decl::operator()(), lestes::lang::cplus::sem::or_or_functional_literal::operator()(), lestes::lang::cplus::sem::or_or_functional_this::operator()(), and lestes::lang::cplus::sem::or_or_functional_addrof::operator()().

00036 {
00037         return type;
00038 }

void lestes::lang::cplus::sem::or_or_functional::type_set ( const ptr< ss_type > &  x  ) 

The method type_set sets the field or_or_functional::type to the given value.

Parameters:
[in] x The new value to set or_or_functional::type to.
Author:
lsg

Definition at line 44 of file or_or.g.cc.

References type.

00045 {
00046         or_or_functional::type = x;
00047 }

virtual ptr< ss_expression > lestes::lang::cplus::sem::or_or_functional::operator() ( ptr< ss_sp psp,
ptr< ss_sp nsp,
ptr< ::lestes::std::source_location location,
ptr< ::lestes::std::list< srp< ss_sp > > >  sp_list 
) [pure virtual]

Operator, which constructs the actual expression (and invokes creation of subexpressions, calling recusrively operator() on them.

Implemented in lestes::lang::cplus::sem::or_or_functional_concrete, lestes::lang::cplus::sem::or_or_functional_comma, lestes::lang::cplus::sem::or_or_functional_addrof, lestes::lang::cplus::sem::or_or_functional_literal, lestes::lang::cplus::sem::or_or_functional_func_decl_set, lestes::lang::cplus::sem::or_or_functional_decl, lestes::lang::cplus::sem::or_or_functional_ambiguous, lestes::lang::cplus::sem::or_or_functional_noviable, and lestes::lang::cplus::sem::or_or_functional_this.

virtual void lestes::lang::cplus::sem::or_or_functional::accept_or_or_functional_visitor ( ptr< or_or_functional_visitor v  )  [pure virtual]

Implemented in lestes::lang::cplus::sem::or_or_functional_concrete, lestes::lang::cplus::sem::or_or_functional_comma, lestes::lang::cplus::sem::or_or_functional_addrof, lestes::lang::cplus::sem::or_or_functional_literal, lestes::lang::cplus::sem::or_or_functional_func_decl_set, lestes::lang::cplus::sem::or_or_functional_decl, lestes::lang::cplus::sem::or_or_functional_ambiguous, lestes::lang::cplus::sem::or_or_functional_noviable, and lestes::lang::cplus::sem::or_or_functional_this.

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

for purposes of dumping

Reimplemented from lestes::std::object.

Reimplemented in lestes::lang::cplus::sem::or_or_functional_concrete, lestes::lang::cplus::sem::or_or_functional_comma, lestes::lang::cplus::sem::or_or_functional_addrof, lestes::lang::cplus::sem::or_or_functional_literal, lestes::lang::cplus::sem::or_or_functional_func_decl_set, lestes::lang::cplus::sem::or_or_functional_decl, lestes::lang::cplus::sem::or_or_functional_ambiguous, lestes::lang::cplus::sem::or_or_functional_noviable, and lestes::lang::cplus::sem::or_or_functional_this.

Definition at line 57 of file or_or.g.cc.

References lestes::std::list< T >::create(), reflection, and lestes::std::object::reflection_get().

Referenced by lestes::lang::cplus::sem::or_or_functional_this::reflection_get(), lestes::lang::cplus::sem::or_or_functional_noviable::reflection_get(), lestes::lang::cplus::sem::or_or_functional_ambiguous::reflection_get(), lestes::lang::cplus::sem::or_or_functional_decl::reflection_get(), lestes::lang::cplus::sem::or_or_functional_func_decl_set::reflection_get(), lestes::lang::cplus::sem::or_or_functional_literal::reflection_get(), lestes::lang::cplus::sem::or_or_functional_addrof::reflection_get(), lestes::lang::cplus::sem::or_or_functional_comma::reflection_get(), and lestes::lang::cplus::sem::or_or_functional_concrete::reflection_get().

00058 {
00059         if (!reflection) {
00060                 typedef class_reflection::field_metadata md;
00061                 typedef class_reflection::field_metadata_list mdlist;
00062                 ptr<mdlist> mdl = mdlist::create();
00063                 mdl->push_back( md::create( "type", "ss_type" ) );
00064                 reflection = reflection_list::create( ::lestes::std::object::reflection_get() );
00065                 reflection->push_back( class_reflection::create( "or_or_functional", mdl ) );
00066         }
00067         return reflection;
00068 }

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

for purposes of dumping

Reimplemented from lestes::std::object.

Reimplemented in lestes::lang::cplus::sem::or_or_functional_concrete, lestes::lang::cplus::sem::or_or_functional_comma, lestes::lang::cplus::sem::or_or_functional_addrof, lestes::lang::cplus::sem::or_or_functional_literal, lestes::lang::cplus::sem::or_or_functional_func_decl_set, lestes::lang::cplus::sem::or_or_functional_decl, lestes::lang::cplus::sem::or_or_functional_ambiguous, lestes::lang::cplus::sem::or_or_functional_noviable, and lestes::lang::cplus::sem::or_or_functional_this.

Definition at line 70 of file or_or.g.cc.

References lestes::std::list< T >::create(), and lestes::std::object::field_values_get().

Referenced by lestes::lang::cplus::sem::or_or_functional_this::field_values_get(), lestes::lang::cplus::sem::or_or_functional_noviable::field_values_get(), lestes::lang::cplus::sem::or_or_functional_ambiguous::field_values_get(), lestes::lang::cplus::sem::or_or_functional_decl::field_values_get(), lestes::lang::cplus::sem::or_or_functional_func_decl_set::field_values_get(), lestes::lang::cplus::sem::or_or_functional_literal::field_values_get(), lestes::lang::cplus::sem::or_or_functional_addrof::field_values_get(), lestes::lang::cplus::sem::or_or_functional_comma::field_values_get(), and lestes::lang::cplus::sem::or_or_functional_concrete::field_values_get().

00071 {
00072         ptr < field_list_list > result = ::lestes::std::object::field_values_get();
00073         result->push_back( value_list::create() );
00074         result->back()->push_back( this->type );
00075         return result;
00076 }

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

Marking routine for class or_or_functional.

Marking routine is used for garbage collection.

Author:
lsg

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

Reimplemented in lestes::lang::cplus::sem::or_or_functional_concrete, lestes::lang::cplus::sem::or_or_functional_comma, lestes::lang::cplus::sem::or_or_functional_addrof, lestes::lang::cplus::sem::or_or_functional_literal, lestes::lang::cplus::sem::or_or_functional_func_decl_set, lestes::lang::cplus::sem::or_or_functional_decl, lestes::lang::cplus::sem::or_or_functional_ambiguous, lestes::lang::cplus::sem::or_or_functional_noviable, and lestes::lang::cplus::sem::or_or_functional_this.

Definition at line 83 of file or_or.g.cc.

References lestes::std::mem::keystone::gc_mark().

Referenced by lestes::lang::cplus::sem::or_or_functional_this::gc_mark(), lestes::lang::cplus::sem::or_or_functional_noviable::gc_mark(), lestes::lang::cplus::sem::or_or_functional_ambiguous::gc_mark(), lestes::lang::cplus::sem::or_or_functional_decl::gc_mark(), lestes::lang::cplus::sem::or_or_functional_func_decl_set::gc_mark(), lestes::lang::cplus::sem::or_or_functional_literal::gc_mark(), lestes::lang::cplus::sem::or_or_functional_addrof::gc_mark(), lestes::lang::cplus::sem::or_or_functional_comma::gc_mark(), and lestes::lang::cplus::sem::or_or_functional_concrete::gc_mark().

00084 {
00085 	::lestes::std::object::gc_mark();
00086 }


Member Data Documentation

srp< ss_type > lestes::lang::cplus::sem::or_or_functional::type [private]

Definition at line 98 of file or_or.g.hh.

Referenced by type_get(), and type_set().

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

Reimplemented from lestes::std::object.

Reimplemented in lestes::lang::cplus::sem::or_or_functional_concrete, lestes::lang::cplus::sem::or_or_functional_comma, lestes::lang::cplus::sem::or_or_functional_addrof, lestes::lang::cplus::sem::or_or_functional_literal, lestes::lang::cplus::sem::or_or_functional_func_decl_set, lestes::lang::cplus::sem::or_or_functional_decl, lestes::lang::cplus::sem::or_or_functional_ambiguous, lestes::lang::cplus::sem::or_or_functional_noviable, and lestes::lang::cplus::sem::or_or_functional_this.

Definition at line 99 of file or_or.g.hh.

Referenced by reflection_get().


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