TICKscript 语法
介绍
TICKscript语言是一种用于定义数据处理管道的调用链语言。


符号
使用Extended Backus-Naur Form(“EBNF”)指定语法。EBNF与Go编程语言规范中使用的符号相同,可在此处找到。
Production = production_name "=" [ Expression ] "." . |
符号运算符按优先顺序排列:
| alternation |
语法
以下是TICKscript的EBNF语法定义。
unicode_char = (* an arbitrary Unicode code point except newline *) . |
注释:通过//实现
关键字
| Word | Usage |
|---|---|
| TRUE | The literal Boolean value “true”. |
| FALSE | The literal Boolean value “false”. |
| AND | 与 |
| OR | 或 |
| lambda: | lambda表达式 |
| var | 变量声明 |
| dbrp | 数据库声明 |
运算符
| Operator | Usage | Examples |
|---|---|---|
| + | 加法和字符串连接 | 3 + 6, total + count and 'foo' + 'bar' |
| - | 减法 | 10 - 1, total - errs |
| * | 乘法 | 3 * 6, ratio * 100.0 |
| / | 除法 | 36 / 4, errs / total |
| == | 等值判断 | 1 == 1, date == today |
| != | 不等于判断 | result != 0, id != "testbed" |
| < | 小于判断 | 4 < 5, timestamp < today |
| <= | 小于等于判断 | 3 <= 6, flow <= mean |
| > | 大于判断 | 6 > 3.0, delta > sigma |
| >= | 大于等于判断 | 9.0 >= 8.1, quantity >= threshold |
| =~ | 正则匹配判断 | tag =~ /^cz\d+/ |
| !~ | 正则不匹配判断 | tag !~ /^sn\d+/ |
| ! | 逻辑否定 | !TRUE, !(cpu_idle > 70) |
| AND | 逻辑与 | rate < 20.0 AND rate >= 10 |
| OR | 逻辑或 | status > warn OR delta > sigma |
链接运算符
| 操作符 | 用法 | 例子 |
| ———- | ———————————————————————————- | ————————– | ——– |
| | | 声明一个链接方法调用,它创建一个新节点的实例并将其链接到它上面的节点。 | stream | from() |
| . | 声明属性方法调用,设置或更改它所属的节点中的内部属性。 | from() .database(mydb) |
| @ | 声明用户定义的函数(UDF)调用。本质上是一种链接方法,它将新的UDF节点添加到管道中。 | from() ... @MyFunc() |