class CALL_PREFIX_MINUS
Summary
Class invariant
Overview
creation features
exported features
"target.declaration_type.search(feature_name)" because it will not change.
  • simplify (type: TYPE): EXPRESSION
    May return Current, Void or a simplified version of Current.
  • For pretty and short:
    precedence: INTEGER_32
    constant attribute
    Handling of precedence (priority of expressions).
    operator: STRING
    effective function
    static_simplify: EXPRESSION
    effective function
    This one is working completely out of context and is called directly by the parser only for some typical expressions.
    compile_to_c (type: TYPE)
    effective procedure
    For an INSTRUCTION, produce the corresponding C code.
    compile_to_jvm (type: TYPE)
    effective procedure
    Produce Java byte code in order to push expression value on the jvm stack.
    jvm_branch_if_false (type: TYPE): INTEGER_32
    effective function
    Gives the program_counter to be resolved later.
    jvm_branch_if_true (type: TYPE): INTEGER_32
    effective function
    Gives the program_counter to be resolved later.
    accept (visitor: CALL_PREFIX_MINUS_VISITOR)
    effective procedure
    Accept to be visited by the visitor.
    extra_bracket_flag: BOOLEAN
    constant attribute
    True when we do have to add an extra pair of brackets if the Current expression is the target of a call.
    bracketed_pretty (indent_level: INTEGER_32)
    frozen
    effective procedure
    For pretty.
    pretty (indent_level: INTEGER_32)
    frozen
    effective procedure
    pretty_target (indent_level: INTEGER_32)
    frozen
    effective procedure
    For pretty.
    short (type: TYPE)
    frozen
    effective procedure
    Produce the short command output in the given context type.
    short_target (type: TYPE)
    frozen
    effective procedure
    Produce the short command output in the given context type.
    arg_count: INTEGER_32
    constant attribute
    The arguments count or 0.
    jvm_assign (type: TYPE)
    effective procedure
    Basic assignment using value on top of stack.
    arguments: EFFECTIVE_ARG_LIST
    frozen
    effective function
    Arguments of the call if any.
    set_arguments (a: EFFECTIVE_ARG_LIST)
    effective procedure
    specialize_in (type: TYPE): CALL_PREFIX_MINUS
    effective function
    --------- Duplicate code call_0/proc_call_0 -----------
    specialize_thru (parent_type: TYPE, parent_edge: PARENT_EDGE, new_type: TYPE): CALL_PREFIX_MINUS
    effective function
    --------- Duplicate code call_0/proc_call_0 -----------
    specialize_2 (type: TYPE): CALL_PREFIX_MINUS
    effective function
    "target.declaration_type.search(feature_name)" because it will not change.
    simplify (type: TYPE): EXPRESSION
    frozen
    effective function
    May return Current, Void or a simplified version of Current.
    is_writable: BOOLEAN
    constant attribute
    Is is something that one can find on the left-hand-side of the := operator ?
    is_current: BOOLEAN
    constant attribute
    Is it a Current like expression (really written Current or some implicit not-written Current)?
    is_implicit_current: BOOLEAN
    constant attribute
    Is it an implicit Current (i.e., not explicitely written)?
    is_manifest_string: BOOLEAN
    constant attribute
    Is it a manifest string (i.e. a basic manifest string or some verbatim manifest string)?
    is_result: BOOLEAN
    constant attribute
    Is it the pseudo local variable Result ?
    is_void: BOOLEAN
    constant attribute
    Is it the built-in Void?
    is_static: BOOLEAN
    constant attribute
    True if the expression has always the same static value regardless the context of the code.
    collect (type: TYPE): TYPE
    frozen
    effective function
    Collect Current to become actually true live code in type knowing that Current is already specialized in type.
    resolve_in (type: TYPE): TYPE
    effective function
    This method may be called to solve the Current expression type knowing that the Current expression has_been_specialized for the type given as an argument.
    declaration_type: TYPE
    effective function
    The static type one can deduce from the declaration written in source text.
    non_void_no_dispatch_type (type: TYPE): TYPE
    frozen
    effective function
    A non Void Result indicates that Current cannot be Void and that Current drives exactely to a single possible dynamic TYPE.
    mapping_c_target (type: TYPE, target_formal_type: TYPE)
    frozen
    effective procedure
    Produce C code in order to pass Current EXPRESSION as the target of some feature call.
    mapping_c_arg (type: TYPE)
    frozen
    effective procedure
    Produce C code in order to pass Current expression as an argument of the feature called.
    compile_target_to_jvm (type: TYPE)
    frozen
    effective procedure
    Same as compile_to_jvm, but add class invariant check when needed.
    jvm_assign_creation (type: TYPE)
    frozen
    effective procedure
    Basic assignment using value on top of stack.
    has_been_specialized: BOOLEAN
    effective 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).
    is_default_value: BOOLEAN
    frozen
    effective function
    True if Current represents Void, False , 0, or whatever is a default value.
    written_declaration_type_mark: TYPE_MARK
    effective function
    This variant of declaration_type is used only to check the left-hand side of "?:=", "::=" or "?=".
    adapt_for (type: TYPE): CALL_PREFIX_MINUS
    deferred function
    This function is called only once at the end of the compilation process (i.e. after collect and simplify).
    base_class_written: CLASS_TEXT
    frozen
    effective function
    The base class where this expression is written.
    written_in: CLASS_NAME
    frozen
    effective function
    The name of the base class where this expression is written.
    is_an_acceptable_replacement (type: TYPE, other: EXPRESSION): BOOLEAN
    frozen
    effective function
    Well, it is just for debug (see ensure).
    standard_compile_target_to_jvm (type: TYPE)
    frozen
    effective procedure
    bracketed_short (type: TYPE)
    frozen
    effective procedure
    start_position: POSITION
    deferred function
    Of the left-most character of Current.
    specialize_2_without_checks (type: TYPE): CODE
    effective function
    Perform specialize_2 without checking the validity (export violations, ...)
    side_effect_free (type: TYPE): BOOLEAN
    deferred 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).
    use_current (type: TYPE): BOOLEAN
    deferred function
    Is Current used?
    safety_check (type: TYPE)
    deferred procedure
    feature_stamp: FEATURE_STAMP
    writable attribute
    The good feature_stamp for the feature in some type (unrelated to like_what due to renamings).
    target: EXPRESSION
    writable attribute
    Target of the call.
    feature_name: FEATURE_NAME
    writable attribute
    Written selector name of the call.