blob: 1a843e2eb5843d983c4d808ce0f0f5dcf7198b1f [file] [log] [blame]
Jeremy Hylton0c3208a2000-03-06 19:13:21 +00001import sys
2import getopt
3
4from compiler import compile, visitor
5
Jeremy Hyltonbf80a032001-09-17 18:08:40 +00006import profile
Jeremy Hylton33c2a622001-08-27 20:39:21 +00007
Jeremy Hylton0c3208a2000-03-06 19:13:21 +00008def main():
9 VERBOSE = 0
Jeremy Hyltone7f710c2000-10-13 21:59:32 +000010 DISPLAY = 0
Jeremy Hyltonbf80a032001-09-17 18:08:40 +000011 PROFILE = 0
Jeremy Hylton33c2a622001-08-27 20:39:21 +000012 CONTINUE = 0
Jeremy Hyltonbf80a032001-09-17 18:08:40 +000013 opts, args = getopt.getopt(sys.argv[1:], 'vqdcp')
Jeremy Hylton0c3208a2000-03-06 19:13:21 +000014 for k, v in opts:
15 if k == '-v':
16 VERBOSE = 1
17 visitor.ASTVisitor.VERBOSE = visitor.ASTVisitor.VERBOSE + 1
18 if k == '-q':
Jeremy Hylton0a4f1ff2000-05-02 22:29:46 +000019 if sys.platform[:3]=="win":
20 f = open('nul', 'wb') # /dev/null fails on Windows...
21 else:
22 f = open('/dev/null', 'wb')
Jeremy Hylton0c3208a2000-03-06 19:13:21 +000023 sys.stdout = f
Jeremy Hyltone7f710c2000-10-13 21:59:32 +000024 if k == '-d':
25 DISPLAY = 1
Jeremy Hylton33c2a622001-08-27 20:39:21 +000026 if k == '-c':
27 CONTINUE = 1
Jeremy Hyltonbf80a032001-09-17 18:08:40 +000028 if k == '-p':
29 PROFILE = 1
Jeremy Hylton0c3208a2000-03-06 19:13:21 +000030 if not args:
31 print "no files to compile"
32 else:
33 for filename in args:
34 if VERBOSE:
35 print filename
Jeremy Hylton33c2a622001-08-27 20:39:21 +000036 try:
Jeremy Hyltonbf80a032001-09-17 18:08:40 +000037 if PROFILE:
38 profile.run('compile(%s, %s)' % (`filename`, `DISPLAY`),
39 filename + ".prof")
40 else:
41 compile(filename, DISPLAY)
42
Jeremy Hylton33c2a622001-08-27 20:39:21 +000043 except SyntaxError, err:
44 print err
45 print err.lineno
46 if not CONTINUE:
47 sys.exit(-1)
Jeremy Hylton0c3208a2000-03-06 19:13:21 +000048
49if __name__ == "__main__":
50 main()