blob: 9e5c80123f4224d5b3e7136d6764e9c1c296ac20 [file] [log] [blame]
Serhiy Storchakaeab2fd12015-02-15 13:57:49 +02001import os
Jeremy Hylton0c3208a2000-03-06 19:13:21 +00002import sys
3import getopt
4
Jeremy Hylton5d1e34a2001-09-17 21:31:35 +00005from compiler import compileFile, visitor
Jeremy Hylton0c3208a2000-03-06 19:13:21 +00006
Jeremy Hyltonbf80a032001-09-17 18:08:40 +00007import profile
Jeremy Hylton33c2a622001-08-27 20:39:21 +00008
Jeremy Hylton0c3208a2000-03-06 19:13:21 +00009def main():
10 VERBOSE = 0
Jeremy Hyltone7f710c2000-10-13 21:59:32 +000011 DISPLAY = 0
Jeremy Hyltonbf80a032001-09-17 18:08:40 +000012 PROFILE = 0
Jeremy Hylton33c2a622001-08-27 20:39:21 +000013 CONTINUE = 0
Jeremy Hyltonbf80a032001-09-17 18:08:40 +000014 opts, args = getopt.getopt(sys.argv[1:], 'vqdcp')
Jeremy Hylton0c3208a2000-03-06 19:13:21 +000015 for k, v in opts:
16 if k == '-v':
17 VERBOSE = 1
18 visitor.ASTVisitor.VERBOSE = visitor.ASTVisitor.VERBOSE + 1
19 if k == '-q':
Serhiy Storchakaeab2fd12015-02-15 13:57:49 +020020 sys.stdout = open(os.devnull, 'wb')
Jeremy Hyltone7f710c2000-10-13 21:59:32 +000021 if k == '-d':
22 DISPLAY = 1
Jeremy Hylton33c2a622001-08-27 20:39:21 +000023 if k == '-c':
24 CONTINUE = 1
Jeremy Hyltonbf80a032001-09-17 18:08:40 +000025 if k == '-p':
26 PROFILE = 1
Jeremy Hylton0c3208a2000-03-06 19:13:21 +000027 if not args:
28 print "no files to compile"
29 else:
30 for filename in args:
31 if VERBOSE:
32 print filename
Jeremy Hylton33c2a622001-08-27 20:39:21 +000033 try:
Jeremy Hyltonbf80a032001-09-17 18:08:40 +000034 if PROFILE:
Walter Dörwald70a6b492004-02-12 17:35:32 +000035 profile.run('compileFile(%r, %r)' % (filename, DISPLAY),
Jeremy Hyltonbf80a032001-09-17 18:08:40 +000036 filename + ".prof")
37 else:
Jeremy Hylton5d1e34a2001-09-17 21:31:35 +000038 compileFile(filename, DISPLAY)
Tim Peters182b5ac2004-07-18 06:16:08 +000039
Jeremy Hylton33c2a622001-08-27 20:39:21 +000040 except SyntaxError, err:
41 print err
Jeremy Hylton5d1e34a2001-09-17 21:31:35 +000042 if err.lineno is not None:
43 print err.lineno
Jeremy Hylton33c2a622001-08-27 20:39:21 +000044 if not CONTINUE:
45 sys.exit(-1)
Jeremy Hylton0c3208a2000-03-06 19:13:21 +000046
47if __name__ == "__main__":
48 main()