class PRECURSOR_INSTRUCTION
Summary
Class invariant
Overview
creation features
exported features
  • accept (visitor: PRECURSOR_INSTRUCTION_VISITOR)
    Accept to be visited by the visitor.
  • collect (t: TYPE)
    (See comment of {EXPRESSION}.collect.)
  • side_effect_free (type: TYPE): BOOLEAN
    True when the evaluation of Current has no side effect at all (i.e. no memory allocated, no modification in the _heap_ memory, no external code with possible side effect).
  • pretty (indent_level: INTEGER_32)
  • end_mark_comment: BOOLEAN
    constant attribute
    True for instructions which may have a possible "end" mark comment.
    specialize_2 (type: TYPE): PRECURSOR_INSTRUCTION
    effective function
    simplify (type: TYPE): PRECURSOR_INSTRUCTION
    effective function
    effective procedure
    Accept to be visited by the visitor.
    collect (t: TYPE)
    effective procedure
    (See comment of {EXPRESSION}.collect.)
    side_effect_free (type: TYPE): BOOLEAN
    effective function
    True when the evaluation of Current has no side effect at all (i.e. no memory allocated, no modification in the _heap_ memory, no external code with possible side effect).
    pretty (indent_level: INTEGER_32)
    effective procedure
    adapt_for (t: TYPE): PRECURSOR_INSTRUCTION
    deferred function
    (See comment of {EXPRESSION}.adapt_for.)
    compile_to_jvm (type: TYPE)
    deferred procedure
    is_not_a_compound: BOOLEAN
    frozen
    effective function
    Mostly for assertion checks.
    start_position: POSITION
    deferred function
    Of the left-most character of Current.
    specialize_in (type: TYPE): PRECURSOR_INSTRUCTION
    deferred function
    Specialize Current knowing that the corresponding source code was written in type.
    has_been_specialized: BOOLEAN
    deferred function
    Used both for specialize_in and specialize_thru to indicate that we have all FEATURE_STAMPs ready for use and that FEATURE_NAMEs are no longer used (except for calls on non-current target who are available after specialize_2 -- step).
    specialize_thru (parent_type: TYPE, parent_edge: PARENT_EDGE, new_type: TYPE): PRECURSOR_INSTRUCTION
    deferred function
    Assuming that Current is already specialized in parent_type, now specialize Current for the new_type knowing that this source code is inherited thru parent_edge.
    specialize_2_without_checks (type: TYPE): CODE
    effective function
    Perform specialize_2 without checking the validity (export violations, ...)
    use_current (type: TYPE): BOOLEAN
    deferred function
    Is Current used?
    safety_check (type: TYPE)
    deferred procedure
    compile_to_c (type: TYPE)
    deferred procedure
    For an INSTRUCTION, produce the corresponding C code.
    arguments: EFFECTIVE_ARG_LIST
    writable attribute
    specialized_anonymous_feature: ANONYMOUS_FEATURE
    writable attribute
    The specialized version of the precursor feature
    specialized_parent: CLASS_TEXT
    writable attribute
    The parent the feature effectively comes from
    parent: TYPE_MARK
    writable attribute
    Used when only when the call looks like: {TYPE_MARK} Precursor...