Flecs v4.0
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
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_tecs_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_tecs_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_tecs_script_vars_push (ecs_script_vars_t *parent)
 Push new variable scope.
FLECS_API ecs_script_vars_tecs_script_vars_pop (ecs_script_vars_t *vars)
 Pop variable scope.
FLECS_API ecs_script_var_tecs_script_vars_declare (ecs_script_vars_t *vars, const char *name)
 Declare a variable.
FLECS_API ecs_script_var_tecs_script_vars_define_id (ecs_script_vars_t *vars, const char *name, ecs_entity_t type)
 Define a variable.
FLECS_API ecs_script_var_tecs_script_vars_lookup (const ecs_script_vars_t *vars, const char *name)
 Lookup a variable.
FLECS_API ecs_script_var_tecs_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_tecs_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.