以下正式的语法规范可以用来帮助更深入的了解如何使用 DataQL 的所有特性。
DataQL 文档表示建议使用 Unicode字符序列。但这并不是强制的,您可以通过 java.io.Reader 来读取您的字符流数据。故本文不会强调您的编写查询语言所使用的字符集。
DataQL 支持单行注释和多行注释两种注释方式。与 JavaScript 一样,您可以使用://、/* ... */
的形式进行代码注释。被注释的代码会被语法解析器忽略。
空白字符用于提高源文本的可读性,并作为标记之间的分隔,任何数量的空白都可能出现在任何标记之前或之后。标记之间的空白对于 DataQL 文档的语义意义并不重要。
(空格)、\t、\n、\r、\f
关键字 | 含义 |
---|---|
if | 条件语句的引导词 |
else | 用在条件语句中,表明当条件不成立时的分支 |
return | 三大退出指令之一,终止当前过程的执行并正常退出到上一个执行过程中 |
throw | 三大退出指令之一,终止所有后续指令的执行并抛出异常 |
exit | 三大退出指令之一,终止所有后续指令的执行并正常退出 |
var | 执行一个查询动作,并把查询结果保存到临时变量中 |
run | 仅仅执行查询动作,不保留查询的结果 |
hint | 写在 DataQL 查询语句的最前面,用于设置一些执行选项参数 |
import | 将另外一个 DataQL 查询导入并作为一个 Udf 形式存在、或直接导入一个 Udf 到当前查询中 |
as | 与 import 关键字配合使用,用作将导入的 Udf 命名为一个本地变量名 |
true | 基础类型之一,表示 Boolean 的:真值 |
false | 基础类型之一,表示 Boolean 的:假值 |
null | 基础类型之一,表示 NULL 值 |
在编写 DataQL 中用来表示查询中的一些实体。例如:变量名、参数名
xxxx
的形式来标示标识符。分割符 | 含义 |
---|---|
() | 函数入参的圈定,表达式中的计算项提取权 |
{} | 用来定义复合语句 |
[] | 对数据通过下标方式取值操作 |
, | 不同参数的分割;对象键值对或数组元素之间的分割 |
: | 对象键值对,键和值之间的分割 |
; | 语句的结束,DataQL 会自动推断语句结束,因此语句结束分割符并不是必须的 |
运算符 | 含义 |
---|---|
+ | 加法 |
+ | 加法 |
+ | 加法 |
+ | 加法 |
+ | 加法 |
+ | 加法 |
+ | 加法 |
+ | 加法 |
+ | 加法 |
+ | 加法 |
+ | 加法 |
+ | 加法 |
+ | 加法 |
本次是DataQL之语法说明。
如有问题,欢迎有问题及时交流。谢谢!