update docs

This commit is contained in:
lixianjing 2020-11-11 09:56:04 +08:00
parent 663acd421b
commit 992fb2c6f6

View File

@ -1,6 +1,6 @@
# fscript 脚本引擎 # fscript 脚本引擎
## 介绍 ## 1. 介绍
fscript 是一个极简的脚本引擎,借鉴了函数语言中一些思路,主要用于低端嵌入式系统,让用户轻松扩展现有系统,而不需要重新编译和下载固件。 fscript 是一个极简的脚本引擎,借鉴了函数语言中一些思路,主要用于低端嵌入式系统,让用户轻松扩展现有系统,而不需要重新编译和下载固件。
@ -13,7 +13,7 @@ fscript 是一个极简的脚本引擎,借鉴了函数语言中一些思路,
* 限制: * 限制:
* 不支持循环。 * 不支持循环。
## 示例 ## 2. 示例
```c ```c
print("hello fscript") print("hello fscript")
@ -25,11 +25,11 @@ print("hello fscript")
./bin/runFScript 'print("hello fscript")' ./bin/runFScript 'print("hello fscript")'
``` ```
## 语法 ## 3. 语法
### 数据类型 ### 数据类型
* 数值类型 (double) * 数值类型 (double)
* 字符串类型 (string)。UTF-8 字符串。 * 字符串类型 (string)。UTF-8 字符串。
* 布尔类型 (bool)。标准取值为true 和 false非 0 的数值视为 true。 * 布尔类型 (bool)。标准取值为true 和 false非 0 的数值视为 true。
@ -40,13 +40,14 @@ print(join(",", 1, 2, 3))
print(join(",", +(1, 2), -(5, 2), *(2, 3), /(9, 3))) print(join(",", +(1, 2), -(5, 2), *(2, 3), /(9, 3)))
``` ```
## 函数 ## 4.函数
### 基本函数 ### 4.1 基本函数
#### print #### print
> 打印调试信息到控制台。 > 打印调试信息到控制台。
----------------------------
##### 原型 ##### 原型
@ -63,6 +64,7 @@ print("hello fscript")
#### noop #### noop
> 空函数。什么也不做,主要给 if 函数用。 > 空函数。什么也不做,主要给 if 函数用。
----------------------------
##### 原型 ##### 原型
@ -73,6 +75,7 @@ noop()
#### if #### if
> 条件执行。如果第一个参数为 true执行第二个参数否则执行第三个参数。 > 条件执行。如果第一个参数为 true执行第二个参数否则执行第三个参数。
----------------------------
##### 原型 ##### 原型
@ -91,6 +94,8 @@ if(<(get(a), 0), print(" a < 0"), print("a >= 0"))
> 设置变量的值。 > 设置变量的值。
----------------------------
##### 原型 ##### 原型
``` ```
@ -107,6 +112,8 @@ set(a, 1)
> 获取变量的值。 > 获取变量的值。
----------------------------
##### 原型 ##### 原型
``` ```
@ -123,6 +130,8 @@ print(+(get(a, 0), 100))
> 清除变量。 > 清除变量。
----------------------------
##### 原型 ##### 原型
``` ```
@ -139,6 +148,8 @@ unset(a)
> 转换为整数类型。 > 转换为整数类型。
----------------------------
##### 原型 ##### 原型
``` ```
@ -154,6 +165,7 @@ int("123")
#### float #### float
> 转换为浮点数类型。 > 转换为浮点数类型。
----------------------------
##### 原型 ##### 原型
@ -170,6 +182,7 @@ float("123")
#### str #### str
> 转换为字符串类型。 > 转换为字符串类型。
----------------------------
##### 原型 ##### 原型
@ -186,6 +199,7 @@ str(int(123))
#### iformat #### iformat
> 对整数进行格式化(生成的字符串长度不超过 63) > 对整数进行格式化(生成的字符串长度不超过 63)
----------------------------
##### 原型 ##### 原型
@ -202,6 +216,7 @@ iformat("hello:%d", 123)
#### fformat #### fformat
> 对浮点数进行格式化(生成的字符串长度不超过 63) > 对浮点数进行格式化(生成的字符串长度不超过 63)
----------------------------
##### 原型 ##### 原型
@ -218,11 +233,12 @@ fformat("hello:%lf", 123)
#### exec #### exec
> 执行 object 里的一个命令。 > 执行 object 里的一个命令。
----------------------------
##### 原型 ##### 原型
``` ```
exec(f, value) exec(cmd, arg)
``` ```
#### 示例 #### 示例
@ -233,12 +249,14 @@ exec("clear", "all")
> 具体功能与 object 的实现有关。 > 具体功能与 object 的实现有关。
### 字符串函数 ### 4.2 字符串函数
#### join #### join
> 将多个变量用指定的分隔符拼接起来(最多 7 个字符串),形成一个字符串。 > 将多个变量用指定的分隔符拼接起来(最多 7 个字符串),形成一个字符串。
----------------------------
##### 原型 ##### 原型
``` ```
@ -255,6 +273,8 @@ join(",", 1, 2, 3, "abc")
> 取字符串的长度。 > 取字符串的长度。
----------------------------
##### 原型 ##### 原型
``` ```
@ -271,6 +291,8 @@ len("abc")
> 将字符串转换成大写。 > 将字符串转换成大写。
----------------------------
##### 原型 ##### 原型
``` ```
@ -287,6 +309,8 @@ tuppper("abc")
> 将字符串转换成小写。 > 将字符串转换成小写。
----------------------------
##### 原型 ##### 原型
``` ```
@ -302,6 +326,7 @@ tolower("ABC")
#### trim #### trim
> 将字符串转换成小写。 > 将字符串转换成小写。
----------------------------
##### 原型 ##### 原型
@ -318,6 +343,7 @@ trm(" abc ")
#### substr #### substr
> 取子字符串。 > 取子字符串。
----------------------------
##### 原型 ##### 原型
@ -334,6 +360,7 @@ substr("abcd", 1, 2)
#### replace #### replace
> 替换子字符串。 > 替换子字符串。
----------------------------
##### 原型 ##### 原型
@ -349,7 +376,8 @@ replace("ab cd", "ab", "hello")
#### contains #### contains
> contains子字符串。 > 检查是否包含指定的子字符串。
----------------------------
##### 原型 ##### 原型
@ -363,11 +391,12 @@ contains(str, substr)
contains("ab cd", "ab") contains("ab cd", "ab")
``` ```
### 运算函数 ### 4.3 运算函数
#### sum #### sum
> 对多个数值类型的参数求和。 > 对多个数值类型的参数求和。
----------------------------
##### 原型 ##### 原型
@ -397,6 +426,7 @@ print(sum(1, 2, 3))
#### sub #### sub
> 计算两个数之差。 > 计算两个数之差。
----------------------------
##### 原型 ##### 原型
@ -428,6 +458,7 @@ print(-(2, 1))
#### mul #### mul
> 计算两个数之积。 > 计算两个数之积。
----------------------------
##### 原型 ##### 原型
@ -459,6 +490,7 @@ print(*(2, 1))
#### div #### div
> 计算两个数之商。 > 计算两个数之商。
----------------------------
##### 原型 ##### 原型
@ -490,6 +522,7 @@ print(/(2, 1))
#### % #### %
> 计算两个数的模。 > 计算两个数的模。
----------------------------
##### 原型 ##### 原型
@ -518,6 +551,7 @@ print(%(23, 7))
#### and #### and
> 逻辑与运算。 > 逻辑与运算。
----------------------------
##### 原型 ##### 原型
@ -548,6 +582,7 @@ true
#### or #### or
> 逻辑或运算。 > 逻辑或运算。
----------------------------
##### 原型 ##### 原型
@ -578,6 +613,7 @@ true
#### not #### not
> 逻辑非运算。 > 逻辑非运算。
----------------------------
##### 原型 ##### 原型
@ -608,6 +644,7 @@ true
#### & #### &
> 位与运算。 > 位与运算。
----------------------------
##### 原型 ##### 原型
@ -636,6 +673,7 @@ print(&(1, 1))
#### | #### |
> 位或运算。 > 位或运算。
----------------------------
##### 原型 ##### 原型
@ -664,6 +702,7 @@ print(|(1, 2))
#### ~ #### ~
> 按位取反运算。 > 按位取反运算。
----------------------------
##### 原型 ##### 原型
@ -691,6 +730,7 @@ print(~(1))
### 比较函数 ### 比较函数
#### < #### <
----------------------------
> 小于。 > 小于。
@ -723,6 +763,7 @@ true
#### <= #### <=
> 小于等于。 > 小于等于。
----------------------------
##### 原型 ##### 原型
@ -753,6 +794,7 @@ true
#### > #### >
> 大于。 > 大于。
----------------------------
##### 原型 ##### 原型
@ -783,6 +825,7 @@ true
#### >= #### >=
> 大于等于。 > 大于等于。
----------------------------
##### 原型 ##### 原型
@ -813,6 +856,7 @@ false
#### == #### ==
> 等于。 > 等于。
----------------------------
##### 原型 ##### 原型
@ -840,11 +884,12 @@ print(==("a", "b"))
false false
``` ```
### 数学函数 ### 4.4 数学函数
#### random #### random
> 产生随机数。 > 产生随机数。
----------------------------
##### 原型 ##### 原型
@ -861,6 +906,7 @@ print(random())
#### sin #### sin
> sin 函数。 > sin 函数。
----------------------------
##### 原型 ##### 原型
@ -877,6 +923,7 @@ sin(0)
#### cos #### cos
> cos 函数。 > cos 函数。
----------------------------
##### 原型 ##### 原型
@ -893,6 +940,7 @@ cos(0)
#### tan #### tan
> tan 函数。 > tan 函数。
----------------------------
##### 原型 ##### 原型
@ -909,6 +957,7 @@ tan(1)
#### asin #### asin
> asin 函数。 > asin 函数。
----------------------------
##### 原型 ##### 原型
@ -925,6 +974,7 @@ asin(1)
#### acos #### acos
> acos 函数。 > acos 函数。
----------------------------
##### 原型 ##### 原型
@ -941,6 +991,7 @@ acos(1)
#### atan #### atan
> atan 函数。 > atan 函数。
----------------------------
##### 原型 ##### 原型
@ -957,6 +1008,7 @@ atan(1)
#### abs #### abs
> abs 函数。 > abs 函数。
----------------------------
##### 原型 ##### 原型
@ -973,6 +1025,7 @@ abs(1)
#### min #### min
> min 函数。 > min 函数。
----------------------------
##### 原型 ##### 原型
@ -983,6 +1036,7 @@ min(a, b)
#### max #### max
> max 函数。 > max 函数。
----------------------------
##### 原型 ##### 原型
@ -1005,6 +1059,7 @@ min(1, 2)
#### clamp #### clamp
> clamp 函数。 > clamp 函数。
----------------------------
##### 原型 ##### 原型
@ -1018,11 +1073,12 @@ clamp(a, min, max)
clamp(2, 1, 3) clamp(2, 1, 3)
``` ```
### 时间函数 ### 4.5 时间函数
#### time_now #### time_now
> 获取当前时间函数 (s)。 > 获取当前时间函数 (s)。
----------------------------
##### 原型 ##### 原型
@ -1039,6 +1095,7 @@ time_now()
#### time_now_ms #### time_now_ms
> 获取当前时间函数 (ms)。 > 获取当前时间函数 (ms)。
----------------------------
##### 原型 ##### 原型
@ -1055,6 +1112,7 @@ time_now_ms()
#### time_now_us #### time_now_us
> 获取当前时间函数 (us)。 > 获取当前时间函数 (us)。
----------------------------
##### 原型 ##### 原型