Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #!/bin/python2
  2.  
  3. # Copyright (C) 2019-2021 Logaev Maxim (turbocat2001), GPLv3
  4.  
  5. import os
  6.  
  7. CORE = ['tokenize','parse','encode','py2bc']
  8.  
  9. def py2bc(cmd,mod):
  10.     src = 'core/%s.py'%mod
  11.     dest = 'core/%s.tpc'%mod
  12.    
  13.     cmd = cmd.replace('$SRC',src)
  14.     cmd = cmd.replace('$DEST',dest)
  15.     os.system(cmd)
  16.    
  17. def build_bc(opt=False):
  18.     out = []
  19.     for mod in CORE:
  20.         out.append("""unsigned char tp_%s[] = {"""%mod)
  21.         fname ="core/"+mod+".tpc"
  22.         data = open(fname,'rb').read()
  23.         cols = 16
  24.         for n in xrange(0,len(data),cols):
  25.             out.append(",".join([str(ord(v)) for v in data[n:n+cols]])+',')
  26.         out.append("""};""")
  27.     out.append("")
  28.     f = open('bc.c','wb')
  29.     f.write('\n'.join(out))
  30.     f.close()
  31.  
  32. for src in CORE:
  33.     py2bc('python2 core/py2bc.py $SRC $DEST',src)
  34. build_bc(True)
  35.