class WRITABLE_ATTRIBUTE_NAME
Summary
Class invariant
Overview
creation features
exported features
For pretty and short:
feature_name: FEATURE_NAME
writable attribute
The corresponding one.
feature_stamp: FEATURE_STAMP
writable attribute
The good feature_stamp for the feature in some type.
start_position: POSITION
effective function
The position of the first character of to_string in the text source.
to_string: STRING
effective function
The corresponding name (alone in a STRING).
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?
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).
precedence: INTEGER_32
effective function
Handling of precedence (priority of expressions).
is_writable: BOOLEAN
constant attribute
Is is something that one can find on the left-hand-side of the := operator ?
use_current (type: TYPE): BOOLEAN
effective function
Is Current used?
specialize_in (type: TYPE): WRITABLE_ATTRIBUTE_NAME
effective function
Specialize Current knowing that the corresponding source code was written in type.
specialize_thru (parent_type: TYPE, parent_edge: PARENT_EDGE, new_type: TYPE): WRITABLE_ATTRIBUTE_NAME
effective 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 (type: TYPE): WRITABLE_ATTRIBUTE_NAME
effective function
This specialize_2 step is applyed after specialize_in / specialize_thru.
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).
adapt_for (t: TYPE): WRITABLE_ATTRIBUTE_NAME
effective function
This function is called only once at the end of the compilation process (i.e. after collect and simplify).
non_void_no_dispatch_type (type: TYPE): TYPE
effective function
A non Void Result indicates that Current cannot be Void and that Current drives exactely to a single possible dynamic TYPE.
simplify (type: TYPE): EXPRESSION
effective function
May return Current, Void or a simplified version of Current.
written_declaration_type_mark: TYPE_MARK
writable attribute
This variant of declaration_type is used only to check the left-hand side of "?:=", "::=" or "?=".
declaration_type: TYPE
writable attribute
The static type one can deduce from the declaration written in source text.
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.
safety_check (type: TYPE)
effective procedure
compile_to_c (type: TYPE)
effective procedure
For an INSTRUCTION, produce the corresponding C code.
mapping_c_target (type: TYPE, target_formal_type: TYPE)
effective procedure
Produce C code in order to pass Current EXPRESSION as the target of some feature call.
mapping_c_arg (type: TYPE)
effective procedure
Produce C code in order to pass Current expression as an argument of the feature called.
is_static: BOOLEAN
constant attribute
True if the expression has always the same static value regardless the context of the code.
pretty (indent_level: INTEGER_32)
effective procedure
pretty_target (indent_level: INTEGER_32)
effective procedure
For pretty.
short (type: TYPE)
effective procedure
Produce the short command output in the given context type.
short_target (type: TYPE)
effective procedure
Produce the short command output in the given context type.
jvm_assign_creation (type: TYPE)
effective procedure
Basic assignment using value on top of stack.
jvm_assign (type: TYPE)
effective procedure
Basic assignment using value on top of stack.
compile_target_to_jvm (type: TYPE)
effective procedure
Same as compile_to_jvm, but add class invariant check when needed.
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.
collect (type: TYPE): TYPE
effective function
Collect Current to become actually true live code in type knowing that Current is already specialized in type.
effective procedure
Accept to be visited by the visitor.
is_default_value: BOOLEAN
frozen
effective function
True if Current represents Void, False , 0, or whatever is a default value.
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.
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
extra_bracket_flag: BOOLEAN
deferred function
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)
deferred procedure
For pretty.
bracketed_short (type: TYPE)
frozen
effective procedure
specialize_2_without_checks (type: TYPE): CODE
effective function
Perform specialize_2 without checking the validity (export violations, ...)
line: INTEGER_32
frozen
effective function
column: INTEGER_32
frozen
effective function