当前位置: 首页 > 工具软件 > DataQL > 使用案例 >

DataQL之语法-词法记号

仲柏
2023-12-01

词法记号

以下正式的语法规范可以用来帮助更深入的了解如何使用 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 中用来表示查询中的一些实体。例如:变量名、参数名

  • 标识符必须满足正则表达式:[_a-zA-Z][_0-9a-zA-Z]*
  • 在一些接口中数据对象的 Key 可能会超出标识符标示的范围,这时候可以使用 反引号 xxxx 的形式来标示标识符。

分割符

分割符含义
()函数入参的圈定,表达式中的计算项提取权
{}用来定义复合语句
[]对数据通过下标方式取值操作
,不同参数的分割;对象键值对或数组元素之间的分割
:对象键值对,键和值之间的分割
语句的结束,DataQL 会自动推断语句结束,因此语句结束分割符并不是必须的

运算符

运算符含义
+加法
+加法
+加法
+加法
+加法
+加法
+加法
+加法
+加法
+加法
+加法
+加法
+加法

总结

本次是DataQL之语法说明。
如有问题,欢迎有问题及时交流。谢谢!

 类似资料: