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 + -
显示快捷键?