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