Flecs: include/flecs/addons/script.h File Reference
Description: A fast entity component system (ECS) for C & C++

| Flecs v4.0 A fast entity component system (ECS) for C & C++

Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Functions
script.h File Reference

Flecs script module. More...

Go to the source code of this file.

## Classes
struct | ecs_script_var_t
| Script variable. More...
struct | ecs_script_vars_t
| Script variable scope. More...
struct | ecs_script_t
| Script object. More...
struct | EcsScript
| Script component. More...
struct | ecs_function_ctx_t
| Script function context. More...
struct | ecs_script_parameter_t
| Function argument type. More...
struct | EcsScriptConstVar
| Const component. More...
struct | EcsScriptFunction
| Function component. More...
struct | EcsScriptMethod
| Method component. More...
struct | ecs_script_eval_desc_t
| Used with ecs_script_parse() and ecs_script_eval() More...
struct | ecs_script_desc_t
| Used with ecs_script_init() More...
struct | ecs_expr_eval_desc_t
| Used with ecs_expr_run(). More...
struct | ecs_const_var_desc_t
| Used with ecs_const_var_init. More...
struct | ecs_function_desc_t
| Used with ecs_function_init and ecs_method_init. More...

## Macros
#define | FLECS_PARSER
#define | FLECS_SCRIPT_H
#define | FLECS_SCRIPT_FUNCTION_ARGS_MAX (16)
#define | ecs_script(world, ...)
#define | ecs_script_vars_define(vars, name, type)
#define | ecs_const_var(world, ...)
#define | ecs_function(world, ...)
#define | ecs_method(world, ...)

## Typedefs
typedef struct ecs_script_template_t | ecs_script_template_t
typedef struct ecs_script_var_t | ecs_script_var_t
| Script variable.
typedef struct ecs_script_vars_t | ecs_script_vars_t
| Script variable scope.
typedef struct ecs_script_t | ecs_script_t
| Script object.
typedef struct ecs_script_runtime_t | ecs_script_runtime_t
typedef struct EcsScript | EcsScript
| Script component.
typedef struct ecs_function_ctx_t | ecs_function_ctx_t
| Script function context.
typedef void(* | ecs_function_callback_t) (const ecs_function_ctx_t *ctx, int32_t argc, const ecs_value_t *argv, ecs_value_t *result)
| Script function callback.
typedef struct ecs_script_parameter_t | ecs_script_parameter_t
| Function argument type.
typedef struct EcsScriptConstVar | EcsScriptConstVar
| Const component.
typedef struct EcsScriptFunction | EcsScriptFunction
| Function component.
typedef struct EcsScriptMethod | EcsScriptMethod
| Method component.
typedef struct ecs_script_eval_desc_t | ecs_script_eval_desc_t
| Used with ecs_script_parse() and ecs_script_eval()
typedef struct ecs_script_desc_t | ecs_script_desc_t
| Used with ecs_script_init()
typedef struct ecs_expr_eval_desc_t | ecs_expr_eval_desc_t
| Used with ecs_expr_run().
typedef struct ecs_const_var_desc_t | ecs_const_var_desc_t
| Used with ecs_const_var_init.
typedef struct ecs_function_desc_t | ecs_function_desc_t
| Used with ecs_function_init and ecs_method_init.
typedef struct ecs_expr_node_t | ecs_expr_node_t

## Functions
FLECS_API | ECS_COMPONENT_DECLARE (EcsScript)
FLECS_API | ECS_DECLARE (EcsScriptTemplate)
FLECS_API | ECS_COMPONENT_DECLARE (EcsScriptConstVar)
FLECS_API | ECS_COMPONENT_DECLARE (EcsScriptFunction)
FLECS_API | ECS_COMPONENT_DECLARE (EcsScriptMethod)
FLECS_API ecs_script_t * | ecs_script_parse (ecs_world_t *world, const char *name, const char *code, const ecs_script_eval_desc_t *desc)
| Parse script.
FLECS_API int | ecs_script_eval (const ecs_script_t *script, const ecs_script_eval_desc_t *desc)
| Evaluate script.
FLECS_API void | ecs_script_free (ecs_script_t *script)
| Free script.
FLECS_API int | ecs_script_run (ecs_world_t *world, const char *name, const char *code)
| Parse script.
FLECS_API int | ecs_script_run_file (ecs_world_t *world, const char *filename)
| Parse script file.
FLECS_API ecs_script_runtime_t * | ecs_script_runtime_new (void)
| Create runtime for script.
FLECS_API void | ecs_script_runtime_free (ecs_script_runtime_t *runtime)
| Free script runtime.
FLECS_API int | ecs_script_ast_to_buf (ecs_script_t *script, ecs_strbuf_t *buf, bool colors)
| Convert script AST to string.
FLECS_API char * | ecs_script_ast_to_str (ecs_script_t *script, bool colors)
| Convert script AST to string.
FLECS_API ecs_entity_t | ecs_script_init (ecs_world_t *world, const ecs_script_desc_t *desc)
| Load managed script.
FLECS_API int | ecs_script_update (ecs_world_t *world, ecs_entity_t script, ecs_entity_t instance, const char *code)
| Update script with new code.
FLECS_API void | ecs_script_clear (ecs_world_t *world, ecs_entity_t script, ecs_entity_t instance)
| Clear all entities associated with script.
FLECS_API ecs_script_vars_t * | ecs_script_vars_init (ecs_world_t *world)
| Create new variable scope.
FLECS_API void | ecs_script_vars_fini (ecs_script_vars_t *vars)
| Free variable scope.
FLECS_API ecs_script_vars_t * | ecs_script_vars_push (ecs_script_vars_t *parent)
| Push new variable scope.
FLECS_API ecs_script_vars_t * | ecs_script_vars_pop (ecs_script_vars_t *vars)
| Pop variable scope.
FLECS_API ecs_script_var_t * | ecs_script_vars_declare (ecs_script_vars_t *vars, const char *name)
| Declare a variable.
FLECS_API ecs_script_var_t * | ecs_script_vars_define_id (ecs_script_vars_t *vars, const char *name, ecs_entity_t type)
| Define a variable.
FLECS_API ecs_script_var_t * | ecs_script_vars_lookup (const ecs_script_vars_t *vars, const char *name)
| Lookup a variable.
FLECS_API ecs_script_var_t * | ecs_script_vars_from_sp (const ecs_script_vars_t *vars, int32_t sp)
| Lookup a variable by stack pointer.
FLECS_API void | ecs_script_vars_print (const ecs_script_vars_t *vars)
| Print variables.
FLECS_API void | ecs_script_vars_set_size (ecs_script_vars_t *vars, int32_t count)
| Preallocate space for variables.
FLECS_API void | ecs_script_vars_from_iter (const ecs_iter_t *it, ecs_script_vars_t *vars, int offset)
| Convert iterator to vars This operation converts an iterator to a variable array.
FLECS_API const char * | ecs_expr_run (ecs_world_t *world, const char *ptr, ecs_value_t *value, const ecs_expr_eval_desc_t *desc)
| Run expression.
FLECS_API ecs_script_t * | ecs_expr_parse (ecs_world_t *world, const char *expr, const ecs_expr_eval_desc_t *desc)
| Parse expression.
FLECS_API int | ecs_expr_eval (const ecs_script_t *script, ecs_value_t *value, const ecs_expr_eval_desc_t *desc)
| Evaluate expression.
FLECS_API char * | ecs_script_string_interpolate (ecs_world_t *world, const char *str, const ecs_script_vars_t *vars)
| Evaluate interpolated expressions in string.
FLECS_API ecs_entity_t | ecs_const_var_init (ecs_world_t *world, ecs_const_var_desc_t *desc)
| Create a const variable that can be accessed by scripts.
FLECS_API ecs_entity_t | ecs_function_init (ecs_world_t *world, const ecs_function_desc_t *desc)
| Create new function.
FLECS_API ecs_entity_t | ecs_method_init (ecs_world_t *world, const ecs_function_desc_t *desc)
| Create new method.
FLECS_API char * | ecs_ptr_to_expr (const ecs_world_t *world, ecs_entity_t type, const void *data)
| Serialize value into expression string.
FLECS_API int | ecs_ptr_to_expr_buf (const ecs_world_t *world, ecs_entity_t type, const void *data, ecs_strbuf_t *buf)
| Serialize value into expression buffer.
FLECS_API char * | ecs_ptr_to_str (const ecs_world_t *world, ecs_entity_t type, const void *data)
| Similar as ecs_ptr_to_expr(), but serializes values to string.
FLECS_API int | ecs_ptr_to_str_buf (const ecs_world_t *world, ecs_entity_t type, const void *data, ecs_strbuf_t *buf)
| Serialize value into string buffer.
FLECS_API void | FlecsScriptImport (ecs_world_t *world)
| Script module import function.

## Detailed Description

Flecs script module.

For script, see examples/script.

Definition in file script.h.