1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #! /usr/bin/env python2.7
- SUBSYS = 'Enc'
- MAPPREFIX = 'StdMap_'
- OUTDIR = 'out'
- import sys, os, string
- import gen1, mapA, mappy, util
- def isSDBCS (r):
- for eord, uord in r:
- if eord >= 65536:
- return False
- return True
- def loadMap (format, db):
- if format == 'A':
- fh = open(db, 'rb')
- x = mapA.getMap(fh)
- fh.close()
- elif format == 'pySBCS':
- x = mappy.getMap(db, 'SBCS')
- elif format == 'pyDBCS':
- x = mappy.getMap(db, 'DBCS')
- else:
- assert False
- return x
- def main ():
- done = {}
- while True:
- line = sys.stdin.readline()
- if line == '':
- break
- line = line.strip()
- if (len(line) > 0) and (line[0] != '#'):
- # print line
- enc, format, db, refComment = line.split(': ')
- enc = enc.strip()
- format = format.strip()
- db = db.strip()
- refComment = refComment.strip()
- assert not done.has_key(enc)
- done[enc] = True
- x = loadMap(format, db)
- if type(x) is not str:
- r, e = x
- assert len(r) > 0
- assert isSDBCS(r) # not implemented
- x = util.normEnc(enc)
- fName = os.path.join(OUTDIR, MAPPREFIX + x + '.txt')
- modName = SUBSYS + MAPPREFIX + x
- head0 = "Source: %s" % (refComment,)
- mod = gen1.gen(modName, r, e, head0=head0)
- fh = open(fName, 'wb')
- fh.write(mod)
- fh.close()
- else:
- print 'can not process %s %s %s: %s' % (enc, format, db, x)
- if __name__ == '__main__':
- main()
|