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

Method do_keyword

pattern/web/pdf/cmapdb.py:297–407  ·  view source on GitHub ↗
(self, pos, token)

Source from the content-addressed store, hash-verified

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
340 not isinstance(cid, int) or len(s) != len(e)): continue
341 sprefix = s[:-4]
342 eprefix = e[:-4]
343 if sprefix != eprefix: continue
344 svar = s[-4:]
345 evar = e[-4:]
346 s1 = nunpack(svar)
347 e1 = nunpack(evar)
348 vlen = len(svar)
349 #assert s1 <= e1
350 for i in xrange(e1-s1+1):
351 x = sprefix+struct.pack('>L',s1+i)[-vlen:]
352 self.cmap.add_code2cid(x, cid+i)
353 return
354

Callers

nothing calls this directly

Calls 12

literal_nameFunction · 0.90
choplistFunction · 0.90
nunpackFunction · 0.90
lenFunction · 0.85
popallMethod · 0.80
use_cmapMethod · 0.80
add_code2cidMethod · 0.80
add_cid2unichrMethod · 0.80
popMethod · 0.45
set_attrMethod · 0.45
get_cmapMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected