yply.py
来自「M5,一个功能强大的多处理器系统模拟器.很多针对处理器架构,性能的研究都使用它作」· Python 代码 · 共 54 行
PY
54 行
#!/usr/local/bin/python# yply.py## Author: David Beazley (dave@dabeaz.com)# Date : October 2, 2006## Converts a UNIX-yacc specification file into a PLY-compatible# specification. To use, simply do this:## % python yply.py [-nocode] inputfile.y >myparser.py## The output of this program is Python code. In the output,# any C code in the original file is included, but is commented.# If you use the -nocode option, then all of the C code in the# original file is discarded.## Disclaimer: This just an example I threw together in an afternoon.# It might have some bugs. However, it worked when I tried it on# a yacc-specified C++ parser containing 442 rules and 855 parsing# states.#import syssys.path.insert(0,"../..")import yleximport yparsefrom ply import *if len(sys.argv) == 1: print "usage : yply.py [-nocode] inputfile" raise SystemExitif len(sys.argv) == 3: if sys.argv[1] == '-nocode': yparse.emit_code = 0 else: print "Unknown option '%s'" % sys.argv[1] raise SystemExit filename = sys.argv[2]else: filename = sys.argv[1]yacc.parse(open(filename).read())print """if __name__ == '__main__': from ply import * yacc.yacc()"""
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?