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 分钟前
Java-Spring入门指南(三十二)Android SQLite数据库实战
java·数据库·spring
刘一说4 分钟前
深入理解 Spring Boot 高级特性:条件化 Bean 注册机制
java·spring boot·后端
Han.miracle13 分钟前
JavaEE ——多线程的线程安全集合类
java·java-ee
ZT_KeBei13 分钟前
前端调试利器——pageSpy的使用简易指南
前端
少卿16 分钟前
PerformanceObserver 性能条目类型(Entry Types)
前端·javascript
宇余17 分钟前
ES2025新特性实战:5分钟get前端高频实用语法
前端·typescript
励扬程序17 分钟前
Cocos Creator 3.8 实现指定Node节点截图功能教程
前端·cocos creator
未来之窗软件服务18 分钟前
幽冥大陆(二十三)python语言智慧农业电子秤读取——东方仙盟炼气期
开发语言·python·仙盟创梦ide·东方仙盟·东方仙盟sdk·东方仙盟浏览器
不会c嘎嘎20 分钟前
C++ -- stack和queue
开发语言·c++·rpc
jenchoi41322 分钟前
【2025-11-15】软件供应链安全日报:最新漏洞预警与投毒预警情报汇总
前端·网络·安全·网络安全·npm·node.js