<< ValueVector
 Top   Types   Functions   Classes   Index 
Type >>

struct CrlValueApplication / crl_value_application_t

Concrete Class


Description

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:

Kinship

Immediate super class: ValueCompound

Type Aliases

typedeffunctor_type_t type_t

Slots

symbol_t functor1
symbol_t functor2
functor_type_t type

Inherited Slots

VectorValue ValueCompound::children
int Object::class_id
int Object::heap_sig
int Object::ref_count
UserData Object::user_data

Members

functor_type_tstring_to_type(char const *)
symbol_ttype_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 &)
voidoperator=(ValueApplication const &)
voidappend(Value * value)
voidappend(Item * value)
voidappend(char const * value)
voidappend(unsigned_t value)
voidappend_float(float_t value)
voidappend_signed(signed_t value)
voidappend_symbol(symbol_t value)
VectorValue const *arguments() const
Value *find(char const * key) const
boolfind(float_t & result, char const * key) const
boolfind(float_t & result, Value const * key) const
boolfind(signed_t & result, char const * key) const
boolfind(signed_t & result, Value const * key) const
boolfind(unsigned_t & result, char const * key) const
boolfind(unsigned_t & result, Value const * key) const
Value *find(Value const * key) const
boolfind_bool(char const * key) const
boolfind_bool(Value const * key) const
boolfind_bool_sym(symbol_t key) const
byte_tfind_byte(char const * key) const
byte_tfind_byte(Value const * key) const
byte_tfind_byte_sym(symbol_t key) const
intfind_int(char const * key) const
intfind_int(Value const * key) const
intfind_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
boolfind_sym(float_t & result, symbol_t key) const
boolfind_sym(signed_t & result, symbol_t key) const
boolfind_sym(unsigned_t & result, symbol_t key) const
symbol_tfind_symbol(char const * key) const
symbol_tfind_symbol(Value const * key) const
symbol_tfind_symbol_sym(symbol_t key) const
word32_tfind_word32(char const * key) const
word32_tfind_word32(Value const * key) const
word32_tfind_word32_sym(symbol_t key) const
symbol_tfunctor1() const
symbol_tfunctor2() const
Value *get()
Value const *get() const
boolhas(signed_t key) const
boolhas(char const * key) const
boolhas(Value const * key) const
boolhas_sym(symbol_t key) const
boolinvalidate()
boolis_special(signed_t key) const
boolis_special(char const * key) const
boolis_special(Value const * key) const
boolis_special_sym(symbol_t key) const
boolis_valid() const
boolis_valid_special() const
index_tnext_index() const
Value *nth(signed_t key) const
boolnth(float_t & result, signed_t key) const
boolnth(signed_t & result, signed_t key) const
boolnth(unsigned_t & result, signed_t key) const
boolnth_bool(signed_t key) const
byte_tnth_byte(signed_t key) const
intnth_int(signed_t key) const
Item *nth_item(signed_t key) const
char const *nth_string(signed_t key) const
symbol_tnth_symbol(signed_t key) const
word32_tnth_word32(signed_t key) const
boolpoke(Value * value)
boolpoke_once(Value * value)
voidreset(signed_t key)
boolreset(char const * key)
boolreset(Value const * key)
boolreset_sym(symbol_t key)
voidset(signed_t key, Value * value)
boolset(char const * key, Value * value)
boolset(char const * key, Item * value)
voidset(signed_t key, Item * value)
voidset(signed_t key, char const * value)
voidset(signed_t key, unsigned_t value)
boolset(char const * key, char const * value)
boolset(char const * key, unsigned_t value)
boolset(Value const * key, Value * value)
boolset(Value const * key, Item * value)
boolset(Value const * key, char const * value)
boolset(Value const * key, unsigned_t value)
boolset_float(char const * key, float_t value)
voidset_float(signed_t key, float_t value)
boolset_float(Value const * key, float_t value)
voidset_functor1(char const *)
voidset_functor1_sym(symbol_t)
voidset_functor2(char const *)
voidset_functor2_sym(symbol_t)
boolset_once(signed_t key, Value * value)
boolset_once(char const * key, Value * value)
boolset_once(char const * key, Item * value)
boolset_once(signed_t key, Item * value)
boolset_once(signed_t key, char const * value)
boolset_once(signed_t key, unsigned_t value)
boolset_once(char const * key, char const * value)
boolset_once(char const * key, unsigned_t value)
boolset_once(Value const * key, Value * value)
boolset_once(Value const * key, Item * value)
boolset_once(Value const * key, char const * value)
boolset_once(Value const * key, unsigned_t value)
boolset_once_float(char const * key, float_t value)
boolset_once_float(signed_t key, float_t value)
boolset_once_float(Value const * key, float_t value)
boolset_once_signed(signed_t key, signed_t value)
boolset_once_signed(char const * key, signed_t value)
boolset_once_signed(Value const * key, signed_t value)
boolset_once_sym(symbol_t key, Value * value)
boolset_once_sym(symbol_t key, Item * value)
boolset_once_sym(symbol_t key, char const * value)
boolset_once_sym(symbol_t key, unsigned_t value)
boolset_once_sym_float(symbol_t key, float_t value)
boolset_once_sym_signed(symbol_t key, signed_t value)
boolset_once_sym_symbol(symbol_t key, symbol_t value)
boolset_once_symbol(signed_t key, symbol_t value)
boolset_once_symbol(char const * key, symbol_t value)
boolset_once_symbol(Value const * key, symbol_t value)
voidset_signed(signed_t key, signed_t value)
boolset_signed(char const * key, signed_t value)
boolset_signed(Value const * key, signed_t value)
boolset_sym(symbol_t key, Value * value)
boolset_sym(symbol_t key, Item * value)
boolset_sym(symbol_t key, char const * value)
boolset_sym(symbol_t key, unsigned_t value)
boolset_sym_float(symbol_t key, float_t value)
boolset_sym_signed(symbol_t key, signed_t value)
boolset_sym_symbol(symbol_t key, symbol_t value)
voidset_symbol(signed_t key, symbol_t value)
boolset_symbol(char const * key, symbol_t value)
boolset_symbol(Value const * key, symbol_t value)
voidset_type(functor_type_t)
functor_type_ttype() const
symbol_ttype_to_symbol() const

Inherited Members

From ClassC++C
Crl::address_default_user_print_file
Crl::address_default_user_print_vchar
Crl::bool_default_user_print_file
Crl::bool_default_user_print_vchar
Crl::context_default
Crl::enum_default_user_print_file
Crl::enum_default_user_print_vchar
Crl::float_default_user_print_file
Crl::float_default_user_print_vchar
Crl::get_string2symbol
Crl::get_string2symbol_default
Crl::get_user_data_delete_hook
Crl::gmt_default_user_print_file
Crl::gmt_default_user_print_vchar
Crl::identifier_default_user_print_file
Crl::identifier_default_user_print_vchar
Crl::is_c_identifier
Crl::is_initialised
Crl::is_lowcase_identifier
Crl::is_normalised_decimal
Crl::klass_id_to_crl_name
Crl::klass_id_to_name
Crl::set_handle_foreign_item
Crl::set_string2symbol
Crl::set_user_data_delete_hook
Crl::signed_default_user_print_file
Crl::signed_default_user_print_vchar
Crl::string2symbol
Crl::string_default_user_print_file
Crl::string_default_user_print_vchar
Crl::symbol_default_user_print_file
Crl::symbol_default_user_print_vchar
Crl::type_any
Crl::unsigned_default_user_print_file
Crl::unsigned_default_user_print_vchar
Object::operator delete
Object::operator new
Object::operator!=crl_value_application_is_not_equal
Object::operator<crl_value_application_is_less_than
Object::operator<=crl_value_application_is_less_equal
Object::operator==crl_value_application_is_equal
Object::operator>crl_value_application_is_greater_than
Object::operator>=crl_value_application_is_greater_equal
Object::_ref
Object::_ref_unref
Object::_unref
Object::_unref_no_delete
Object::check_sigcrl_value_application_check_sig
Value::childcrl_value_application_get_child
ValueCompound::childrencrl_value_application_get_children
Object::class_idcrl_value_application_get_class_id
Object::cmpcrl_value_application_cmp
Object::cmp_shallowcrl_value_application_cmp_shallow
ValueCompound::emptycrl_value_application_empty
ValueCompound::erasecrl_value_application_erase_nth
ValueCompound::firstcrl_value_application_first
Object::graphcrl_value_application_get_graph_const
Object::hashcrl_value_application_hash
Object::hash_shallowcrl_value_application_hash_shallow
Object::heap_sigcrl_value_application_get_heap_sig
ValueCompound::insertcrl_value_application_insert
Value::item
Object::klass_idcrl_value_application_get_klass_id
Object::klass_namecrl_value_application_get_klass_name
ValueCompound::lastcrl_value_application_last
Object::mapcrl_value_application_map
Object::map_subcrl_value_application_map_sub_with_data
ValueCompound::nentriescrl_value_application_nentries
ValueCompound::non_emptycrl_value_application_non_empty
Object::printcrl_value_application_print_vchar
Value::print_explicitcrl_value_application_print_explicit_file
ValueCompound::qsortcrl_value_application_qsort
Object::ref_count
Object::routinecrl_value_application_get_routine_const
ValueCompound::rtrimcrl_value_application_rtrim
Object::set_user_datacrl_value_application_set_user_data
Structure::skipcrl_value_application_skip
ValueCompound::sortcrl_value_application_sort
Object::to_vcharcrl_value_application_to_vchar
Object::user_datacrl_value_application_get_user_data_const


Detailed Descriptions


#if CRL_NEED_VALUE_APPLICATION

functor_type_t type () 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


#if CRL_NEED_VALUE_APPLICATION

symbol_t functor1 () const

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


#if CRL_NEED_VALUE_APPLICATION

symbol_t functor2 () const

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


#if CRL_NEED_VALUE_APPLICATION

[constructor] CrlValueApplication ()

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


#if CRL_NEED_VALUE_APPLICATION

[constructor] CrlValueApplication (functor_type_t type, char const * functor)

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


#if CRL_NEED_VALUE_APPLICATION

[constructor] CrlValueApplication (functor_type_t type, char const * functor, bool suppress_string2symbol)

C++: CrlValueApplication::CrlValueApplication (crl_functor_type_t type, char const * functor, bool suppress_string2symbol)
C: Not available.

does not invoke string2symbol()

#endif


#if CRL_NEED_VALUE_APPLICATION

[constructor] CrlValueApplication (functor_type_t type, char const * functor_part1, char const * functor_part2)

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.

Notes

If these conditions are not fulfilled, the application is printed as a C_STYLE funcall.

Further Note

currently, these values cannot be properly printed and parsed. Instead, they are converted to a string. This may change in the future.

#endif


#if CRL_NEED_VALUE_APPLICATION

[constructor] CrlValueApplication (functor_type_t type, char const * functor_part1, char const * functor_part2, bool suppress_string2symbol)

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


#if CRL_NEED_VALUE_APPLICATION

[constructor] CrlValueApplication (ValueApplication const &)

C++: CrlValueApplication::CrlValueApplication (CrlValueApplication const &)
C: crl_value_application_t * crl_value_application_new_copy (crl_value_application_t const *)
#endif


#if CRL_NEED_VALUE_APPLICATION

void operator= (ValueApplication const &)

C++: void CrlValueApplication::operator= (CrlValueApplication const &)
C: void crl_value_application_assign (crl_value_application_t * self, crl_value_application_t const *)
#endif


#if CRL_NEED_VALUE_APPLICATION

void set_type (functor_type_t)

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


#if CRL_NEED_VALUE_APPLICATION

void set_functor1 (char const *)

C++: void CrlValueApplication::set_functor1 (char const *)
C: void crl_value_application_set_functor1 (crl_value_application_t * self, char const *)
#endif


#if CRL_NEED_VALUE_APPLICATION

void set_functor2 (char const *)

C++: void