#include <stdlib.h>#include <string.h>#include <assert.h>#include "kite_object.h"| void kite_add_method | ( | kite_thread_t * | thd, | |
| kite_object_t * | obj, | |||
| char * | name, | |||
| kite_object_t * | method | |||
| ) |
Add method to object.
| thd | The current thread. | |
| obj | The object to operate on. | |
| name | The name of the new property. | |
| method | The method object to add. |
References kite_object_t::builtin_data, kite_symtab_t::docstring, kite_object_t::funcvalue, kite_symtab_t::global, kite_reference_object(), kite_symtab_insert(), kite_symtab_t::left, kite_symtab_t::name, kite_function_t::numargs, kite_object_t::object_data, kite_object_t::properties, kite_symtab_t::right, and kite_symtab_t::value.
Referenced by kite_add_operator(), and kite_new_vm().
| void kite_add_operator | ( | kite_thread_t * | thd, | |
| kite_object_t * | obj, | |||
| int | op, | |||
| kite_object_t * | method | |||
| ) |
Add operator to object.
| thd | The current thread. | |
| obj | The object to operate on. | |
| op | The operator to add (from enum kite_operators) | |
| method | The method object to associate with the operator. |
References kite_add_method(), kite_remove_operator(), and OP_TO_METHOD.
| void kite_add_property | ( | kite_thread_t * | thd, | |
| kite_object_t * | obj, | |||
| char * | name, | |||
| int | global, | |||
| char * | doc | |||
| ) |
Add property to object.
| thd | The current thread. | |
| obj | The object to operate on. | |
| name | The name of the new property. | |
| global | 1 for global property, 0 for non-global. | |
| doc | Description of property (NULL if not given). |
References kite_symtab_t::docstring, kite_symtab_t::global, kite_exists_property(), kite_symtab_insert(), kite_symtab_t::left, kite_symtab_t::name, kite_object_t::object_data, kite_object_t::properties, kite_symtab_t::right, and kite_symtab_t::value.
Referenced by kite_dereference_and_load(), and kite_set_property().
| int kite_exists_method | ( | kite_object_t * | obj, | |
| char * | name | |||
| ) |
Determines the existance of a method.
| obj | The object to operate on. | |
| name | The name of the method to check. |
References KITE_FIND_METHOD, kite_object_t::type, and kite_symtab_t::value.
| int kite_exists_operator | ( | kite_object_t * | obj, | |
| int | op | |||
| ) |
Determines the existance of an operator.
| obj | The object to operate on. | |
| op | The operator to check for (from kite_operators) |
References KITE_FIND_ANY_IN_SYMTAB, kite_object_t::object_data, OP_TO_METHOD, and kite_object_t::properties.
| int kite_exists_property | ( | kite_object_t * | obj, | |
| char * | name | |||
| ) |
Determines the existance of a property.
| obj | The object to operate on. | |
| name | The name of the property to check. |
References KITE_FIND_PROPERTY.
Referenced by kite_add_property().
| char* kite_get_docstring | ( | kite_object_t * | obj | ) |
Gets the documentation string for a given object.
| obj | The object to operate on. |
References kite_object_t::docstring, and kite_object_t::object_data.
| kite_object_t* kite_get_property | ( | kite_object_t * | obj, | |
| char * | name | |||
| ) |
Retrieve the value of a property.
| obj | The object to operate on. | |
| name | The name of the property to retrieve. |
References KITE_FIND_PROPERTY, kite_reference_object(), and kite_symtab_t::value.
| void kite_remove_method | ( | kite_thread_t * | thd, | |
| kite_object_t * | obj, | |||
| char * | name, | |||
| int | numargs | |||
| ) |
Removes method from the given object.
| thd | The current thread. | |
| obj | The object to operate on. | |
| name | The name of the method to remove. | |
| numargs | The number of arguments of the method to remove. |
References kite_symtab_remove(), kite_object_t::object_data, and kite_object_t::properties.
Referenced by kite_remove_operator().
| void kite_remove_operator | ( | kite_thread_t * | thd, | |
| kite_object_t * | obj, | |||
| int | op | |||
| ) |
Removes operator from the given object.
| thd | The current thread. | |
| obj | The object to operate on. | |
| op | The operator to remove (from kite_operators) |
References kite_symtab_t::global, KITE_FIND_ANY_IN_SYMTAB, kite_remove_method(), kite_object_t::object_data, OP_TO_METHOD, and kite_object_t::properties.
Referenced by kite_add_operator().
| void kite_remove_property | ( | kite_thread_t * | thd, | |
| kite_object_t * | obj, | |||
| char * | name, | |||
| int | global | |||
| ) |
Removes property from the given object.
| thd | The current thread. | |
| obj | The object to operate on. | |
| name | The name of the property to remove. | |
| global | 1 for global properties, 0 otherwise. |
References kite_symtab_remove(), kite_object_t::object_data, and kite_object_t::properties.
| void kite_set_arginfo | ( | kite_object_t * | obj, | |
| kite_object_t * | arginfo | |||
| ) |
Sets the argument information for a given method.
| obj | The method to operate on. | |
| arginfo | A list of arguments. Each element is an identifier containing a name, and the documentation string associated with each identifier contains the description. |
References kite_function_t::arginfo, kite_object_t::builtin_data, kite_object_t::funcvalue, and kite_reference_object().
Referenced by kite_new_method_bytecode_with_docs(), and kite_new_method_compiled_with_docs().
| void kite_set_docstring | ( | kite_object_t * | obj, | |
| char * | str | |||
| ) |
Sets the documentation string for a given object.
| obj | The object to operate on. | |
| str | The documentation string to set. |
References kite_object_t::docstring, and kite_object_t::object_data.
Referenced by kite_new_method_bytecode_with_docs(), and kite_new_method_compiled_with_docs().
| void kite_set_property | ( | kite_thread_t * | thd, | |
| kite_object_t * | obj, | |||
| char * | name, | |||
| kite_object_t * | value | |||
| ) |
Sets property to the given object.
| thd | The current thread. | |
| obj | The object to operate on. | |
| name | The name of the property to set. | |
| value | The object to set the property to. |
References kite_symtab_t::global, kite_object_t::inherit_from, kite_add_property(), kite_dereference_object(), KITE_FIND_PROPERTY, kite_reference_object(), kite_set_property(), kite_object_t::object_data, kite_object_t::parent, and kite_symtab_t::value.
Referenced by kite_dereference_and_load(), and kite_set_property().
1.5.6