本站首页    管理页面    写新日志    退出


«January 2026»
123
45678910
11121314151617
18192021222324
25262728293031


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7700891
建立时间:2006年5月29日




[Java Open Source]理解 ANTLR 语法文件
软件技术,  电脑与网络

lhwork 发表于 2006/6/30 16:08:43

理解 ANTLR 语法文件 译者:Nicholas @ NirvanaStudio 原文出处:http://www.placidsystems.com/articles/article-grammarlayout/grammarLayout.htm 你是否被Antlr语法文件的不同部分搞的晕头转向呢,你是否很想知道这些部分的含义呢?我们在这里将从另一个方面来了解它们,这里我们使用Antlr Studio来演示。 不管你信不信,Antlr语法文件在某种程度上和Java源代码很类似。什么,你看不出任何与Java代码相似的地方?好,就让我给你展示...... 语法(Grammar) 500)this.width=500'> 500)this.width=500'> 有放在header部分的内容将会出现在Antlr生成的Java代码的头部。站在Java文件的层次上思考,你通常在这个部分里面放置包定义。你还可以把一部分import的内容放在这里。 500)this.width=500'>这个部分的代码对于文件中的每个语法来说是唯一的。这个部分会被放在类声明之前。以上的例子将只对CalcParser引入ArrayList和MyClass这两个类。 500)this.width=500'>然后我们开始定义语法,这看起来像是在声明一个类。 500)this.width=500'>在这个options部分,你可以制定语法生成的一些参数。在Antlr Studio中你可以使用Ctrl+Space看看哪些选项可用。 500)this.width=500'>Token部分用来制定“假想的”记号,那些通常没有声明在lexer中。这些是在TreeParsers中使用的“假想的”记号。 500)this.width=500'>另一个行为部分。这个部分的内容被放在类内部。你可以为你的解析器定义一些自定义方法。 规则(RULES) 500)this.width=500'> Antlr语法文件中的规则定义对应生成的Java代码中的一个方法定义。 500)this.width=500'>500)this.width=500'>500)this.width=500'>500)this.width=500'>正如你所看到的,这里我们可以在规则中做任何事,这些可以通过一个函数完成。我们可以为规则指定参数,上面的例子显示了这一点,甚至可以指定返回值和异常。 500)this.width=500'>这个options部分允许你指定一些可选参数。 500)this.width=500'>我们可以指定自定义异常处理机。 Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.


阅读全文(3099) | 回复(-1) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 1.855 second(s), page refreshed 144808677 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号