Add parseGlyph()
This commit is contained in:
parent
cca7d5ffb2
commit
494f9e975a
16
fd2ft.py
16
fd2ft.py
@ -13,6 +13,12 @@ import re
|
|||||||
|
|
||||||
debug = print
|
debug = print
|
||||||
|
|
||||||
|
def parseGlyph(s):
|
||||||
|
return s
|
||||||
|
|
||||||
|
def parseGlyphs(l):
|
||||||
|
return [parseGlyph(g) for g in l]
|
||||||
|
|
||||||
def parseScriptList(lines):
|
def parseScriptList(lines):
|
||||||
lines.skipUntil('script table begin')
|
lines.skipUntil('script table begin')
|
||||||
self = ot.ScriptList()
|
self = ot.ScriptList()
|
||||||
@ -101,29 +107,33 @@ def parseClassDef(lines, klass=ot.ClassDef):
|
|||||||
self = klass()
|
self = klass()
|
||||||
classDefs = self.classDefs = {}
|
classDefs = self.classDefs = {}
|
||||||
for line in lines.readUntil('class definition end'):
|
for line in lines.readUntil('class definition end'):
|
||||||
classDefs[line[0]] = int(line[1])
|
classDefs[parseGlyph(line[0])] = int(line[1])
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def parseSingleSubst(self, lines, font):
|
def parseSingleSubst(self, lines, font):
|
||||||
self.mapping = {}
|
self.mapping = {}
|
||||||
for line in lines:
|
for line in lines:
|
||||||
assert len(line) == 2, line
|
assert len(line) == 2, line
|
||||||
|
line = parseGlyphs(line)
|
||||||
self.mapping[line[0]] = line[1]
|
self.mapping[line[0]] = line[1]
|
||||||
|
|
||||||
def parseMultiple(self, lines, font):
|
def parseMultiple(self, lines, font):
|
||||||
self.mapping = {}
|
self.mapping = {}
|
||||||
for line in lines:
|
for line in lines:
|
||||||
|
line = parseGlyphs(line)
|
||||||
self.mapping[line[0]] = line[1:]
|
self.mapping[line[0]] = line[1:]
|
||||||
|
|
||||||
def parseAlternate(self, lines, font):
|
def parseAlternate(self, lines, font):
|
||||||
self.alternates = {}
|
self.alternates = {}
|
||||||
for line in lines:
|
for line in lines:
|
||||||
|
line = parseGlyphs(line)
|
||||||
self.alternates[line[0]] = line[1:]
|
self.alternates[line[0]] = line[1:]
|
||||||
|
|
||||||
def parseLigature(self, lines, font):
|
def parseLigature(self, lines, font):
|
||||||
self.ligatures = {}
|
self.ligatures = {}
|
||||||
for line in lines:
|
for line in lines:
|
||||||
assert len(line) >= 2, line
|
assert len(line) >= 2, line
|
||||||
|
line = parseGlyphs(line)
|
||||||
# The following single line can replace the rest of this function with fontTools >= 3.1
|
# The following single line can replace the rest of this function with fontTools >= 3.1
|
||||||
#self.ligatures[tuple(line[1:])] = line[0]
|
#self.ligatures[tuple(line[1:])] = line[0]
|
||||||
ligGlyph, firstGlyph = line[:2]
|
ligGlyph, firstGlyph = line[:2]
|
||||||
@ -264,7 +274,7 @@ def parseCoverage(lines, font, klass=ot.Coverage):
|
|||||||
assert line[0].endswith('coverage definition begin'), line
|
assert line[0].endswith('coverage definition begin'), line
|
||||||
glyphs = []
|
glyphs = []
|
||||||
for line in lines.readUntil('coverage definition end'):
|
for line in lines.readUntil('coverage definition end'):
|
||||||
glyphs.append(line[0])
|
glyphs.append(parseGlyph(line[0]))
|
||||||
return makeCoverage(glyphs, font, klass)
|
return makeCoverage(glyphs, font, klass)
|
||||||
|
|
||||||
def bucketizeRules(self, c, rules, bucketKeys):
|
def bucketizeRules(self, c, rules, bucketKeys):
|
||||||
@ -302,7 +312,7 @@ def parseContext(self, lines, font, Type):
|
|||||||
rules = []
|
rules = []
|
||||||
for line in lines:
|
for line in lines:
|
||||||
recs = parseLookupRecords(line[2:], c.LookupRecord)
|
recs = parseLookupRecords(line[2:], c.LookupRecord)
|
||||||
seq = stripSplitComma(line[1])
|
seq = parseGlyphs(stripSplitComma(line[1]))
|
||||||
rules.append((seq, recs))
|
rules.append((seq, recs))
|
||||||
|
|
||||||
self.Coverage = makeCoverage((seq[0] for seq,recs in rules), font)
|
self.Coverage = makeCoverage((seq[0] for seq,recs in rules), font)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user