news 2026/6/9 22:19:40

通过‘语法配置’来‘解析JAVA代码’

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
通过‘语法配置’来‘解析JAVA代码’

开源软件 ZGLanguage 通过语法配置,便可以对JAVA代码进行解析,如下所示。

此语法配置实例囊括了常见的Java语法结构,用户可以在此基础上根据具体情况进行修改使用。

__DEF_CASE_SENSITIVE__ Y __DEF_FUZZY__ N __DEF_DEBUG__ Y __DEF_LINE_COMMENT__ // __DEF_LINES_COMMENT__ /* */ __DEF_STR__ __NAME__ <1,200> [1,1]ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_$?? [0,199]ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_?? [NO] import if else for while break continue class return try except finally final static public private __DEF_STR__ __ONE_CHAR__ <1,1> [1,1]ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`~!@#$%^&*()_-+=[]{}:";',.<>?/\ __DEF_STR__ __NUMBER__ <1,200> [1,100]0123456789 [1,1]. [1,100]0123456789 __DEF_STR__ __INT__ <1,200> [1,200]0123456789 __DEF_STR__ __0XO_INT__ <1,200> [1,1]0 [1,1]ox [1,200]0123456789ABCDEFabcdef __DEF_EXPR__ __EXPR__ __ELE__ class __ELE__ __VAR__ __ELE__ __NAME__ __ELE__ __INT__ __ELE__ __NUMBER__ __ELE__ __STRING__ __ELE__ __FUNCTION__ __ELE__ __ARR_VAL__ __ELE__ __CHAR__ __OPR__ = 0 __OPR__ += 0 __OPR__ -= 0 __OPR__ == 30 __OPR__ <> 30 __OPR__ != 30 __OPR__ > 30 __OPR__ >= 30 __OPR__ < 30 __OPR__ <= 30 __OPR__ != 30 __OPR__ + 40 __OPR__ - 40 __OPR__ * 50 __OPR__ / 50 __OPR__ % 50 __OPR__ . 80 __BEF__ - __BEF__ (int) __//__ __SPL__ \ __DEF_SUB_PATH__ __CHAR__ 1 : x1 @ | ' : x2 @ + '\ : x3 @ \ __ONE_CHAR__ : x4 @ + __\b__ : x5 @ + __\t__ : x6 @ \ ' __DEF_SUB_PATH__ __STRING__ 1 : x1 @ | " : x2 @ | __ANY__ : x3 @ + \" : x4 @ | " __DEF_PATH__ __IMPORT_PACKAGE__ 1 : x1 @ | import : xa @ + package : xb @ CAN_SKIP | static N : x2 @ | __NAME__ : x3 @ | . 1 : x4 @ | __NAME__ : x5 @ + * 1 : x6 @ | ; __DEF_SUB_PATH__ __GENERICS__ 1 : x1 @ | < N : x2 @ | __NAME__ e : x3 @ | , 1 : x4 @ | > __DEF_SUB_PATH__ __PARMS__ 11 : x1 @ | ( 0N : x2 @ | __EXPR__ : x3 @ + __LAMBDA__ 0e : x4 @ | , 11 : x5 @ | ) __DEF_SUB_PATH__ __ARR_VAL__ 11 : x1 @ | { 0N : xA @ CAN_SKIP | (short) __//__ tmp : x2 @ | __STRING__ : x3 @ + __NUMBER__ : x4 @ + __INT__ : x5 @ + __CHAR__ 0e : x6 @ | , 11 : x7 @ | } __DEF_SUB_PATH__ __DEF_VAR__ 0011 : x1 @ | public : x2 @ + private 0101 : x3 @ | final 1 1 : x4 @ | __NAME__ : x5 @ CAN_SKIP | __GENERICS__ : x6 @ + [] : x7 @ | __NAME__ __DEF_SUB_PATH__ __COM_EXPR__ 011 : x1 @ | __DEF_VAR__ 00 : x2 @ | = 101 : x3 @ | __EXPR__ +0+ : x4 @ | new 0 : x5 @ | __FUNCTION__ +0+ : x6 @ | __LAMBDA__ 111 : x7 @ | ; __DEF_SUB_PATH__ __ONE_ROW__ 1 : x1 @ | __COM_EXPR__ + : x2 @ | break : x3 @ + continue : x4 @ + return : x5 @ + raise : x6 @ | ; + : x7 @ | __IF__ : x8 @ + __WHILE__ : x9 @ + __FOR__ : xa @ + __TRY__ __DEF_SUB_PATH__ __ROWS__ 1 : x1 @ | { N : x2 @ CAN_SKIP | __ONE_ROW__ 1 : x3 @ | } __DEF_SUB_PATH__ __IF__ 1 : x1 @ | if : x2 @ | ( : x3 @ | __EXPR__ : x4 @ | ) : x5 @ | __ONE_ROW__ : x6 @ + __ROWS__ __DEF_SUB_PATH__ __WHILE__ 1 : x1 @ | while : x2 @ | ( : x3 @ | __COM_EXPR__ : x4 @ | ) : x5 @ | __ONE_ROW__ : x6 @ + __ROWS__ __DEF_SUB_PATH__ __FOR__ 1 : x1 @ | for : x2 @ | ( : x3 @ CAN_SKIP | __COM_EXPR__ : x4 @ | ; : x5 @ CAN_SKIP | __EXPR__ : x6 @ | ; : x7 @ CAN_SKIP | __EXPR__ : x8 @ | ) : x9 @ | __ONE_ROW__ : xa @ + __ROWS__ __DEF_SUB_PATH__ __COMMENT__ 11 : x1 @ | @ : x2 @ / __NAME__ 0 : x3 @ / ( 0 : x4 @ | __EXPR__ 0 : x5 @ | ) __DEF_SUB_PATH__ __LAMBDA__ 11 : x1 @ | ( 0N : x2 @ | __NAME__ 0 : x3 @ CAN_SKIP | __NAME__ 0e : x4 @ | , 11 : x5 @ | ) : x6 @ | -> : x7 @ | __EXPR__ __//__ __COM_EXPR__ : x8 @ + __ROWS__ __DEF_SUB_PATH__ __FUNCTION__ 1 : x1 @ | __NAME__ : x2 @ | __PARMS__ __DEF_SUB_PATH__ __FUNCTION_DEF__ 0011 : x1 @ | __COMMENT__ 010 : x2 @ | public : x3 @ + private 1 1 : x4 @ | __NAME__ : x5 @ | __NAME__ : x6 @ | ( NNNN : x7 @ CAN_SKIP | __NAME__ : x8 @ CAN_SKIP | __NAME__ eeee : x9 @ CAN_SKIP | , 1111 : xa @ | ) : xb @ | __ROWS__ __DEF_PATH__ __CLASS__ 0011 : x1 @ | __COMMENT__ 010 : x2 @ | public : x3 @ + private 111 : x4 @ | class : x5 @ | __NAME__ : x6 @ CAN_SKIP | extends : x7 @ CAN_SKIP | __NAME__ : x8 @ | { NNNN : x9 @ | __COM_EXPR__ : xa @ + __CLASS__ : xb @ + __FUNCTION_DEF__ 1111 : xz @ | }

ZGLanguage 的开源地址:

https://gitee.com/zgl-20053779/zglanguage

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 12:53:39

这个Bug为什么逃逸到线上?一次完整的缺陷根因分析(RCA)实录

缺陷逃逸的警示 2025年Q3某电商平台促销活动中&#xff0c;订单支付状态同步模块出现致命缺陷&#xff1a;用户支付成功后订单仍显示"待付款"&#xff0c;故障持续12小时影响3.7万笔交易。本报告通过完整复现RCA&#xff08;根本原因分析&#xff09;流程&#xff0…

作者头像 李华
网站建设 2026/6/10 12:51:17

遍历并输出Map集合中的key值

遍历并输出Map集合中的key值&#xff0c;这个可是不简单。 看起来确实稍微好一点&#xff0c;但是实际上自己敲出来&#xff0c;就错误百出了。。、 import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.ut…

作者头像 李华
网站建设 2026/6/2 15:02:40

《计算机与人脑》:神经脉冲的本质

在学习本章之前&#xff0c;我也有个念头。不同于计算机部分&#xff0c;那是冯诺依曼基于当时的计算机技术现状总结而来的&#xff0c;顶多只是有时代的局限性&#xff08;受限于技术本身&#xff09;&#xff0c;但有关人脑的部分&#xff0c;由于当时的医学、生物学等的探索…

作者头像 李华
网站建设 2026/6/10 15:22:29

还在手动点咖啡?Open-AutoGLM已实现全自动下单,效率提升300%

第一章&#xff1a;Open-AutoGLM 如何实现帮点咖啡在现代智能办公场景中&#xff0c;Open-AutoGLM 展现出强大的自然语言理解与任务自动化能力。通过结合语音识别、语义解析和业务系统对接&#xff0c;它能够完成诸如“帮我点一杯中杯拿铁”这类复杂指令的端到端执行。语音指令…

作者头像 李华
网站建设 2026/6/10 13:34:52

大模型自动化时代来临,Open-AutoGLM你必须了解的5个关键点

第一章&#xff1a;Open-AutoGLM是什么技术 Open-AutoGLM 是一种面向自然语言处理任务的自动化生成语言模型框架&#xff0c;旨在通过结构化流程优化大语言模型在特定场景下的推理与生成能力。该技术融合了提示工程、思维链&#xff08;Chain-of-Thought&#xff09;机制与动态…

作者头像 李华
网站建设 2026/6/10 13:37:37

Open-AutoGLM网址深度解析:5大隐藏功能90%开发者都不知道

第一章&#xff1a;Open-AutoGLM网址深度解析&#xff1a;揭开神秘面纱Open-AutoGLM 是一个面向自动化自然语言处理任务的开源平台&#xff0c;其核心目标是通过大语言模型实现端到端的任务理解与执行。该平台以 GLM 架构为基础&#xff0c;结合自动化提示工程与任务调度机制&a…

作者头像 李华