mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
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()
 |