class CHARACTER_TYPE_MARK
Summary
Overview
creation features
exported features
Others:
constant attribute
Used for example to mangle feature name in the generated C code.
written_name: HASHED_STRING
once function
(Is always the same one.)
type: TYPE
effective function
resolve_in (new_type: TYPE): TYPE
effective function
Short-hand for to_static(new_type).type
default_expression (sp: POSITION): EXPRESSION
effective function
Creates the corresponding ANY default expression at sp.
accept (visitor: CHARACTER_TYPE_MARK_VISITOR)
effective procedure
Accept to be visited by the visitor.
c_type_for_argument_in (str: STRING)
effective procedure
Append in buffer the C type to use when current Eiffel type is used for an argument of a feature.
jvm_descriptor_in (str: STRING)
effective procedure
Append in buffer the appropriate JVM type descriptor for arguments and Result of a method.
jvm_return_code
effective procedure
Add the good JVM opcode to return Result.
jvm_push_local (offset: INTEGER_32)
effective procedure
Push value of the local variable at offset.
jvm_push_default: INTEGER_32
effective function
Push the default value for the Current type.
jvm_write_local_creation (offset: INTEGER_32)
effective procedure
Write the local variable at offset using the stack top.
jvm_write_local (offset: INTEGER_32)
effective procedure
Write the local variable at offset using the stack top.
jvm_xnewarray
effective procedure
Produce the appropriate byte-code to create a new JVM array with elements of Current type.
jvm_xastore
effective procedure
jvm_xaload
effective procedure
jvm_if_x_eq: INTEGER_32
effective function
Assume two operands of the same type are pushed.
jvm_if_x_ne: INTEGER_32
effective function
Assume two operands of the same type are pushed.
is_expanded: BOOLEAN
constant attribute
is_reference: BOOLEAN
constant attribute
Is a a reference type mark?
is_empty_expanded: BOOLEAN
constant attribute
True when is it a user's expanded type with no attribute.
is_user_expanded: BOOLEAN
constant attribute
Is it really a user expanded type ?
need_c_struct: BOOLEAN
constant attribute
Is it necessary to define a C struct ?
need_gc_mark_function: BOOLEAN
constant attribute
True when objects of the current type must be marked or when gc_mark_to_follow is True in corresponding run class.
class_text_name: CLASS_NAME
writable attribute
The one of the corresponding base class (not the name of the one where it is written!).
jvm_method_flags: INTEGER_32
constant attribute
Return the appropriate flag (static/virtual) when the receiver has this type.
jvm_target_descriptor_in (str: STRING)
frozen
effective procedure
Append in buffer the appropriate JVM type descriptor for the target only.
jvm_check_class_invariant
frozen
effective procedure
If needed, add some byte code to check the class invariant of the pushed object.
jvm_standard_is_equal
frozen
effective procedure
Produce byte-code for standard_is_equal for the top objects pair.
start_position: POSITION
frozen
effective function
The POSITION of the first character of the Current type mark where it is originally written.
run_type: TYPE_MARK
frozen
effective function
c_header_pass1
frozen
effective procedure
c_header_pass2
frozen
effective procedure
c_header_pass3
frozen
effective procedure
c_header_pass4
frozen
effective procedure
c_initialize_in (buffer: STRING)
frozen
effective procedure
Append in buffer C code for initialisation of local variables or attributes (see also c_initialize).
c_type_for_target_in (str: STRING)
frozen
effective procedure
Append in buffer the C type to use when current Eiffel type is used for the target of a feature.
c_type_for_result_in (str: STRING)
frozen
effective procedure
Append in buffer the C type to use when current Eiffel type is used as a result type of a C function.
is_static: BOOLEAN
frozen
constant attribute
An is_static type mark is a completely frozen one that cannot change because of inheritance or because of some different generic derivation.
has_been_specialized: BOOLEAN
frozen
constant attribute
specialize_in (new_type: TYPE): CHARACTER_TYPE_MARK
frozen
effective function
As checked in the require assertion, Current is written in new_type's base class.

  • Result.has_been_specialized
  • is_static implies Result = Current
    All the original source code information is kept in the Result:

  • Result.generating_type = generating_type
  • specialize_thru (parent_type: TYPE, parent_edge: PARENT_EDGE, new_type: TYPE): TYPE_MARK
    frozen
    effective function

    declaration_type: TYPE_MARK
    frozen
    effective function
    For TYPE_MARKs for which the is_static predicate is True, the Result is obviously Current (e.g. "STRING" is the declaration_type of "STRING" and, as another example, "ARRAY[INTEGER]" is the declaration_type of "ARRAY[INTEGER]").
    to_static (new_type: TYPE): TYPE_MARK
    frozen
    effective function
    Compute the is_static one in the new_type context.
    signature_resolve_in (new_type: TYPE): TYPE
    frozen
    effective function
    Same work as resolve_in, but all possible "insert" paths are just ignored.
    written_mark: STRING
    frozen
    effective function
    A short-hand for written_name.to_string.
    is_formal_generic: BOOLEAN
    frozen
    effective function
    Is it a formal generic argument ?
    is_anchored: BOOLEAN
    frozen
    effective function
    Is it written "like ..."
    is_like_current: BOOLEAN
    frozen
    effective function
    Is it written "like Current" ?
    is_generic: BOOLEAN
    deferred function
    Is the written type a generic type?
    generic_list: ARRAY[TYPE_MARK]
    deferred function
    is_kernel_expanded: BOOLEAN
    frozen
    effective function
    Is it written one of: "BOOLEAN", "CHARACTER", "INTEGER", "INTEGER_8", "INTEGER_16", "INTEGER_32", "INTEGER_64", "REAL_32", "REAL_64", "REAL", "REAL_80", "POINTER".
    is_boolean: BOOLEAN
    frozen
    effective function
    Is it written "BOOLEAN"?
    is_character: BOOLEAN
    frozen
    effective function
    Is it written "CHARACTER"?
    is_integer: BOOLEAN
    frozen
    effective function
    Is it written "INTEGER"?
    is_real: BOOLEAN
    frozen
    effective function
    Is it written "REAL*"?
    is_pointer: BOOLEAN
    frozen
    effective function
    Is it written "POINTER"?
    is_tuple: BOOLEAN
    effective function
    Is it written "TUPLE" or "TUPLE[...]"?
    is_string: BOOLEAN
    frozen
    effective function
    Is it written "STRING"?
    is_array: BOOLEAN
    frozen
    effective function
    Is it written "ARRAY"?
    is_any: BOOLEAN
    frozen
    effective function
    Is it written "ANY"?
    is_native_array: BOOLEAN
    frozen
    effective function
    Is it written "NATIVE_ARRAY[...]"?
    is_agent: BOOLEAN
    frozen
    effective function
    Is the writtent type mark some agent type mark ("ROUTINE[...]", "PROCEDURE[...]", "FUNCTION[...]" or "PREDICATE[...]")?
    pretty_in (buffer: STRING)
    effective procedure
    short (shorted_type: TYPE)
    frozen
    effective procedure
    c_type_for_external_in (buffer: STRING)
    frozen
    effective procedure
    c_frame_descriptor_in (buffer: STRING)
    frozen
    effective procedure
    Update c_frame_descriptor_format accordingly.
    class_text: CLASS_TEXT
    effective function
    The one of the corresponding base class (not the name of the one where it is written!).
    debug_info_in (buffer: STRING)
    frozen
    effective procedure
    For debugging only.
    jvm_stack_space: INTEGER_32
    frozen
    effective function