JAVA动态表达式:Antlr4 G4模板

能解析@xxx ,@xx.xx 这种表达式

复制代码
grammar Expr;

expression :
             '(' expression ')'          # parens
            | expression 'and' expression # andOp
            | expression 'or' expression  # orOp
            | AT_VARNAME comparison_op NUMBER # comparison
            | AT_VARNAME comparison_op STRING # comparison
            | AT_VARNAME comparison_op VARNAME # comparison
            | AT_VARNAME contains_op VARNAME # comparison
            | AT_VARNAME contains_op NUMBER # comparison
            | AT_VARNAME contains_op STRING # comparison
            | AT_VARNAME comparison_op AT_VARNAME # comparison
            | VARNAME comparison_op NUMBER # comparison
            | VARNAME comparison_op STRING # comparison
            | NUMBER comparison_op NUMBER # comparison
            | STRING comparison_op STRING # comparison
            | VARNAME comparison_op VARNAME # comparison
            | VARNAME contains_op VARNAME # comparison
            | VARNAME contains_op NUMBER # comparison
            | VARNAME contains_op STRING # comparison
            | STRING contains_op STRING # comparison
            ;

comparison_op : '<' | '<=' | '>' | '>=' | '==' | '!=';
contains_op: 'contains' | 'notcontains';

AT_VARNAME : '@' [a-zA-Z_0-9.]* VARNAME;
STRING : '\'' ( '\\' . | '\\\'' | ~[\\'] )* '\'';
NUMBER : '-'? [0-9]+ ('.' [0-9]+)?;
VARNAME : [a-zA-Z_][a-zA-Z_0-9]*;
WS : [ \t\r\n]+ -> skip; // 忽略空白字符
fragment Letter: [a-zA-Z];
fragment Digit: [0-9];
fragment ChineseCharacter: [\u4e00-\u9fa5];
相关推荐
小米渣的逆袭4 分钟前
Chrome Extension Script World(ISOLATED / MAIN)原理与适用场景
前端·javascript·chrome
万亿少女的梦1689 分钟前
基于Spring Boot的楚雄旅游景区门票售卖系统设计与实现
java·spring boot·mysql·vue·系统设计
不会写代码的ys9 分钟前
C++复习篇
java·开发语言·c++
雨师@14 分钟前
go语言项目--实例化(图书管理)--005
开发语言·后端·golang
微信开发api-视频号协议19 分钟前
Codex++安全边界探秘:从模型能力到风险防御
前端·安全·微信·企业微信
Aspiresky25 分钟前
探索Rust语言之引用
开发语言·后端·rust
天空'之城29 分钟前
Linux 系统编程 10:线程同步
linux·开发语言·系统编程·线程同步
Vect__31 分钟前
Go 数据结构 slice 深度剖析
开发语言·数据结构·golang
想你依然心痛33 分钟前
AtomCode在Python数据科学项目中的使用体验:从数据分析到可视化
开发语言·python·数据分析
我是个假程序员34 分钟前
实例化动作脚本类,并执行,执行类似N_F1_SAVE.java这种
java·nc