编译原理
文章平均质量分 76
leafinwind
这个作者很懒,什么都没留下…
展开
-
ANTLR(语言识别的另一工具)的简介之四[翻译]
通过抽象语法树(AST)求值现在你已经看到了基本的语法指导的翻译/计算,在此文法/语法指示了什么时候去执行动作。一个更为强大的策略是创建一个中介表达,它拥有所有或绝大部分的输入符号,并在数据的结构中,将这些记号之间的关系编码。比如:输入“3+4”会被表达成如下所示的AST: + / /3 4对这种类型的树,你会使用一个树遍历程序(由ANTLR从树形语法生成)计算出和前面一翻译 2004-02-11 14:08:00 · 1189 阅读 · 0 评论 -
ANTLR(语言识别的另一工具)的简介之一[翻译]
ANTLR简介 特伦斯·帕尔 简介 在20世纪80年代,我手工创建许多许多的语言识别程序和翻译程序,最后这变得十分厌烦,以至于开始尝试使这个过程自动化; 由此产生了我的格言: "你能够用生命中五年的时间使之自动化的事情,为什么要在五天之内手工编程完成。" 手工构建如此之多的工程的好处就是你能明白它们的共性,并希望那些工作可以合理的被形式化和自动化。然而我并不能很好的理解yac翻译 2004-02-11 14:08:00 · 1745 阅读 · 1 评论 -
ANTLR(语言识别的另一工具)的简介之三[翻译]
表达式求值实际中需要当记号进来时直接对表达式求值,这可以在parser中添加行为:class ExprParser extends Parser; expr returns [int value=0]{int x;} : value=mexpr ( PLUS x=mexpr {value += x;} | MINUS x=翻译 2004-02-11 14:08:00 · 1349 阅读 · 0 评论 -
ANTLR(语言识别的另一工具)的简介之二[翻译]
亲和的ANTLR语法的介绍 通过例子来逐渐学习ANTLR是最好的。 一个简单计算器常被用来入门,原因很简单:它简单易懂。这有许多给ANTLR的相似例子和教程,但是我会使用我自己的语言来描述一个计算器。首先我们会创建一些可以直接对简单表达式求值的程序。然后,我会生成树结构,并计算这些树来得到同样的答案。 当你知道最终你需要将一个字符输入流分解成多个记号时,则好的开始就是去思考一个表达式的文翻译 2004-02-11 14:08:00 · 1867 阅读 · 0 评论