| << ValueVector |
| Type >> |
|
A value representing a function application.
Its main usage is for storing assembly files, since complex expressions containing function applications are probably unlikely for machine code input.
Several syntaxes are available, selected by type(). Circumfix applications (like parens, brackes, braces) have two functors, functor1() and functor2(), all others only use functor1().
Additional to accessing the slots directly, this class emulates a map structure with the following special attributes:
"type"
"functor" == "functor1"
"functor2"
Immediate super class: ValueCompound
| typedef | functor_type_t | type_t |
| symbol_t | functor1 |
| symbol_t | functor2 |
| functor_type_t | type |
| VectorValue | ValueCompound:: | children |
| int | Object:: | class_id |
| int | Object:: | heap_sig |
| int | Object:: | ref_count |
| UserData | Object:: | user_data |
| functor_type_t | string_to_type | (char const *) | ||
| symbol_t | type_to_symbol | (functor_type_t) | ||
| CrlValueApplication | () | |||
| CrlValueApplication | (functor_type_t type, char const * functor) | |||
| CrlValueApplication | (functor_type_t type, char const * functor, bool suppress_string2symbol) | |||
| CrlValueApplication | (functor_type_t type, char const * functor_part1, char const * functor_part2) | |||
| CrlValueApplication | (functor_type_t type, char const * functor_part1, char const * functor_part2, bool suppress_string2symbol) | |||
| CrlValueApplication | (ValueApplication const &) | |||
| void | operator= | (ValueApplication const &) | ||
| void | append | (Value * value) | ||
| void | append | (Item * value) | ||
| void | append | (char const * value) | ||
| void | append | (unsigned_t value) | ||
| void | append_float | (float_t value) | ||
| void | append_signed | (signed_t value) | ||
| void | append_symbol | (symbol_t value) | ||
| VectorValue const * | arguments | () const | ||
| Value * | find | (char const * key) const | ||
| bool | find | (float_t & result, char const * key) const | ||
| bool | find | (float_t & result, Value const * key) const | ||
| bool | find | (signed_t & result, char const * key) const | ||
| bool | find | (signed_t & result, Value const * key) const | ||
| bool | find | (unsigned_t & result, char const * key) const | ||
| bool | find | (unsigned_t & result, Value const * key) const | ||
| Value * | find | (Value const * key) const | ||
| bool | find_bool | (char const * key) const | ||
| bool | find_bool | (Value const * key) const | ||
| bool | find_bool_sym | (symbol_t key) const | ||
| byte_t | find_byte | (char const * key) const | ||
| byte_t | find_byte | (Value const * key) const | ||
| byte_t | find_byte_sym | (symbol_t key) const | ||
| int | find_int | (char const * key) const | ||
| int | find_int | (Value const * key) const | ||
| int | find_int_sym | (symbol_t key) const | ||
| Item * | find_item | (char const * key) const | ||
| Item * | find_item | (Value const * key) const | ||
| Item * | find_item_sym | (symbol_t key) const | ||
| char const * | find_string | (char const * key) const | ||
| char const * | find_string | (Value const * key) const | ||
| char const * | find_string_sym | (symbol_t key) const | ||
| Value * | find_sym | (symbol_t key) const | ||
| bool | find_sym | (float_t & result, symbol_t key) const | ||
| bool | find_sym | (signed_t & result, symbol_t key) const | ||
| bool | find_sym | (unsigned_t & result, symbol_t key) const | ||
| symbol_t | find_symbol | (char const * key) const | ||
| symbol_t | find_symbol | (Value const * key) const | ||
| symbol_t | find_symbol_sym | (symbol_t key) const | ||
| word32_t | find_word32 | (char const * key) const | ||
| word32_t | find_word32 | (Value const * key) const | ||
| word32_t | find_word32_sym | (symbol_t key) const | ||
| symbol_t | functor1 | () const | ||
| symbol_t | functor2 | () const | ||
| Value * | get | () | ||
| Value const * | get | () const | ||
| bool | has | (signed_t key) const | ||
| bool | has | (char const * key) const | ||
| bool | has | (Value const * key) const | ||
| bool | has_sym | (symbol_t key) const | ||
| bool | invalidate | () | ||
| bool | is_special | (signed_t key) const | ||
| bool | is_special | (char const * key) const | ||
| bool | is_special | (Value const * key) const | ||
| bool | is_special_sym | (symbol_t key) const | ||
| bool | is_valid | () const | ||
| bool | is_valid_special | () const | ||
| index_t | next_index | () const | ||
| Value * | nth | (signed_t key) const | ||
| bool | nth | (float_t & result, signed_t key) const | ||
| bool | nth | (signed_t & result, signed_t key) const | ||
| bool | nth | (unsigned_t & result, signed_t key) const | ||
| bool | nth_bool | (signed_t key) const | ||
| byte_t | nth_byte | (signed_t key) const | ||
| int | nth_int | (signed_t key) const | ||
| Item * | nth_item | (signed_t key) const | ||
| char const * | nth_string | (signed_t key) const | ||
| symbol_t | nth_symbol | (signed_t key) const | ||
| word32_t | nth_word32 | (signed_t key) const | ||
| bool | poke | (Value * value) | ||
| bool | poke_once | (Value * value) | ||
| void | reset | (signed_t key) | ||
| bool | reset | (char const * key) | ||
| bool | reset | (Value const * key) | ||
| bool | reset_sym | (symbol_t key) | ||
| void | set | (signed_t key, Value * value) | ||
| bool | set | (char const * key, Value * value) | ||
| bool | set | (char const * key, Item * value) | ||
| void | set | (signed_t key, Item * value) | ||
| void | set | (signed_t key, char const * value) | ||
| void | set | (signed_t key, unsigned_t value) | ||
| bool | set | (char const * key, char const * value) | ||
| bool | set | (char const * key, unsigned_t value) | ||
| bool | set | (Value const * key, Value * value) | ||
| bool | set | (Value const * key, Item * value) | ||
| bool | set | (Value const * key, char const * value) | ||
| bool | set | (Value const * key, unsigned_t value) | ||
| bool | set_float | (char const * key, float_t value) | ||
| void | set_float | (signed_t key, float_t value) | ||
| bool | set_float | (Value const * key, float_t value) | ||
| void | set_functor1 | (char const *) | ||
| void | set_functor1_sym | (symbol_t) | ||
| void | set_functor2 | (char const *) | ||
| void | set_functor2_sym | (symbol_t) | ||
| bool | set_once | (signed_t key, Value * value) | ||
| bool | set_once | (char const * key, Value * value) | ||
| bool | set_once | (char const * key, Item * value) | ||
| bool | set_once | (signed_t key, Item * value) | ||
| bool | set_once | (signed_t key, char const * value) | ||
| bool | set_once | (signed_t key, unsigned_t value) | ||
| bool | set_once | (char const * key, char const * value) | ||
| bool | set_once | (char const * key, unsigned_t value) | ||
| bool | set_once | (Value const * key, Value * value) | ||
| bool | set_once | (Value const * key, Item * value) | ||
| bool | set_once | (Value const * key, char const * value) | ||
| bool | set_once | (Value const * key, unsigned_t value) | ||
| bool | set_once_float | (char const * key, float_t value) | ||
| bool | set_once_float | (signed_t key, float_t value) | ||
| bool | set_once_float | (Value const * key, float_t value) | ||
| bool | set_once_signed | (signed_t key, signed_t value) | ||
| bool | set_once_signed | (char const * key, signed_t value) | ||
| bool | set_once_signed | (Value const * key, signed_t value) | ||
| bool | set_once_sym | (symbol_t key, Value * value) | ||
| bool | set_once_sym | (symbol_t key, Item * value) | ||
| bool | set_once_sym | (symbol_t key, char const * value) | ||
| bool | set_once_sym | (symbol_t key, unsigned_t value) | ||
| bool | set_once_sym_float | (symbol_t key, float_t value) | ||
| bool | set_once_sym_signed | (symbol_t key, signed_t value) | ||
| bool | set_once_sym_symbol | (symbol_t key, symbol_t value) | ||
| bool | set_once_symbol | (signed_t key, symbol_t value) | ||
| bool | set_once_symbol | (char const * key, symbol_t value) | ||
| bool | set_once_symbol | (Value const * key, symbol_t value) | ||
| void | set_signed | (signed_t key, signed_t value) | ||
| bool | set_signed | (char const * key, signed_t value) | ||
| bool | set_signed | (Value const * key, signed_t value) | ||
| bool | set_sym | (symbol_t key, Value * value) | ||
| bool | set_sym | (symbol_t key, Item * value) | ||
| bool | set_sym | (symbol_t key, char const * value) | ||
| bool | set_sym | (symbol_t key, unsigned_t value) | ||
| bool | set_sym_float | (symbol_t key, float_t value) | ||
| bool | set_sym_signed | (symbol_t key, signed_t value) | ||
| bool | set_sym_symbol | (symbol_t key, symbol_t value) | ||
| void | set_symbol | (signed_t key, symbol_t value) | ||
| bool | set_symbol | (char const * key, symbol_t value) | ||
| bool | set_symbol | (Value const * key, symbol_t value) | ||
| void | set_type | (functor_type_t) | ||
| functor_type_t | type | () const | ||
| symbol_t | type_to_symbol | () const |
| C++: | crl_functor_type_t CrlValueApplication::type () const |
| C: | crl_functor_type_t crl_value_application_get_type (crl_value_application_t const * self) |
Reader of slot 'type': Type of the application.
This reader must not be invoked with this == NULL.
#endif |
| C++: | crl_symbol_t CrlValueApplication::functor1 () const |
| C: | crl_symbol_t crl_value_application_get_functor1 (crl_value_application_t const * self) |
Reader of slot 'functor1': Functor, part 1.
This reader must not be invoked with this == NULL.
#endif |
| C++: | crl_symbol_t CrlValueApplication::functor2 () const |
| C: | crl_symbol_t crl_value_application_get_functor2 (crl_value_application_t const * self) |
Reader of slot 'functor2': Functor, part 2 (only for a circumfix application).
This reader must not be invoked with this == NULL.
#endif |
| C++: | CrlValueApplication::CrlValueApplication () |
| C: | crl_value_application_t * crl_value_application_new (void) |
Generates a C functor (CRL_FUNCTOR_C) with a functor name NULL and no parameters.
#endif |
| C++: | CrlValueApplication::CrlValueApplication (crl_functor_type_t type, char const * functor) |
| C: | crl_value_application_t * crl_value_application_new_with_type_and_functor (crl_functor_type_t type, char const * functor) |
#endif |
| C++: | CrlValueApplication::CrlValueApplication (crl_functor_type_t type, char const * functor, bool suppress_string2symbol) |
| C: | Not available. |
does not invoke string2symbol()
#endif |
| C++: | CrlValueApplication::CrlValueApplication (crl_functor_type_t type, char const * functor_part1, char const * functor_part2) |
| C: | crl_value_application_t * crl_value_application_new_with_type_and_functors (crl_functor_type_t type, char const * functor_part1, char const * functor_part2) |
The second part of the functor is only used for circumfix functors.
prefix, suffix and circumfix functors take exactly one argument.
infix functors take exactly two arguments
If these conditions are not fulfilled, the application is printed as a C_STYLE funcall.
currently, these values cannot be properly printed and parsed. Instead, they are converted to a string. This may change in the future.
#endif |
| C++: | CrlValueApplication::CrlValueApplication (crl_functor_type_t type, char const * functor_part1, char const * functor_part2, bool suppress_string2symbol) |
| C: | Not available. |
does not invoke string2symbol()
#endif |
| C++: | CrlValueApplication::CrlValueApplication (CrlValueApplication const &) |
| C: | crl_value_application_t * crl_value_application_new_copy (crl_value_application_t const *) |
#endif |
| C++: | void CrlValueApplication::operator= (CrlValueApplication const &) |
| C: | void crl_value_application_assign (crl_value_application_t * self, crl_value_application_t const *) |
#endif |
| C++: | void CrlValueApplication::set_type (crl_functor_type_t) |
| C: | void crl_value_application_set_type (crl_value_application_t * self, crl_functor_type_t) |
#endif |
| C++: | void CrlValueApplication::set_functor1 (char const *) |
| C: | void crl_value_application_set_functor1 (crl_value_application_t * self, char const *) |
#endif |
| C++: | void |