/Tools/compiler/compile.py
http://unladen-swallow.googlecode.com/ · Python · 51 lines · 46 code · 5 blank · 0 comment · 19 complexity · 42b99420e248d15942f4c776b420ba2a MD5 · raw file
- import sys
- import getopt
- from compiler import compileFile, visitor
- import profile
- def main():
- VERBOSE = 0
- DISPLAY = 0
- PROFILE = 0
- CONTINUE = 0
- opts, args = getopt.getopt(sys.argv[1:], 'vqdcp')
- for k, v in opts:
- if k == '-v':
- VERBOSE = 1
- visitor.ASTVisitor.VERBOSE = visitor.ASTVisitor.VERBOSE + 1
- if k == '-q':
- if sys.platform[:3]=="win":
- f = open('nul', 'wb') # /dev/null fails on Windows...
- else:
- f = open('/dev/null', 'wb')
- sys.stdout = f
- if k == '-d':
- DISPLAY = 1
- if k == '-c':
- CONTINUE = 1
- if k == '-p':
- PROFILE = 1
- if not args:
- print "no files to compile"
- else:
- for filename in args:
- if VERBOSE:
- print filename
- try:
- if PROFILE:
- profile.run('compileFile(%r, %r)' % (filename, DISPLAY),
- filename + ".prof")
- else:
- compileFile(filename, DISPLAY)
- except SyntaxError, err:
- print err
- if err.lineno is not None:
- print err.lineno
- if not CONTINUE:
- sys.exit(-1)
- if __name__ == "__main__":
- main()