AERA
Public Types | Public Member Functions | Static Public Member Functions | List of all members
r_exec::IPGMContext Class Reference
Inheritance diagram for r_exec::IPGMContext:
r_exec::_Context

Public Types

enum  ObjectType { TYPE_OBJECT = 0, TYPE_VIEW = 1, TYPE_GROUP = 2, TYPE_UNDEFINED = 3 }
 

Public Member Functions

 IPGMContext (r_code::Code *object, View *view, Atom *code, uint16 index, InputLessPGMOverlay *const overlay, Data data=STEM)
 
 IPGMContext (r_code::Code *object, uint16 index)
 
 IPGMContext (r_code::Code *object, Data data)
 
_Contextclone () override
 
bool equal (const _Context *c) const override
 
Atomget_atom (uint16 i) const override
 
uint16 get_object_code_size () const override
 
uint16 get_children_count () const override
 
_Contextget_child_new (uint16 index) const override
 
_Contextdereference_new () const override
 
bool evaluate () const
 
bool evaluate_no_dereference () const
 
IPGMContextoperator= (const IPGMContext &c)
 
bool operator== (const IPGMContext &c) const
 
bool operator!= (const IPGMContext &c) const
 
IPGMContext get_child (uint16 index) const
 
IPGMContext get_child_deref (uint16 index) const
 
Atomoperator[] (uint16 i) const
 
r_code::Codeget_object () const
 
uint16 getIndex () const
 
IPGMContext dereference () const
 
void dereference_once ()
 
bool is_reference () const
 
bool is_undefined () const
 
void patch_input_code (uint16 pgm_code_index, uint16 input_index) const
 
uint16 addProduction (r_code::Code *object, bool check_for_existence) const
 
template<class C >
void copy (C *destination, uint16 write_index) const
 
template<class C >
void copy (C *destination, uint16 write_index, uint16 &extent_index) const
 
void copy_to_value_array (uint16 &position)
 
void getMember (void *&object, uint32 &view_oid, ObjectType &object_type, int16 &member_index) const
 
bool match (const IPGMContext &input) const
 
r_code::Codebuild_object (Atom head) const
 
- Public Member Functions inherited from r_exec::_Context
void commit () const
 
void rollback () const
 
void patch_code (uint16 location, Atom value) const
 
void unpatch_code (uint16 patch_index) const
 
uint16 get_last_patch_index () const
 
void setAtomicResult (Atom a) const
 
void setTimestampResult (Timestamp t) const
 
void setDurationResult (std::chrono::microseconds d) const
 
uint16 setCompoundResultHead (Atom a) const
 
void addCompoundResultPart (Atom a) const
 
void trace (std::ostream &out) const
 

Static Public Member Functions

static IPGMContext GetContextFromInput (View *input, InputLessPGMOverlay *overlay)
 
static bool Ins (const IPGMContext &context)
 
static bool Fvw (const IPGMContext &context)
 
static bool Red (const IPGMContext &context)
 

Additional Inherited Members

- Protected Types inherited from r_exec::_Context
enum  Data {
  STEM = 0, REFERENCE = 1, VIEW = 2, MKS = 3,
  VWS = 4, VALUE_ARRAY = 5, BINDING_MAP = 6, UNDEFINED = 7
}
 
- Protected Member Functions inherited from r_exec::_Context
 _Context (Atom *code, uint16 index, Overlay *overlay, Data data)
 
- Protected Attributes inherited from r_exec::_Context
Overlay *const overlay_
 
Atomcode_
 
uint16 index_
 
Data data_
 

Detailed Description

Definition at line 101 of file context.h.

Member Function Documentation

◆ dereference_new()

_Context* r_exec::IPGMContext::dereference_new ( ) const
inlineoverridevirtual

Dereference this and return a new allocated copy. The caller is responsible to delete it.

Implements r_exec::_Context.

Definition at line 375 of file context.h.

◆ get_child_deref()

IPGMContext r_exec::IPGMContext::get_child_deref ( uint16  index) const
inline

Call get_child(index) and then return the result of dereference().

Definition at line 447 of file context.h.

◆ get_child_new()

_Context* r_exec::IPGMContext::get_child_new ( uint16  index) const
inlineoverridevirtual

Call get_child and return a new allocated copy of the child. The caller is responsible to delete it.

Implements r_exec::_Context.

Definition at line 366 of file context.h.


The documentation for this class was generated from the following files: