MCPcopy Create free account
hub / github.com/LibPDF-js/core / parse

Method parse

src/fontbox/cmap/parser.ts:53–95  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

51 }
52
53 parse(): CMap {
54 const result = new CMap();
55 let previousToken: Token = null;
56 let token = this.parseNextToken();
57
58 while (token !== null) {
59 if (isOperator(token)) {
60 if (token.op === "endcmap") {
61 break;
62 }
63
64 if (token.op === "usecmap" && isName(previousToken)) {
65 // usecmap not supported (would need external CMap lookup)
66 // In PDF context, the PDF reader handles this
67 } else if (typeof previousToken === "number") {
68 switch (token.op) {
69 case "begincodespacerange":
70 this.parseCodespaceRange(previousToken, result);
71 break;
72 case "beginbfchar":
73 this.parseBfChar(previousToken, result);
74 break;
75 case "beginbfrange":
76 this.parseBfRange(previousToken, result);
77 break;
78 case "begincidchar":
79 this.parseCidChar(previousToken, result);
80 break;
81 case "begincidrange":
82 this.parseCidRange(previousToken, result);
83 break;
84 }
85 }
86 } else if (isName(token)) {
87 this.parseLiteralName(token, result);
88 }
89
90 previousToken = token;
91 token = this.parseNextToken();
92 }
93
94 return result;
95 }
96
97 private parseLiteralName(literal: LiteralName, result: CMap): void {
98 switch (literal.name) {

Callers 1

parseCMapFunction · 0.45

Calls 9

parseNextTokenMethod · 0.95
parseCodespaceRangeMethod · 0.95
parseBfCharMethod · 0.95
parseBfRangeMethod · 0.95
parseCidCharMethod · 0.95
parseCidRangeMethod · 0.95
parseLiteralNameMethod · 0.95
isOperatorFunction · 0.85
isNameFunction · 0.85

Tested by

no test coverage detected