发信人: chenhao (阅读文献), 信区: Linux
标 题: 编译器构造工具:安装 JFlex 和 CUP - 具体化的指南
发信站: 北大未名站 (2000年12月06日00:27:52 星期三), 站内信件
Richard A. Sevenich 2000-10-12
0.0 背景
JFlex 和 CUP 软件包带有安装指南。它们编写的很好,语言直白。尽管如此,本篇文章
还是给出了 一个非常具体的安装情形。以作者的经验,这种具体化对那些新用户很有用
,他们在第一次尝试时 会觉得较少具体化的安装指南的普遍性和伸缩性会带来一些困难
。不言而喻,具体化会失去可伸缩性。
这个指南是用于一个装有 bash 作为缺省的 Shell,同时也有 tcsh,但不是缺省 Shell
的 Linux 盒子。假设用户已安装有某个版本的 jdk(Java Development Kit),或是等
同的软件。如果没有, 你可以在 www.blackdown.org 找到。在作者使用的系统中,来
自blackdown的jdk1.1.5-v5-glibc.tar.gz 压缩包下载在 /usr/lib 目录中,并展开在
那儿。
作者欢迎指正和建设性的建议。联系方式: rsevenich@ewu.edu
1.0 系统准备
注意在本节中一些具体的选择都是任意的。对初始者来说,假设你已经登录到了你的主目
录,比如说, /home/jsmith。所有的路径都将是相对于文件系统中的这个位置的。现在
如下建立新目录:
>mkdir javatools
>mkdir javatools/CUP
然后修改你的 .bash_profile 和 .bashrc 文件,包含所需的 java CLASSPATH 等。这里
是一些示例行:
JAVB=/usr/lib/jdk1.1
JAVT=/home/jsmith/javatools
CLASSPATH=./:$JAVB/lib/classes.zip:$JAVT/JFlex/lib/JFlex.jar:$JAVT/CUP
PATH=$PATH:$JAVB/bin:$JAVT/JFlex/bin
export PATH CLASSPATH
注意:目录 /usr/lib/jdk1.1 是用于指示从 blackdown 的 tarball里解开的文件所放的
地方。在作者 的实际情况中,它是一个到 /usr/lib/jdk1.1.5v5-980311/ 的符号连接。
要使你的这些修改起作用,你必须退出系统,再重新注册。
2.0 JFlex
2.1 得到 JFlex
JFlex 可以从 www.informatik.tu-muenchen.de/~kleing/jflex/index.html#Download
得到,是一个 tar.gz 格式的文件。在写本文的时候,该文件的名字是 "jflex-1.2.tar
.gz"。这个 tar 包包括一个自带安装指南的丰富文档。
2.2 一个具体的安装情形
下载tar 包,jflex-1.2.tar.gz, 到javatools/ 目录中; 用命令‘tar xvfz jflex-1.2
.tar.gz’在javatools/目录中展开tar 包。 这样就会创建带有相关的子目录树的目录'J
Flex'。它将含有所有需要的东西,包括在'doc'子目录中 的文档。这儿的文档内容详尽
,指出了怎样用 JFlex 来创建独立的词法分析器(例如下面2.3节中的例子) 或是用于其
它程序(如CUP)创建的处理器的词法分析器。在目录 JFlex/bin 中你可以找到一个 Shell
脚本 程序'jflex',它需要做如下修改:
设置 JFLEX_HOME 变量: 'JFLEX_HOME=/home/jsmith/javatools/JFlex' (根据你的环境)
设置 JAVA_HOME 变量: 'JAVA_HOME=/usr/lib/jdk1.1' (根据你的环境)
2.3 对安装进行测试
切换目录到 javatools/JFlex/examples/standalone (例如, 'cd /home/jsmith/javatoo
ls/JFlex/examples/standalone/') 执行该目录中的 README 文件中的指令,会得到如下
的屏幕输出:
Hello someone!
This is a sample input file for the
standalone example scanner.
Have a nice day!
3.0 CUP
3.1 得到 CUP
CUP 从 www.cs.princeton.edu/~appel/modern/java/ 得到。在那儿你能找到所需的源代
码(压缩的tar包)和用户手册。这个手册可以html 方式下载以提供一个在线的手册或者以
适于打印的形式(如 postscript) 下载。下一节将讨论下载源代码的问题。
注:上述的 Web 站点还有一个 JFlex 的变种,叫JLex。
3.2 一个 CUP 的具体的安装情形, 包括测试
下载压缩的tar 包到javatools/CUP 目录中; 切换到那个目录中 (如,cd /home/jsmith/
javatools/CUP)展开tar 包 键入命令行: './INSTALL', 来运行安装/测试文件。注意安
装程序是一个 csh,或它的替代物 tcsh 的脚本。所以,tcsh 是需要的。
这样将得到一个成功的消息:'Install and test was successful'。
4.0 下一步
随 JFlex 和 CUP 下载的文档提供了足够的信息让用户把它们运行起来。
--
※ 来源:·北大未名站 bbs.pku.edu.cn