本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
Java匹配无限嵌套的括号
在Java中单纯依靠正则表达式是无法匹配无限嵌套的括号的,还好有antlr这个大杀器可以轻松解决这个问题,开源就是好啊。
1. 材料
antlr-4.4-complete.jar
2. 文法文件Json.g4
grammar Json;
@header{
package a3;
}
LEFT_BRACKET : '{';
RIGHT_BRACKET : ...
maven 中使用 eclipse compiler 代替 javac 做编译器
项目中用到 ANTLR 做语法解析,由于语法规则复杂,生成的 Parser 文件非常大(45k 行),用 javac 编译时直接出现 code too large (代码过长)错误无法正常处理。后来经过试验,发现 Eclipse Compiler 可以正常编译,因此考虑在 maven 中设置 Eclipse Compiler 为默认 java 编译器。在 pom.xml 中加入如下设置即可:
...
antlr表达式引擎
初次在项目中使用antlr,刚做了第一版,功能很简单(参不多正则都能做╮(╯▽╰)╭)
用antlr做表达式引擎,分析表达式变量和函数
举例:表达式为[a]+[b]>[c]*([d]+[e]) ,可以分析出[]中的变量
sum([a]+1000), 可以分析出变量,并得到函数名,进行运算,或是直接输出
这里有个ant ...
antlr笔记
antlr笔记
antlr的一点笔记,就一点点,还有ll和antlr的一些文档
LL(K)文法
LL文法是自上而下的分析法,从文法的开始符号出发,或是说从树根开始,向下构造语法书,知道建立每个树叶。也叫递归下降分析法。
非确定的自上而下:
ll本质上就是从特定的文法符号开始进行穷举,直到找到匹配的字符串(合法输入)或穷举结束(不合法输入 ...
weblogic加载hibernate3时,ClassNotFoundException的解决方法
WebLogic Server 版本: 10.3.5.0
hibernate 3
在Tomcat中可以正常运行的SSH项目,移植到weblogic1 10.3.5.0后
在做查询的时候,报出 org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken这 个错误(是通过数据源连接的) ...
ANTLR 权威参考 第一章 开始antlr
第一部分 介绍ANTLR和计算机语言翻译
第一章 开始antlr
本书是antlr的参考指南:一个复杂的解析程序生成器,你可以用这个解析程序实现语言的解释器,编译器或其他翻译器。这不是一本编译器的书,也不是语言理论的教科书。虽然你能找到很多关于编译器和编译原理基础的书,但很多语言类应用并不是编译器。这本书更适合构建普通,日常使用的语言类应用。本书附带大量例子,解释和参考资料,立足于一 ...
ANTLR 权威参考 前言部分
In August 1993, I finished school and drove my overloaded moving van to Minnesota to start working. My office mate was a curmudgeonly astrophysicist named Kevin, who has since become a good friend. Ke ...
ANTLR 权威参考 译者序
为什么翻译
在我工作的一个引擎中使用了开源工具ANTLR,开发了面向积分计算领域的语言-我们公司命名为CalScript语言,这种语言类似业务描述语言,属于特定应用领域的第四代语言。它支持变量定义、基本流程控制和输入输出,是业务人员描述积分条件和积分业务过程的好工具。因此我有机会了解和使用ANTLR这个强大工具,它主要用来编写面向领域语言的编译器,方便开发人员开发面向特定应用领域的语言,甚至可 ...
Hibernate源码 不存在org.hibernate.hql.antlr包
down下来Hibernate3的源码看看,发现org.hibernate.hql.antlr包下是空的,看了文档(
A special package for ANTLR-generated parser classes.
NOTE: The classes in this package are generated from the ANTLR grammar files, do not r ...
利用Antlr开发状态机
Antlr 不用多介绍了,只想说此乃神器也~~~
进入正题,首先是Antlr 定义的语法:
grammar StateMachine;
options {
output=AST;
ASTLabelType=CommonTree;
}
tokens {
RULE_ROOT;
STATE_DECLARATION;
CASE_CLAUSE;
CASE_DECLARATION;
}
@ ...
利用Antlr开发状态机
Antlr 不用多介绍了,只想说此乃神器也~~~
进入正题,首先是Antlr 定义的语法:
grammar StateMachine;
options {
output=AST;
ASTLabelType=CommonTree;
}
tokens {
RULE_ROOT;
STATE_DECLARATION;
CASE_CLAUSE;
CASE_DECLARATION;
}
@ ...
java.lang.NoSuchMethodError: antlr.collections.AST.getLine()解决方法
配置struts2+hibernate,错误java.lang.NoSuchMethodError: antlr.collections.AST.getLine()解决方法
由于是用myeclipse自己导的包,出现了包版本冲突问题,问题出在struts包里面有也有个antlr_XXX.jar,与hibernate包里面的冲突了,hibernate的版本高
SSH组合完成后,执行hibernate的 ...
Antlr V3 编写的四则运算
这两天在研究antlr这个框架,至于这个鸟东西如何解释,大家可以到他的官网上去看,2.7.5版本的还有中文版的帮助文档。好,我们直接说事,antlr的词法规则文件的保存内容是.g 结尾的文件。
四则运算的.g文件是:
grammar SiZe;
options{
backtrack=true;
}
@header {
package com.iteye.kaobian;
...