<< ContextStep
 Top   Types   Functions   Classes   Index 
ContextWrap >>

struct CrlContextSequence / crl_context_sequence_t

Concrete Class


Description

A sequence of contexts.

This class serialises pieces of context free descriptions of Contexts.

Kinship

Immediate super class: ContextMatch

Slots

VectorContextmatch sequence

Inherited Slots

int Object::class_id
int Object::heap_sig
int WithID::id
int Object::ref_count
UserData Object::user_data

Members

CrlContextSequence()
voidappend(ContextMatch *)
boolempty() const
intis_pag_start() const
intis_pag_step(int i) const
intis_pag_step(Block * & result_caller, Routine * & result_callee, int & minimum, int & maximum, int index) const
intnentries() const
boolnon_empty() const
ContextMatch *nth(int) const
VectorContextmatch const *sequence() const

Inherited Members

From ClassC++C
Crl::address_default_user_print_file
Crl::address_default_user_print_vchar
Crl::bool_default_user_print_file
Crl::bool_default_user_print_vchar
Crl::context_default
Crl::enum_default_user_print_file
Crl::enum_default_user_print_vchar
Crl::float_default_user_print_file
Crl::float_default_user_print_vchar
Crl::get_string2symbol
Crl::get_string2symbol_default
Crl::get_user_data_delete_hook
Crl::gmt_default_user_print_file
Crl::gmt_default_user_print_vchar
Crl::identifier_default_user_print_file
Crl::identifier_default_user_print_vchar
Crl::is_c_identifier
Crl::is_initialised
Crl::is_lowcase_identifier
Crl::is_normalised_decimal
Crl::klass_id_to_crl_name
Crl::klass_id_to_name
Crl::set_handle_foreign_item
Crl::set_string2symbol
Crl::set_user_data_delete_hook
Crl::signed_default_user_print_file
Crl::signed_default_user_print_vchar
Crl::string2symbol
Crl::string_default_user_print_file
Crl::string_default_user_print_vchar
Crl::symbol_default_user_print_file
Crl::symbol_default_user_print_vchar
Crl::type_any
WithID::unique_id
Crl::unsigned_default_user_print_file
Crl::unsigned_default_user_print_vchar
Object::operator delete
Object::operator new
Object::operator!=crl_context_sequence_is_not_equal
Object::operator<crl_context_sequence_is_less_than
Object::operator<=crl_context_sequence_is_less_equal
Object::operator==crl_context_sequence_is_equal
Object::operator>crl_context_sequence_is_greater_than
Object::operator>=crl_context_sequence_is_greater_equal
Object::_ref
Object::_ref_unref
Object::_unref
Object::_unref_no_delete
Structure::append_floatcrl_context_sequence_append_float
Structure::append_signedcrl_context_sequence_append_signed
Structure::append_symbolcrl_context_sequence_append_symbol
Object::check_sigcrl_context_sequence_check_sig
Object::class_idcrl_context_sequence_get_class_id
Object::cmpcrl_context_sequence_cmp
Context::cmp_readablycrl_context_sequence_cmp_readably
Object::cmp_shallowcrl_context_sequence_cmp_shallow
WithID::crl_abbrevcrl_context_sequence_get_crl_abbrev
WithID::crl_namecrl_context_sequence_get_crl_name
Structure::find_bytecrl_context_sequence_find_byte
Structure::find_byte_symcrl_context_sequence_find_byte_sym
Structure::find_itemcrl_context_sequence_find_item
Structure::find_item_symcrl_context_sequence_find_item_sym
Structure::find_word32crl_context_sequence_find_word32
Structure::find_word32_symcrl_context_sequence_find_word32_sym
Structure::get_bytecrl_context_sequence_get_byte
Structure::get_itemcrl_context_sequence_get_item
Structure::get_word32crl_context_sequence_get_word32
Object::graphcrl_context_sequence_get_graph_const
Object::hashcrl_context_sequence_hash
Object::hash_shallowcrl_context_sequence_hash_shallow
Object::heap_sigcrl_context_sequence_get_heap_sig
WithID::idcrl_context_sequence_get_id
WithID::id_to_vcharcrl_context_sequence_id_to_string
Context::is_excluding_wildcardcrl_context_sequence_is_excluding_wildcard
Context::is_full_wildcardcrl_context_sequence_is_full_wildcard
Context::is_pag_contextcrl_context_sequence_is_pag_context
Object::klass_idcrl_context_sequence_get_klass_id
Object::klass_namecrl_context_sequence_get_klass_name
Object::mapcrl_context_sequence_map
Object::map_subcrl_context_sequence_map_sub_with_data
Context::nfacrl_context_sequence_get_nfa
Structure::nth_bytecrl_context_sequence_nth_byte
Structure::nth_itemcrl_context_sequence_nth_item
Structure::nth_word32crl_context_sequence_nth_word32
Context::peelcrl_context_sequence_peel
Structure::poke_floatcrl_context_sequence_poke_float
Structure::poke_once_floatcrl_context_sequence_poke_once_float
Structure::poke_once_signedcrl_context_sequence_poke_once_signed
Structure::poke_once_symbolcrl_context_sequence_poke_once_symbol
Structure::poke_signedcrl_context_sequence_poke_signed
Structure::poke_symbolcrl_context_sequence_poke_symbol
Object::printcrl_context_sequence_print_vchar
WithID::print_idcrl_context_sequence_print_id_vchar
Object::ref_count
Object::routinecrl_context_sequence_get_routine_const
Structure::set_floatcrl_context_sequence_set_float
Structure::set_once_floatcrl_context_sequence_set_once_float
Structure::set_once_signedcrl_context_sequence_set_once_itm_signed
Structure::set_once_sym_floatcrl_context_sequence_set_once_sym_float
Structure::set_once_sym_signedcrl_context_sequence_set_once_sym_signed
Structure::set_once_sym_symbolcrl_context_sequence_set_once_sym_symbol
Structure::set_once_symbolcrl_context_sequence_set_once_itm_symbol
Structure::set_signedcrl_context_sequence_set_itm_signed
Structure::set_sym_floatcrl_context_sequence_set_sym_float
Structure::set_sym_signedcrl_context_sequence_set_sym_signed
Structure::set_sym_symbolcrl_context_sequence_set_sym_symbol
Structure::set_symbolcrl_context_sequence_set_itm_symbol
Object::set_user_datacrl_context_sequence_set_user_data
Object::to_vcharcrl_context_sequence_to_vchar
Object::user_datacrl_context_sequence_get_user_data_const


Detailed Descriptions


#if CRL_NEED_CONTEXT_SEQUENCE

VectorContextmatch const * sequence () const

C++: CrlVectorContextmatch const * CrlContextSequence::sequence () const
C: CrlVectorContextmatch const * crl_context_sequence_get_sequence (crl_context_sequence_t const * self)

Reader of slot 'sequence': The sequence of steps.

This reader is NULL safe; for this == NULL, it returns NULL.

#endif


#if CRL_NEED_CONTEXT_SEQUENCE

[constructor] CrlContextSequence ()

C++: CrlContextSequence::CrlContextSequence ()
C: crl_context_sequence_t * crl_context_sequence_new (void)
#endif


#if CRL_NEED_CONTEXT_SEQUENCE

int nentries () const

C++: int CrlContextSequence::nentries () const
C: int crl_context_sequence_nentries (crl_context_sequence_t const * self)

Currently limited access to substructure:

NULL safe: if this == NULL, returns 0

#endif


#if CRL_NEED_CONTEXT_SEQUENCE

bool empty () const

C++: bool CrlContextSequence::empty () const
C: crl_bool_t crl_context_sequence_empty (crl_context_sequence_t const * self)

NULL safe: if this == NULL, returns true

#endif


#if CRL_NEED_CONTEXT_SEQUENCE

bool non_empty () const

C++: bool CrlContextSequence::non_empty () const
C: crl_bool_t crl_context_sequence_non_empty (crl_context_sequence_t const * self)

NULL safe: if this == NULL, returns false

#endif


#if CRL_NEED_CONTEXT_SEQUENCE

ContextMatch * nth (int) const

C++: CrlContextMatch * CrlContextSequence::nth (int) const
C: crl_context_match_t * crl_context_sequence_nth (crl_context_sequence_t const * self, int)

NULL safe and index protected. Returns NULL if something does not exist.

#endif


#if CRL_NEED_CONTEXT_SEQUENCE

void append (ContextMatch *)

C++: void CrlContextSequence::append (CrlContextMatch *)
C: void crl_context_sequence_append (crl_context_sequence_t * self, crl_context_match_t *)
#endif


#if CRL_NEED_CONTEXT_SEQUENCE

int is_pag_start () const

C++: int CrlContextSequence::is_pag_start () const
C: int crl_context_sequence_is_pag_start (crl_context_sequence_t const * self)

Whether the sequence starts with ?->?*- and a following b1->r1 or ?->r1 (in this case 1 is returned). Or whether the sequence consists totally of ?->?* (also, 1 is returned). The result is the number of indexes to skip to get to the first regular context step match. If it is 0, it does not mean that this is no PAG context, it just means the context does not start with a wildcard.

#endif


#if CRL_NEED_CONTEXT_SEQUENCE

int is_pag_step (int i) const

C++: int CrlContextSequence::is_pag_step (int i) const
C: int crl_context_sequence_is_pag_step (crl_context_sequence_t const * self, int i)

Whether the index i of the sequence represents a loop iteration or a call. Either 0, 1, 2 or 3 is returned, depending on the number of indices to skip to get to the next context step match. In the case of 0, no PAG context step is found at the given position. The other numbers indicate the following structures: 1: ..., _->r1, ... i+0

2: ..., _->r1, (?->?*-, ?->r1){2} or ..., _->r1, (?->?*-, ?->r1){3,} i+0 i+1

3: ..., _->r1, ?->?*-, ?->r1, ... i+0 i+1 i+2

Here, _ indicates either a block (e.g. b1), or a wildcard (thus, ?).

#endif


#if CRL_NEED_CONTEXT_SEQUENCE

int is_pag_step (Block * & result_caller, Routine * & result_callee, int & minimum, int & maximum, int index) const

C++: int CrlContextSequence::is_pag_step (CrlBlock * & result_caller, CrlRoutine * & result_callee, int & minimum, int & maximum, int index) const
C: int crl_context_sequence_is_pag_step_get_match (crl_block_t * * result_caller, crl_routine_t * * result_callee, crl_context_sequence_t const * self, int * minimum, int * maximum, int index)

same as before, but returns more values: if result != 0:

Please note that the returned minimum/maximum are not the ones found in the ContextMinimum/ContextRepeat, but they are the iteration counts of the corresponding loops/recursion. Thus they are greater by 1.

#endif


Occurrences of CrlContextSequence

CrlVectorContextmatch const *crl_erwin_ptr_const_of(CrlContextSequence const * x)
CrlVectorContextmatch const *crl_erwin_ptr_const_of(CrlContextSequence const & x)
CrlContextSequence::CrlContextSequence()
ContextSequence *CrlObject::as_ContextSequence()
ContextSequence const *CrlObject::as_ContextSequence() const
ContextSequence *CrlObject::cast_ContextSequence()
ContextSequence const *CrlObject::cast_ContextSequence() const
voidCrlPAGContextNode::insert(ContextSequence const *, int)


Generated by erwin-cgen © AbsInt Angewandte Informatik GmbH