awtk/docs/manual/fscript_t.md
2021-05-11 15:53:22 +08:00

7.2 KiB
Raw Blame History

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
特性 是否支持
可直接读取
可直接修改