mirror of
https://gitee.com/zlgopen/awtk.git
synced 2024-11-30 02:58:26 +08:00
7.2 KiB
7.2 KiB
fscript_t
概述
一个简易的函数式脚本引擎。 用法请参考:https://github.com/zlgopen/awtk/blob/master/docs/fscript.md
函数
函数名称 | 说明 |
---|---|
fscript_create | 创建引擎对象,并解析代码。 |
fscript_destroy | 销毁引擎对象。 |
fscript_eval | 执行一段脚本。 |
fscript_exec | 执行解析后的代码。 |
fscript_global_deinit | 全局释放。 |
fscript_global_init | 全局初始化。 |
fscript_register_func | 注册全局自定义函数。 |
fscript_set_error | 用于扩展函数设置遇到的错误。 |
fscript_syntax_check | 解析代码,分析是否有语法错误。 |
tk_expr_eval | 对fscript的简单包装。 |
属性
属性名称 | 类型 | 说明 |
---|---|---|
fast_vars | value_t* | 快速访问变量。在脚本可以用a/b/c/d来访问,需要优化时使用。 |
obj | object_t* | 脚本执行上下文。 |
str | str_t | C语言实现函数可以使用这个变量,可以有效避免内存分配。 |
fscript_create 函数
- 函数功能:
创建引擎对象,并解析代码。
- 函数原型:
fscript_t* fscript_create (object_t* obj, const char* script);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | fscript_t* | 返回fscript对象。 |
obj | object_t* | 脚本执行上下文。 |
script | const char* | 脚本代码。 |
fscript_destroy 函数
- 函数功能:
销毁引擎对象。
- 函数原型:
ret_t fscript_destroy (fscript_t* fscript);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
fscript | fscript_t* | 脚本引擎对象。 |
fscript_eval 函数
- 函数功能:
执行一段脚本。
- 函数原型:
ret_t fscript_eval (object_t* obj, const char* script, value_t* result);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
obj | object_t* | 脚本执行上下文。 |
script | const char* | 脚本代码。 |
result | value_t* | 执行结果(调用者需要用value_reset函数清除result)。 |
fscript_exec 函数
- 函数功能:
执行解析后的代码。
- 函数原型:
ret_t fscript_exec (fscript_t* fscript, value_t* result);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
fscript | fscript_t* | 脚本引擎对象。 |
result | value_t* | 执行结果(调用者需要用value_reset函数清除result)。 |
fscript_global_deinit 函数
- 函数功能:
全局释放。
- 函数原型:
ret_t fscript_global_deinit ();
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
fscript_global_init 函数
- 函数功能:
全局初始化。
- 函数原型:
ret_t fscript_global_init ();
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
fscript_register_func 函数
- 函数功能:
注册全局自定义函数。
- 函数原型:
ret_t fscript_register_func (const char* name, fscript_func_t* func);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
name | const char* | 函数名(无需加函数前缀)。 |
func | fscript_func_t* | 函数指针。 |
fscript_set_error 函数
- 函数功能:
用于扩展函数设置遇到的错误。
- 函数原型:
ret_t fscript_set_error (fscript_t* fscript, ret_t code, const char* func, const char* message);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
fscript | fscript_t* | 脚本引擎对象。 |
code | ret_t | 错误码。 |
func | const char* | 函数名。 |
message | const char* | 错误消息。 |
fscript_syntax_check 函数
- 函数功能:
解析代码,分析是否有语法错误。
示例:
fscript_parser_error_t error;
fscript_syntax_check(obj, "1+1", &error);
fscript_parser_error_deinit(&error);
- 函数原型:
ret_t fscript_syntax_check (object_t* obj, const char* script, fscript_parser_error_t* error);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
obj | object_t* | 脚本执行上下文。 |
script | const char* | 脚本代码。 |
error | fscript_parser_error_t* | 用于返回错误信息。 |
tk_expr_eval 函数
- 函数功能:
对fscript的简单包装。
- 函数原型:
double tk_expr_eval (const char* expr);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | double | 返回表达式的值。 |
expr | const char* | 表达式。 |
fast_vars 属性
快速访问变量。在脚本可以用a/b/c/d来访问,需要优化时使用。
- 类型:value_t*
特性 | 是否支持 |
---|---|
可直接读取 | 是 |
可直接修改 | 否 |
obj 属性
脚本执行上下文。
- 类型:object_t*
特性 | 是否支持 |
---|---|
可直接读取 | 是 |
可直接修改 | 否 |
str 属性
C语言实现函数可以使用这个变量,可以有效避免内存分配。
- 类型:str_t
特性 | 是否支持 |
---|---|
可直接读取 | 是 |
可直接修改 | 否 |