文件名称:LALR(1)解析器的再工程: 剖析YACC和CUP
文件大小:283KB
文件格式:PDF
更新时间:2013-06-27 08:51:42
编译、yacc、cup
程序设计语言或领域规范语言在移植到Java环境时,需要考虑其前端分析器的构造。现有的前端分析多数是通过编写相应的可能含有二义的LALR(1)文法规范,利用Yacc或其变种自动生成的。在这些解析器的Java再工程中,可以用CUP去替代Yacc,这样再工程的焦点转移到对文法规范的变换。由于Yacc及CUP在二义的解决、解析器的构造等有细微的差别,使得对复杂的文法规范的变换并不是一件容易的事。本文通过剖析Yacc(BYacc和Bison)和CUP,指出它们的不同之处,并总结出有二义的Yacc文法到CUP文法变换的基本原则和几个变换法则