MCPcopy Index your code
hub / github.com/clips/pattern / CMapParser

Class CMapParser

pattern/web/pdf/cmapdb.py:282–407  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

280## CMapParser
281##
282class CMapParser(PSStackParser):
283
284 def __init__(self, cmap, fp):
285 PSStackParser.__init__(self, fp)
286 self.cmap = cmap
287 self._in_cmap = False
288 return
289
290 def run(self):
291 try:
292 self.nextobject()
293 except PSEOF:
294 pass
295 return
296
297 def do_keyword(self, pos, token):
298 name = token.name
299 if name == 'begincmap':
300 self._in_cmap = True
301 self.popall()
302 return
303 elif name == 'endcmap':
304 self._in_cmap = False
305 return
306 if not self._in_cmap: return
307 #
308 if name == 'def':
309 try:
310 ((_,k),(_,v)) = self.pop(2)
311 self.cmap.set_attr(literal_name(k), v)
312 except PSSyntaxError:
313 pass
314 return
315
316 if name == 'usecmap':
317 try:
318 ((_,cmapname),) = self.pop(1)
319 self.cmap.use_cmap(CMapDB.get_cmap(literal_name(cmapname)))
320 except PSSyntaxError:
321 pass
322 except CMapDB.CMapNotFound:
323 pass
324 return
325
326 if name == 'begincodespacerange':
327 self.popall()
328 return
329 if name == 'endcodespacerange':
330 self.popall()
331 return
332
333 if name == 'begincidrange':
334 self.popall()
335 return
336 if name == 'endcidrange':
337 objs = [ obj for (_,obj) in self.popall() ]
338 for (s,e,cid) in choplist(3, objs):
339 if (not isinstance(s, str) or not isinstance(e, str) or

Callers 3

__init__Method · 0.90
__init__Method · 0.90
mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…