(self, pos, token)
| 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 |
nothing calls this directly
no test coverage detected