lestes::lang::cplus::sem::or_or_functional_decl Class Reference

This is the functional resembling the or_or_functional_func_decl_set. The difference is that this is for the case where only one (but we generally don't know what is the declaration of) declaration is returned. (this is used in sa_deconstruct_spse::visit_as_name_expression() and then for decission in sa_deconstruct_spse::visit_as_expression_function_call(). More...

#include <or_or.g.hh>

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

Inheritance graph
[legend]
List of all members.

Public Member Functions

ptr< ss_declarationdeclaration_get () const
 The method declaration_get returns the value of the field or_or_functional_decl::declaration.
void declaration_set (const ptr< ss_declaration > &)
 The method declaration_set sets the field or_or_functional_decl::declaration 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)
virtual void accept_or_or_functional_visitor (ptr< or_or_functional_visitor > v)
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< or_or_functional_declcreate (ptr< ss_type > a__or_or_functional__type, ptr< ss_declaration > a__or_or_functional_decl__declaration)
 First generated factory method for class or_or_functional_decl.

Protected Member Functions

 or_or_functional_decl (ptr< ss_type > a__or_or_functional__type, ptr< ss_declaration > a__or_or_functional_decl__declaration)
 Generated constructor for class or_or_functional_decl.
virtual void gc_mark ()
 Marking routine for class or_or_functional_decl.

Private Attributes

srp< ss_declarationdeclaration

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

This is the functional resembling the or_or_functional_func_decl_set. The difference is that this is for the case where only one (but we generally don't know what is the declaration of) declaration is returned. (this is used in sa_deconstruct_spse::visit_as_name_expression() and then for decission in sa_deconstruct_spse::visit_as_expression_function_call().


Constructor & Destructor Documentation

lestes::lang::cplus::sem::or_or_functional_decl::or_or_functional_decl ( ptr< ss_type a__or_or_functional__type,
ptr< ss_declaration a__or_or_functional_decl__declaration 
) [protected]

Generated constructor for class or_or_functional_decl.

Generated constructor for class or_or_functional_decl.

Author:
lsg


Member Function Documentation

ptr< ss_declaration > lestes::lang::cplus::sem::or_or_functional_decl::declaration_get (  )  const

The method declaration_get returns the value of the field or_or_functional_decl::declaration.

Returns:
The value of or_or_functional_decl::declaration.
Author:
lsg

void lestes::lang::cplus::sem::or_or_functional_decl::declaration_set ( const ptr< ss_declaration > &  x  ) 

The method declaration_set sets the field or_or_functional_decl::declaration to the given value.

Parameters:
[in] x The new value to set or_or_functional_decl::declaration to.
Author:
lsg

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

This functional holds a single declaration of variable, so it creates varref for the variable in question.

There are special cases to be handled here - for example constructing varref if the declaration in question is name of a type doesn't make sense - we have to handle function-style-cast somehow instead. This is TODO

If the obtained declaration is namespace declaration, boom.

Implements lestes::lang::cplus::sem::or_or_functional.

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

Implements lestes::lang::cplus::sem::or_or_functional.

ptr< or_or_functional_decl > lestes::lang::cplus::sem::or_or_functional_decl::create ( ptr< ss_type a__or_or_functional__type,
ptr< ss_declaration a__or_or_functional_decl__declaration 
) [static]

First generated factory method for class or_or_functional_decl.

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

Author:
lsg

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

for purposes of dumping

Reimplemented from lestes::lang::cplus::sem::or_or_functional.

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

for purposes of dumping

Reimplemented from lestes::lang::cplus::sem::or_or_functional.

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

Marking routine for class or_or_functional_decl.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::lang::cplus::sem::or_or_functional.


Member Data Documentation

srp< ss_declaration > lestes::lang::cplus::sem::or_or_functional_decl::declaration [private]

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

Reimplemented from lestes::lang::cplus::sem::or_or_functional.


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