没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
一、 的主要类:
中有主要类有两种(其实还有一种 )
: 文法分析器类。主要用于把读入的字节流根据规则分段。既把长
面条根据你要的尺寸切成一段一段:)并不对其作任何修改。
: 解析器类。主要用于处理经过 处理后的各段。一些具体
的操作都在这里。
二、 文法文件形式:
文件是 形式,即以 为后缀名。
例如:
;
: :
( !, "());#
;
;
$$%%&'('
: ( ))**)+),))**)-))"./
;
./
: )0))0)11$$23
,11)0)1111111$$4/5
;
具体成分分析:
6、总体结构
7
7
两行同 89继承一样, 继承 类; 继承 类。每个
文件只能各有一个。
:、 类分析
一般按照
类型名:匹配的具体规则;
的形式构成。是分隔字节流的依据。同时可以看到里面可以互相引用。如
本例中的类型名 ./出现在 .的匹配规则中。
;、 类分析
一般按照
起始规则名:
规则实例名:类型名或规则名
8<语句……; #
;
……
的形式构成。
起始规则名:任意。
规则实例名:就象 8<中“ ;”的 一样。规则实例名用于在之
后的 89语句中调用。
类型名或规则名:可以是在 中定义的类型名,也可以是 中
定义的规则名。感觉就像是 与 /的区别。
8<语句:指当满足当前规则时所执行的语句。 会自动嵌入生成的
=<类中。
三、生成 8<类
6、从 '''上下载 %=
:、配置环境变量: !>;:0=?0(0=;:0%
=
;、在 所在目录下执行:
=<
会在当前目录下生成如下文件:
=<: 文法分析器 =<类。
=<: 解析器 =<类。
?=<: 中定义的类型具体化,供 解析器调
用。
?:当外部的(如 :)要调用当前的类型或规则时要
用到本文件。
四、执行
6、编写 类
=<;
(<(@A)
>'('2/());
>'();
();
#!()
(: ");
#
:、执行
:0B=<=<
:0B=<
C-
!,
:0B
1
入门教程 6
一、 Antlr的主要类:
Antlr中有主要类有两种(其实还有一种 TreeLexer)
Lexer:文法分析器类。主要用于把读入的字节流根据规则分段。既把长面条根据你要的尺寸切
成一段一段:)并不对其作任何修改。
Parser:解析器类。主要用于处理经过 Lexer处理后的各段。一些具体的操作都在这里。
二、 Antlr文法文件形式:
Antlr文件是 *.g形式,即以 g为后缀名。
例如: t.g
class P extends Parser;
startRule
: n:NAME
{System.out.println("Hi there, "+n.getText());}
;
class L extends Lexer;
// one-or-more letters followed by a newline
NAME: ( 'a'..'z'|'A'..'Z' )+ NEWLINE
;
NEWLINE
: '\r' '\n' // DOS
| '\n' // UNIX
;
具体成分分析:
1、总体结构
Class P extends Parser
Class L extends Lexer
两行同 JAVA继承一样, P继承 Parser类; L继承 Lexer类。每个 .g文件只能各有一个。
2、 Lexer类分析
一般按照
类型名:
>>>>匹配的具体规则
>>>>;
的形式构成。是分隔字节流的依据。同时可以看到里面可以互相引用。如本例中的类型名
NEWLINE出现在 NEW的匹配规则中。
3、 Parser类分析
一般按照
起始规则名:
规则实例名:类型名或规则名
{Java语句。。。; }
;
。。。。。。。。。
的形式构成。
起始规则名:任意。
规则实例名:就象 Java中“ String s;”的 s一样。规则实例名用于在之后的 JAVA语句中调用。
类型名或规则名:可以是在 Lexer中定义的类型名,也可以是 Parser中定义的规则名。感觉就
像是 int与 Integer的区别。
Java语句:指当满足当前规则时所执行的语句。 Antlr会自动嵌入生成的 java类中。
1
1
1
三、生成 Java类
1、从 [url]www.antlr.org[/url] 上下载 antlr-x.x.x.jar
2、配置环境变量: classpath=.;x:\jdk\lib\tools.jar;x:\antlr-x.x.x.jar
3、在 t.g所在目录下执行:
java antlr.Tool t.g
会在当前目录下生成如下文件:
L.java: Lexer文法分析器 java类。
P.java: Parser解析器 java类。
PTokenTypes.java: Lexer中定义的类型具体化,供 Parser解析器调用。
PTokenTypes.txt:当外部的(如 t2.g)要调用当前的类型或规则时要用到本文件。
1
1
1
四、执行
1、编写 Main类
=<D
剩余41页未读,继续阅读
资源评论
- zxhjessie2013-03-15还OK,入门可以
- AlexFengtianyi2013-03-06内容多,但是有点杂乱,不够深入
mashengwang
- 粉丝: 9
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 冯璐阳 42105650—祝福.docx
- 基于多种算法及改进算法实现的移动机器人路径规划matlab源码(含A星算法+PRM+RRT的改进等).zip
- 布里斯托尔纸细分市场、总体规模、先进性、市占率行业分析报告2024年.docx
- Obi绳子插件,好用的很 6.5.4版本
- openjfx-22.0.1-windows-x64-bin-sdk.zip
- 基于ros和stm32f1的小车代码(含串口通信)+项目说明.zip
- 人体姿态估计-基于Tensorflow实现的人体姿态估计算法-附项目源码-优质项目分享.zip
- java实现所有算法大全
- JDBC DAO模式 (复习)
- Proteus仿真AT89C51电子密码锁
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功