项目作者: bowin

项目描述 :
antlr 解析示例
高级语言: ANTLR
项目地址: git://github.com/bowin/antlr-demo.git
创建时间: 2020-04-26T09:06:10Z
项目社区:https://github.com/bowin/antlr-demo

开源协议:

下载


antlr-demo

antlr parser 解析 airflow 任务信息

  1. grammar DagParser;
  2. WS : [ \t\r]+ -> skip;
  3. ID : [a-zA-Z_][a-zA-Z_0-9-]*;
  4. NL : '\n';
  5. OPVALUE1 : '\'' ID '\'' ;
  6. OPVALUE2 : '"' ID '"' ;
  7. DAGV : [@a-zA-Z_][a-zA-Z0-9_]*;
  8. attr_v : (OPVALUE1 | OPVALUE2 | DAGV | '\'' DAGV '\'' );
  9. domain : 'Operator';
  10. arr : '[' attr_v (',' attr_v)* ']';
  11. attr_pair : ID '=' (attr_v | arr);
  12. kv_multi : attr_pair (',' NL? attr_pair)*;
  13. dag : ID '=' 'DAG' NL? '(' NL? attr_v (',' kv_multi)* NL? ')' ;
  14. task : ID '=' domain NL? '(' NL? kv_multi NL? ')';
  15. item: (dag | task);
  16. input
  17. :
  18. input NL* item #mulit
  19. | NL* item NL* #line
  20. ;