论文部分内容阅读
现有的前端分析多数是通过编写相应的可能含有二义的LALR (1)文法规范,利用YACC或其变种自动生成的.在这些解析器的Java再工程中,可以用CUP去替代YACC,这样再工程的焦点转移到对文法规范的变换.由于YACC及CUP在二义的解决、解析器的构造等有细微的差别,因此对复杂的文法规范的变换并不是一件容易的事.该文通过剖析YACC和CUP,指出了它们的不同之处,并总结出有二义的YACC文法到CUP文法变换的基本原则和几个变换法则.