社区
Java
帖子详情
是选择ANTLR,还是Javacc?
HaoTC
2008-10-25 01:54:27
刚刚接触解释器,请高手多多指点。
希望基于一个开源的项目,设计一套自定义的语法,根据语法分析的结果,动态的组合各种功能,执行后获得最终的结果。说白了,是希望将变化的部分,通过修改特定的配置文件的方法来代替对代码执行逻辑的修改。个人认为通过自定义的解释器的方法有可能实现上述目标,但没有ANTLR,或Javacc的任何经验,如何作出取舍,请大家赐教,谢谢!
...全文
1352
7
打赏
收藏
是选择ANTLR,还是Javacc?
刚刚接触解释器,请高手多多指点。 希望基于一个开源的项目,设计一套自定义的语法,根据语法分析的结果,动态的组合各种功能,执行后获得最终的结果。说白了,是希望将变化的部分,通过修改特定的配置文件的方法来代替对代码执行逻辑的修改。个人认为通过自定义的解释器的方法有可能实现上述目标,但没有ANTLR,或Javacc的任何经验,如何作出取舍,请大家赐教,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
HaoTC
2008-10-28
打赏
举报
回复
非常感谢cm4ever的回复,我想我已经找到了答案。
禽兽v5
2008-10-28
打赏
举报
回复
Hibernate 3用的也是用ANTLR生成hql的解析器,你认为呢...
禽兽v5
2008-10-27
打赏
举报
回复
ANTLR只进行到AST树这部分,并不是完整的编译器,但是生成的代码结构优良,较符合oo思维。
javacc貌似已经停止改进,但是能完成整个编译器的功能,不过对此软件的应用不熟。
HaoTC
2008-10-27
打赏
举报
回复
to cm4ever:
谢谢您的回复。
我目前的需求,只需要用到解释器的部分,而且应用的环境为Java。在运行阶段的用法,基本上是传入一个自定义表达式以及相关的上下文信息,通过AnTLR生成的解析器解释后,获得自定义表达式的计算结果,这个表达式会涉及逻辑、关系运算符,字符串、数字、日期、列表等数据类型,而且在运行阶段,该解释器的并发访问会比较大,请问在这种运行环境下,通过AnTLR生成的解析器的执行效率如何?会成为瓶颈吗?
HaoTC
2008-10-27
打赏
举报
回复
up
HaoTC
2008-10-25
打赏
举报
回复
请大家多帮忙,谢谢!
lihan6415151528
2008-10-25
打赏
举报
回复
楼主够强,学习
编译器的编译器
antlr
的教程
教程定位为帮助零基础的初学者入门到掌握编译前端,为熟悉
antlr
的人,提供一些问题备忘录,以及共享一些对
antlr
本身设计的看法。希望能对您有所帮助。产品的开发需要,对词法语法解析工具选型,选了几个工具,
javac
c ,
antlr
,jflex+CUP,最终还是
选择
了
antlr
。
OGNL教程,简单,看完懂OGNL语言
OGNL 最初是为了能够使用对象的属性名来建立 UI 组件 (component) 和 控制器 (controllers) 之间的联系,简单来说就是:视图 与 控制器 之间数据的联系。后来为了应付更加复杂的数据关系,Drew Davidson 发明了一个被他称为 KVCL(Key-Value Coding Language) 的语言。 Luke 参与进来后,用
ANTLR
来实现了该语言,并给它取了这个新名字,他后来又使用
JavaC
C 重新实现了该语言。目前 OGNL 由 Drew 来负责维护。目前很多项目中都用到了 OGNL,其中不乏为大家所熟知的,例如几个流行的 web 应用框架:WebWork【当然struts2也可以说是WebWork升级版】,Tapestry 等。
编译原理的核心技术
深入详细的讲解编译原理的核心技术。通过丰富的案例,手把手的帮助同学们理解编译原理中的每一个知识点与核心技术1、快速掌握
Antlr
的使用2、快速掌握LLVM常见命令的使用3、掌握LLVM源码的编译与安装4、掌握LLVM中pass的开发
nginx-java-parser:基于
ANTLR
4语法的Nginx配置解析器
Nginx配置Java解析器 该库有助于分析Nginx Web服务器配置文件,查找指定的参数,块,正则表达式或注释。 然后可以修改AST并将其转换回纯文件。 特征 使用
ANTLR
4解析功能将配置文件转换为AST树
JavaC
C同样可用(不建议使用) 重建配置文件并将其转储回* .conf 嵌套块支持 如果语句支持 位置/重写/如果语句支持内未引用的正则表达式 评论支持 安装 将以下依赖项添加到您的POM: < dependency> < groupId>com.github.odiszapc groupId> < artifactId>nginxparser artifactId> < version>0.9.3 version> dependency> 例子 解析器 如何执行以下Nginx配置的基本解析: NgxConf
grampa:语法分析器
Grampa:Kotlin的语法解析器库 格兰帕-短为GRA MMAR PA RSER -是一个库,允许你在Kotlin源代码完全定义语法而没有任何预处理阶段(不像其它解析器生成像
ANTLR
和
JavaC
C的)。 因此,无需学习DSL,整个语法定义就在一个地方(Kotlin类),并且可以很容易地更改和维护。 该库受和启发,但是重点放在简单干净的代码上,而没有很多疯狂和复杂的字节码操作。 如何添加到您的构建 使用Gradle(Groovy DSL)添加依赖项: repositories { jcenter() } dependencies { implementation ' com.mpe85:grampa:0.9.2 ' } 使用Gradle(Kotlin DSL)添加依赖项: repositories { jcenter() } dependencies
Java
50,528
社区成员
85,608
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章