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()