Mir 1.0
Mir application programming interface

Modules

 Array
 
 BigFloat
 
 BigInteger
 
 BitArray
 
 Complex
 
 Exception
 
 Float
 
 Float
 
 FMatrix
 
 Func
 
 FVector
 
 Group
 
 Hash
 
 Integer
 
 IO
 
 IVector
 
 Matrix
 
 Nil, True and False
 
 Random
 
 Rational
 
 String
 
 Symbol
 
 Time
 
 Vector
 

Macros

#define mir_class_add_method_cfunc(class, name, func, mdata, mflags, oflags, ret, pp, pool, tpool)   (mir_class_add_method_cfunc_i((class),(name),(func),0,NULL,(mdata),(mflags),(oflags),(ret),(pp),(pool),(tpool)))
 

Functions

mirkl_error_tmir_class_define (mirkl_object_t **obj, const char *cname, mirkl_object_t *super, mirkl_object_t *scope, mir_prsdata_t *pp, apr_pool_t *pool, apr_pool_t *tmp_pool)
 Definition of a class in global scope. More...
 
mirkl_error_tmir_class_new_instance (mirkl_object_t *class_obj, mirkl_object_t **instance_obj, mir_ast_t *init_args, mir_prsdata_t *pp, apr_pool_t *pool, apr_pool_t *tmp_pool)
 Create instance from class. More...
 
mirkl_error_tmir_class_add_method_cfunc_i (mirkl_object_t *class_obj, const char *var_name, mirkl_error_t *(*func)(mirkl_object_t *obj, mir_ast_t *ast, mir_ast_t **ret, void *mdata, mir_prsdata_t *pp, apr_pool_t *pool), int line, const char *file, void *mdata, mirkl_uint32_t mflags, mirkl_uint32_t oflags, mirkl_object_t **ret_mobj, mir_prsdata_t *pp, apr_pool_t *pool, apr_pool_t *tmp_pool)
 
mirkl_error_tmir_class_add_reader (mirkl_object_t *cobj, const char *varname, mirkl_uint32_t mflags, mirkl_uint32_t oflags, mirkl_object_t **ret_mobj, mirkl_object_t **ret_var, mir_prsdata_t *pp, apr_pool_t *pool, apr_pool_t *tmp_pool)
 
mirkl_error_tmir_class_add_writer (mirkl_object_t *cobj, const char *varname, mirkl_uint32_t mflags, mirkl_uint32_t oflags, mirkl_object_t **ret_mobj, mirkl_object_t **ret_var, mir_prsdata_t *pp, apr_pool_t *pool, apr_pool_t *tmp_pool)
 Similar to mir_class_add_reader, creates writer accessor.
 
void mir_class_del_method (mirkl_object_t *obj, const char *name)
 
mirkl_error_tmir_class_set_super (mirkl_object_t *obj, mirkl_object_t *super)
 
mirkl_object_t * mir_class_get_super (mirkl_object_t *class_obj)
 Getting the object of the superclass.
 

Detailed Description

Function Documentation

◆ mir_class_add_reader()

mirkl_error_t * mir_class_add_reader ( mirkl_object_t *  cobj,
const char *  varname,
mirkl_uint32_t  mflags,
mirkl_uint32_t  oflags,
mirkl_object_t **  ret_mobj,
mirkl_object_t **  ret_var,
mir_prsdata_t *  pp,
apr_pool_t *  pool,
apr_pool_t *  tmp_pool 
)

Definition of reader method for instances of classes.

Parameters
[in]cobjClass, for which the accessor method(s) should be defined.
[in]varnameName of the variable, which should be accessed.
[in]mflagsFlags for the method created, MIR_METH_...
[in]oflagsFlags for the object of the method created, MIR_OBJFLAG_...
[in]ppParser context.
[in,out]ret_mobjCreated method object.
[in,out]ret_varCreated variable containing method object.
[in]poolMemory pool for allocations of created functions. Should live as long as the created function.
[in]tmp_poolMemory pool for temporary allocations. Can be deleted after the call.

◆ mir_class_define()

mirkl_error_t * mir_class_define ( mirkl_object_t **  obj,
const char *  cname,
mirkl_object_t *  super,
mirkl_object_t *  scope,
mir_prsdata_t *  pp,
apr_pool_t *  pool,
apr_pool_t *  tmp_pool 
)

Definition of a class in global scope.

Parameters
objReference to the object of newly defined class.
cnameName of class to be defined.
superObject of the super class for the defined class.
scopeObject, in which the class is defined. If NULL, then the class is defined in MirMainObject.
poolThe pool to use for allocations of class structures. Should be valid as long as the created class lives.
tmp_poolThe pool for temporary allocations. Can be deleted after calling this function.

◆ mir_class_new_instance()

mirkl_error_t * mir_class_new_instance ( mirkl_object_t *  class_obj,
mirkl_object_t **  instance_obj,
mir_ast_t *  init_args,
mir_prsdata_t *  pp,
apr_pool_t *  pool,
apr_pool_t *  tmp_pool 
)

Create instance from class.

Parameters
[in]class_objObject of class.
[out]instance_objObject of instance on output.
init_argsList of arguments for 'init' method.
ppParser context.
poolMemory pool for allocation of the new object.
tmp_poolMemory pool for temporary actions.

◆ mir_class_set_super()

mirkl_error_t * mir_class_set_super ( mirkl_object_t *  obj,
mirkl_object_t *  super 
)

Setting superclass of the class.

Parameters
objClass object, which superclass should be changed.
superClass object, which should be superclass of class obj.