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];
相关推荐
xujinwei_gingko5 分钟前
JAVA基础面试题汇总(持续更新)
java·开发语言
liuyang-neu7 分钟前
力扣 简单 110.平衡二叉树
java·算法·leetcode·深度优先
sp_wxf14 分钟前
Lambda表达式
开发语言·python
一丝晨光18 分钟前
Java、PHP、ASP、JSP、Kotlin、.NET、Go
java·kotlin·go·php·.net·jsp·asp
罗曼蒂克在消亡21 分钟前
2.3MyBatis——插件机制
java·mybatis·源码学习
Fairy_sevenseven26 分钟前
【二十八】【QT开发应用】模拟WPS Tab
开发语言·qt·wps
_GR33 分钟前
每日OJ题_牛客_牛牛冲钻五_模拟_C++_Java
java·数据结构·c++·算法·动态规划
蜡笔小新星34 分钟前
Python Kivy库学习路线
开发语言·网络·经验分享·python·学习
凯子坚持 c34 分钟前
C语言复习概要(三)
c语言·开发语言
zqx_736 分钟前
随记 前端框架React的初步认识
前端·react.js·前端框架