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_SCRIPT_H
 
#define FLECS_SCRIPT_FUNCTION_ARGS_MAX   (16)
 
#define ecs_script(world, ...)    ecs_script_init(world, &(ecs_script_desc_t) __VA_ARGS__)
 
#define ecs_script_vars_define(vars, name, type)    ecs_script_vars_define_id(vars, name, ecs_id(type))
 
#define ecs_const_var(world, ...)    ecs_const_var_init(world, &(ecs_const_var_desc_t)__VA_ARGS__)
 
#define ecs_function(world, ...)    ecs_function_init(world, &(ecs_function_desc_t)__VA_ARGS__)
 
#define ecs_method(world, ...)    ecs_method_init(world, &(ecs_function_desc_t)__VA_ARGS__)
 

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 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.