| << ContextStep |
| ContextWrap >> |
|
A sequence of contexts.
This class serialises pieces of context free descriptions of Contexts.
Immediate super class: ContextMatch
| VectorContextmatch | sequence |
| int | Object:: | class_id |
| int | Object:: | heap_sig |
| int | WithID:: | id |
| int | Object:: | ref_count |
| UserData | Object:: | user_data |
| CrlContextSequence | () | |||
| void | append | (ContextMatch *) | ||
| bool | empty | () const | ||
| int | is_pag_start | () const | ||
| int | is_pag_step | (int i) const | ||
| int | is_pag_step | (Block * & result_caller, Routine * & result_callee, int & minimum, int & maximum, int index) const | ||
| int | nentries | () const | ||
| bool | non_empty | () const | ||
| ContextMatch * | nth | (int) const | ||
| 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 |
| C++: | CrlContextSequence::CrlContextSequence () |
| C: | crl_context_sequence_t * crl_context_sequence_new (void) |
#endif |
| 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 |
| 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 |
| 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 |
| 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 |
| C++: | void CrlContextSequence::append (CrlContextMatch *) |
| C: | void crl_context_sequence_append (crl_context_sequence_t * self, crl_context_match_t *) |
#endif |
| 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 |
| 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 |
| 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:
the block from where this calls
the routine that is called
the iteration minimum and maximum (if maximum is -1, there is no maximum)
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 |
| 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 | |
| void | CrlPAGContextNode:: | insert | (ContextSequence const *, int) |
| Generated by erwin-cgen | © AbsInt Angewandte Informatik GmbH |