随笔分类 -  ANTRL

摘要:在antlr解析AST时我们通常都会把字符串之间的空格,回车,换行等隐藏如下:WS : ( '\t' | ' ' | '\r' | '\n' )+ { $channel = HIDDEN; } ;但是,如果我们希望保留解析出来的字符串怎么办呢。就如我们想解析出来一个程序段foo(){ a+b = c;}昨天在杨老师的指导下,我成功解析了含有空格的字符串。具体方法如下: 1 grammar lexParse; 2 3 options { 4 output = AST; 5 ASTLabelType=CommonTree; 6 lan 阅读全文
posted @ 2013-04-25 16:54 郑蕊 阅读(1065) 评论(0) 推荐(0) 编辑
摘要:从www.jetbrains.com下载了IntelliJ 并成功安装,但还没有使用。因为http://www.antlr.org/works/index.html上的source的网址都连不上服务器,也不知道是什么原因。所以插件安装啥的也没法进行。在网上找到一个中文的Antlr的手册,明天研究一下。今天好像没什么成果。。。。下周一如何交差? 阅读全文
posted @ 2012-11-29 23:03 郑蕊 阅读(277) 评论(0) 推荐(0) 编辑
摘要:翻译Antlr的内容来学习Antlr,还会让我不会睡觉,不觉得困。以一个简单的计算器开始,当作学习Antlr的一个例子。任何一个语言处理程序都有至少两部分:1、一个词法解释器:获得字符串流,将这个流按预先设定要的规则分割成一个个的token2、一个语法分析器:读token,根据规则翻译他们。让我们为一个简单的算数表达式定义一个规则:grammar SimpleCalc;add : NUMBER PLUS NUMBER;NUMBER : ('0'..'9')+ ;PLUS : '+';这个例子包含两部分规则:NUMBER and PLUS ,和一个 阅读全文
posted @ 2012-11-28 23:59 郑蕊 阅读(2155) 评论(0) 推荐(0) 编辑
摘要:由于我有一点java基础,所以就没下Antlr编辑器,自己在命令行编译的程序。先按getting start 中说的,将jdk, antlr环境变量设置好。然后在文件夹下建一个记事本文件,写入以下代码 1 grammar Expr; 2 3 @header { 4 import java.util.HashMap; 5 } 6 7 @members { 8 /** Map variable name to Integer object holding value */ 9 HashMap memory = new HashMap();10 }11 12 prog: stat+ ;13 ... 阅读全文
posted @ 2012-11-27 19:24 郑蕊 阅读(330) 评论(0) 推荐(0) 编辑
摘要:今天上午我刚跟牛哥念唠完,我现在没什么活,真希望杨哥能给我分点活让我干。下午杨哥就来了软件所,我跟他说,我求活干。他让我学习Antlr,和DSL,并且每周一汇报进展。杨哥走后,我就开始上网找Antlr的相关内容。在Google中发现了Antlr的首页http://www.antlr.org/,都是英文,好痛苦啊。曾经在牛哥电脑上看到一个不错的chrome浏览器的英文翻译插件,正好此时问牛哥要来,果断安好,开始了我的英文和Antlr的学习。学习一个语言,一个软件(也不知道Antlr应该算哪个),首先要把该语言的环境搭建好,我根据首页上的Getting started with ANTLR v3果 阅读全文
posted @ 2012-11-26 23:15 郑蕊 阅读(352) 评论(0) 推荐(0) 编辑