antlr 笔记
文章平均质量分 82
jackyhungvip
这个作者很懒,什么都没留下…
展开
-
ANTLR笔记2 - 简单语法说明
ANTLR的语法文件使用扩展巴科斯范式EBNF描述,记得编译原理的用起来非常简单,需要进一步了解的是怎么构造自己的recognizer和translator。很多的语法不需要从头写,一方面很多语言标准中基本都使用EBNF描述,另一方面ANTLR网站http://www.antlr.org/grammar/list上有大量写好的语法文件,可以参考使用。我已经忘得一干二净,从头大致了解一下。巴科斯范...原创 2014-03-04 10:13:26 · 402 阅读 · 0 评论 -
ANTLR笔记1 - 让示例跑起来
安装配置:1. JDK环境 http://java.sun.com/ JDK bin路径设置。如果只是生成C#程序,装JRE就可以,生成Java程序,编译测试才需要JDK。网上Java的示例多一些,所以不妨装个Eclipse。2. 安装ANTLR v3 http://www.antlr.org/download.html 我没有用ANTLRWorks,下载的ANTLR 3.0.1 sou...原创 2014-03-04 10:13:40 · 132 阅读 · 0 评论 -
ANTLR笔记3 - ANTLRWorks
安装配置需要JRE或者JDK下载ANTLRWorks: http://www.antlr.org/works/index.html查看DFA需要使用Graphviz,下载安装: http://www.graphviz.org/运行antlrworks-1.1.7.jar,在菜单File -> Preferences中设置DOT path为Graphviz安装路径"bin"dot.exe。这...原创 2014-03-04 10:13:56 · 306 阅读 · 0 评论 -
ANTLR笔记4 - AST构造,tree grammar,tree walker
目前为止使用的例子中,都是直接在语法文件中嵌入求值处理代码,这种方式ANTLR称为嵌入式动作(embeded action)。复杂情况下,需要基于语法树遍历(walking the tree)生成目标代码。embeded action将处理代码跟语法描述混合起来,语法复杂时使语法文件臃肿。另外语法可能经常需要修改,但语法的主要表达式不会变动,将语法识别与转换、生成(目标代码)等处理分离是有好处的...原创 2014-03-04 10:14:08 · 1427 阅读 · 0 评论 -
ANTLR笔记5 - 备忘
1. 对语法框架结构的整体构思 一方面为了避免过多因素的干扰,另一方面考虑迭代完善过程,在对语法的整体构思时不要考虑语法树的结构,以及如何构造语法树的问题。2. 采用自底向上的方法 因为这样可以结合ANTLRWorks一步步测试,在Interpreter窗口选择要测试的规则就可以进行。 例如下面图中的NoViableAltException表示这个表达式无法解析 自底向上时...原创 2014-03-04 10:14:22 · 71 阅读 · 0 评论 -
OQL中的Name Resolver, Mapping Resolver
OQL中的两个概念对象case 1: 把属性替换为列名,对象替换为表名<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /...原创 2014-03-10 11:06:57 · 82 阅读 · 0 评论 -
ANTLR实现的SQL解析器 - OQL
OQL使用ANTLR写了个SQL解析器,这样ORM的基本功能就比较完整了。几天的时间比较仓促,所以对于最终目标,还只能算是个雏形。总体状况使用SQL解析器的主要优点:1. 基于解析之后的语法树提供用户操作接口,灵活性非常好,因为达到了对SQL每一部分的完整控制。2. 对数据库的适应性。 首先可以采用标准SQL,以及部分封装好的特性(例如分页)、函数(例如主要数据库都支持的函数,但语法有一定差...原创 2014-03-10 11:07:10 · 1999 阅读 · 0 评论