Home | History | Annotate | Download | only in pyxelator
      1 #!/usr/bin/env python
      2 
      3 """ 
      4 
      5 (c) 2002, 2003, 2004, 2005 Simon Burton <simon (at] arrowtheory.com>
      6 Released under GNU LGPL license.
      7 
      8 version 0.xx
      9 
     10 """
     11 
     12 
     13 import sys
     14 import os
     15 
     16 from work_unit import WorkUnit, get_syms
     17 import ir
     18 
     19 
     20 def mk_tao(CPPFLAGS = "", CPP = "gcc -E", modname = '_yasm', oname = None, YASM_DIR = ".", **options):
     21     if oname is None:
     22         oname = modname+'.pyx'
     23     CPPFLAGS += " -I"+YASM_DIR
     24     CPPFLAGS += " -DYASM_PYXELATOR"
     25     CPPFLAGS += " -DYASM_LIB_INTERNAL"
     26     CPPFLAGS += " -DYASM_BC_INTERNAL"
     27     CPPFLAGS += " -DYASM_EXPR_INTERNAL"
     28     files = [ 'libyasm.h', 'libyasm/assocdat.h', 'libyasm/bitvect.h' ]
     29 
     30     syms = get_syms( ['yasm'], [YASM_DIR] )
     31     def cb(trans_unit, node, *args):
     32         name, file = node.name, node.file
     33         return True
     34         return name in syms
     35     extradefs = ""
     36     unit = WorkUnit(files,modname,oname,False,mark_cb=cb,extradefs=extradefs,
     37         CPPFLAGS=CPPFLAGS, CPP=CPP, **options)
     38 
     39 
     40     unit.parse( False )
     41     unit.transform(verbose=False, test_parse=False, test_types=False)
     42     unit.output()
     43 
     44 def main():
     45     options = {}
     46     for i,arg in enumerate(sys.argv[1:]):
     47         if arg.count('='):
     48             key,val = arg.split('=', 1)
     49             options[key]=val
     50     mk_tao(**options)
     51 
     52 if __name__=="__main__":
     53     main()
     54 
     55 
     56 
     57 
     58