apache / seatunnel

SeaTunnel is a next-generation super high-performance, distributed, massive data integration tool.
https://seatunnel.apache.org/
Apache License 2.0
7.94k stars 1.79k forks source link

配置中支持复杂配置逻辑(如:if else 的逻辑,模版变量,预定义变量) #25

Closed garyelephant closed 7 years ago

garyelephant commented 7 years ago

conditional and expression in configurtion file:

example:

if [a.b.c != 3] {

} else {

}

references:

logstash configuration http://enear.github.io/2016/03/31/parser-combinators/ https://github.com/sirthias/parboiled2 http://www.lihaoyi.com/fastparse/ https://gist.github.com/nicerobot/4189552 https://dzone.com/articles/rolling-your-own-dsl-in-scala https://www.slideshare.net/abhijit.sharma/writing-dsls-in-scala https://www.slideshare.net/holograph/a-field-guide-to-dsl-design-in-scala http://jmespath.org/ http://www.antlr.org/

Search keyword: Grammars, workflows, DSL, expression, eval

garyelephant commented 7 years ago

目前已通过 antlr4在配置文件中支持了if else结构的配置和解析,但是体系代码中,还未加入if else的逻辑代码。