pdfjs-dist 2.2.228 → 2.6.347
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pdfjs-dist might be problematic. Click here for more details.
- package/README.md +4 -0
- package/bower.json +1 -1
- package/build/pdf.js +8816 -19300
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +22 -1
- package/build/pdf.worker.entry.js +5 -3
- package/build/pdf.worker.js +27185 -35746
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +22 -1
- package/es5/build/pdf.js +26665 -0
- package/es5/build/pdf.js.map +1 -0
- package/es5/build/pdf.min.js +22 -0
- package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
- package/es5/build/pdf.worker.js +61231 -0
- package/es5/build/pdf.worker.js.map +1 -0
- package/es5/build/pdf.worker.min.js +22 -0
- package/es5/image_decoders/pdf.image_decoders.js +12529 -0
- package/es5/image_decoders/pdf.image_decoders.js.map +1 -0
- package/es5/image_decoders/pdf.image_decoders.min.js +22 -0
- package/es5/web/images/annotation-check.svg +11 -0
- package/es5/web/images/annotation-comment.svg +16 -0
- package/es5/web/images/annotation-help.svg +26 -0
- package/es5/web/images/annotation-insert.svg +10 -0
- package/es5/web/images/annotation-key.svg +11 -0
- package/es5/web/images/annotation-newparagraph.svg +11 -0
- package/es5/web/images/annotation-noicon.svg +7 -0
- package/es5/web/images/annotation-note.svg +42 -0
- package/es5/web/images/annotation-paragraph.svg +16 -0
- package/es5/web/images/loading-icon.gif +0 -0
- package/es5/web/images/shadow.png +0 -0
- package/es5/web/pdf_viewer.css +406 -0
- package/es5/web/pdf_viewer.js +7886 -0
- package/es5/web/pdf_viewer.js.map +1 -0
- package/image_decoders/pdf.image_decoders.js +1498 -4832
- package/image_decoders/pdf.image_decoders.js.map +1 -1
- package/image_decoders/pdf.image_decoders.min.js +22 -1
- package/lib/README.md +7 -0
- package/lib/core/annotation.js +1144 -927
- package/lib/core/arithmetic_decoder.js +81 -97
- package/lib/core/bidi.js +54 -46
- package/lib/core/ccitt.js +88 -81
- package/lib/core/ccitt_stream.js +15 -14
- package/lib/core/cff_parser.js +747 -716
- package/lib/core/charsets.js +4 -4
- package/lib/core/chunked_stream.js +462 -553
- package/lib/core/cmap.js +231 -277
- package/lib/core/colorspace.js +715 -857
- package/lib/core/core_utils.js +57 -52
- package/lib/core/crypto.js +416 -437
- package/lib/core/document.js +629 -670
- package/lib/core/encodings.js +15 -15
- package/lib/core/evaluator.js +3229 -2800
- package/lib/core/font_renderer.js +135 -178
- package/lib/core/fonts.js +602 -534
- package/lib/core/function.js +355 -279
- package/lib/core/glyphlist.js +4527 -4526
- package/lib/core/image.js +442 -439
- package/lib/core/image_utils.js +221 -61
- package/lib/core/jbig2.js +325 -316
- package/lib/core/jbig2_stream.js +18 -17
- package/lib/core/jpeg_stream.js +21 -26
- package/lib/core/jpg.js +289 -233
- package/lib/core/jpx.js +161 -143
- package/lib/core/jpx_stream.js +28 -28
- package/lib/core/metrics.js +2928 -2928
- package/lib/core/murmurhash3.js +87 -102
- package/lib/core/obj.js +1343 -1300
- package/lib/core/operator_list.js +90 -67
- package/lib/core/parser.js +990 -987
- package/lib/core/pattern.js +105 -77
- package/lib/core/pdf_manager.js +149 -316
- package/lib/core/primitives.js +156 -104
- package/lib/core/ps_parser.js +175 -214
- package/lib/core/standard_fonts.js +237 -236
- package/lib/core/stream.js +94 -74
- package/lib/core/type1_parser.js +89 -69
- package/lib/core/unicode.js +1654 -1654
- package/lib/core/worker.js +275 -290
- package/lib/core/worker_stream.js +101 -210
- package/lib/core/writer.js +242 -0
- package/lib/display/annotation_layer.js +772 -1041
- package/lib/display/annotation_storage.js +89 -0
- package/lib/display/api.js +1575 -1868
- package/lib/display/api_compatibility.js +12 -17
- package/lib/display/canvas.js +370 -222
- package/lib/display/content_disposition.js +40 -59
- package/lib/display/display_utils.js +341 -536
- package/lib/display/fetch_stream.js +188 -304
- package/lib/display/font_loader.js +282 -414
- package/lib/display/metadata.js +81 -99
- package/lib/display/network.js +362 -511
- package/lib/display/network_utils.js +25 -18
- package/lib/display/node_stream.js +283 -465
- package/lib/display/node_utils.js +87 -0
- package/lib/display/optional_content_config.js +184 -0
- package/lib/display/pattern_helper.js +93 -44
- package/lib/display/svg.js +1163 -1401
- package/lib/display/text_layer.js +154 -137
- package/lib/display/transport_stream.js +237 -375
- package/lib/display/webgl.js +70 -83
- package/lib/display/worker_options.js +3 -3
- package/lib/display/xml_parser.js +303 -392
- package/lib/examples/node/domstubs.js +37 -37
- package/lib/pdf.js +220 -58
- package/lib/pdf.worker.js +14 -6
- package/lib/shared/compatibility.js +3 -246
- package/lib/shared/is_node.js +7 -6
- package/lib/shared/message_handler.js +327 -332
- package/lib/shared/util.js +271 -306
- package/lib/test/unit/annotation_spec.js +1902 -763
- package/lib/test/unit/annotation_storage_spec.js +83 -0
- package/lib/test/unit/api_spec.js +790 -592
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +73 -72
- package/lib/test/unit/clitests_helper.js +7 -9
- package/lib/test/unit/cmap_spec.js +86 -88
- package/lib/test/unit/colorspace_spec.js +346 -154
- package/lib/test/unit/core_utils_spec.js +125 -105
- package/lib/test/unit/crypto_spec.js +232 -185
- package/lib/test/unit/custom_spec.js +150 -24
- package/lib/test/unit/display_svg_spec.js +34 -39
- package/lib/test/unit/display_utils_spec.js +139 -149
- package/lib/test/unit/document_spec.js +128 -17
- package/lib/test/unit/encodings_spec.js +12 -34
- package/lib/test/unit/evaluator_spec.js +112 -91
- package/lib/test/unit/fetch_stream_spec.js +31 -29
- package/lib/test/unit/function_spec.js +206 -204
- package/lib/test/unit/jasmine-boot.js +48 -32
- package/lib/test/unit/message_handler_spec.js +173 -159
- package/lib/test/unit/metadata_spec.js +71 -71
- package/lib/test/unit/murmurhash3_spec.js +12 -12
- package/lib/test/unit/network_spec.js +13 -11
- package/lib/test/unit/network_utils_spec.js +158 -144
- package/lib/test/unit/node_stream_spec.js +76 -90
- package/lib/test/unit/parser_spec.js +108 -114
- package/lib/test/unit/pdf_find_controller_spec.js +55 -86
- package/lib/test/unit/pdf_find_utils_spec.js +32 -32
- package/lib/test/unit/pdf_history_spec.js +32 -32
- package/lib/test/unit/primitives_spec.js +337 -156
- package/lib/test/unit/stream_spec.js +16 -14
- package/lib/test/unit/test_utils.js +91 -304
- package/lib/test/unit/testreporter.js +33 -22
- package/lib/test/unit/type1_parser_spec.js +42 -42
- package/lib/test/unit/ui_utils_spec.js +299 -461
- package/lib/test/unit/unicode_spec.js +42 -42
- package/lib/test/unit/util_spec.js +129 -149
- package/lib/test/unit/writer_spec.js +84 -0
- package/lib/web/annotation_layer_builder.js +78 -111
- package/lib/web/app.js +1542 -1267
- package/lib/web/app_options.js +76 -91
- package/lib/web/base_tree_viewer.js +100 -0
- package/lib/web/base_viewer.js +869 -834
- package/lib/web/chromecom.js +165 -252
- package/lib/web/debugger.js +149 -205
- package/lib/web/download_manager.js +34 -58
- package/lib/web/firefox_print_service.js +62 -34
- package/lib/web/firefoxcom.js +206 -374
- package/lib/web/genericcom.js +26 -108
- package/lib/web/genericl10n.js +24 -153
- package/lib/web/grab_to_pan.js +30 -30
- package/lib/web/interfaces.js +80 -254
- package/lib/web/overlay_manager.js +70 -246
- package/lib/web/password_prompt.js +38 -64
- package/lib/web/pdf_attachment_viewer.js +150 -126
- package/lib/web/pdf_cursor_tools.js +75 -102
- package/lib/web/pdf_document_properties.js +229 -383
- package/lib/web/pdf_find_bar.js +136 -170
- package/lib/web/pdf_find_controller.js +492 -548
- package/lib/web/pdf_find_utils.js +13 -13
- package/lib/web/pdf_history.js +397 -406
- package/lib/web/pdf_layer_viewer.js +208 -0
- package/lib/web/pdf_link_service.js +304 -348
- package/lib/web/pdf_outline_viewer.js +119 -212
- package/lib/web/pdf_page_view.js +474 -513
- package/lib/web/pdf_presentation_mode.js +308 -357
- package/lib/web/pdf_print_service.js +96 -110
- package/lib/web/pdf_rendering_queue.js +87 -108
- package/lib/web/pdf_sidebar.js +286 -302
- package/lib/web/pdf_sidebar_resizer.js +92 -119
- package/lib/web/pdf_single_page_viewer.js +77 -126
- package/lib/web/pdf_thumbnail_view.js +289 -297
- package/lib/web/pdf_thumbnail_viewer.js +202 -206
- package/lib/web/pdf_viewer.component.js +20 -21
- package/lib/web/pdf_viewer.js +55 -115
- package/lib/web/preferences.js +69 -273
- package/lib/web/secondary_toolbar.js +164 -196
- package/lib/web/text_layer_builder.js +284 -319
- package/lib/web/toolbar.js +217 -210
- package/lib/web/ui_utils.js +274 -421
- package/lib/web/view_history.js +52 -226
- package/lib/web/viewer_compatibility.js +21 -6
- package/package.json +4 -9
- package/types/display/annotation_layer.d.ts +61 -0
- package/types/display/annotation_storage.d.ts +36 -0
- package/types/display/api.d.ts +1107 -0
- package/types/display/api_compatibility.d.ts +1 -0
- package/types/display/canvas.d.ts +4 -0
- package/types/display/content_disposition.d.ts +7 -0
- package/types/display/display_utils.d.ts +243 -0
- package/types/display/fetch_stream.d.ts +67 -0
- package/types/display/font_loader.d.ts +19 -0
- package/types/display/metadata.d.ts +9 -0
- package/types/display/network.d.ts +80 -0
- package/types/display/network_utils.d.ts +14 -0
- package/types/display/node_stream.d.ts +72 -0
- package/types/display/node_utils.d.ts +6 -0
- package/types/display/optional_content_config.d.ts +12 -0
- package/types/display/pattern_helper.d.ts +5 -0
- package/types/display/svg.d.ts +2 -0
- package/types/display/text_layer.d.ts +83 -0
- package/types/display/transport_stream.d.ts +57 -0
- package/types/display/webgl.d.ts +20 -0
- package/types/display/worker_options.d.ts +27 -0
- package/types/display/xml_parser.d.ts +35 -0
- package/types/pdf.d.ts +33 -0
- package/types/shared/compatibility.d.ts +1 -0
- package/types/shared/is_node.d.ts +1 -0
- package/types/shared/message_handler.d.ts +62 -0
- package/types/shared/util.d.ts +421 -0
- package/web/images/shadow.png +0 -0
- package/web/pdf_viewer.css +29 -27
- package/web/pdf_viewer.js +3524 -4746
- package/web/pdf_viewer.js.map +1 -1
- package/webpack.js +6 -5
- package/external/streams/streams-lib.js +0 -3962
- package/external/url/url-lib.js +0 -627
- package/lib/shared/streams_polyfill.js +0 -43
- package/lib/shared/url_polyfill.js +0 -56
- package/web/images/texture.png +0 -0
package/lib/core/ps_parser.js
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
* @licstart The following is the entire license notice for the
|
3
3
|
* Javascript code in this page
|
4
4
|
*
|
5
|
-
* Copyright
|
5
|
+
* Copyright 2020 Mozilla Foundation
|
6
6
|
*
|
7
7
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
8
|
* you may not use this file except in compliance with the License.
|
@@ -26,110 +26,93 @@ Object.defineProperty(exports, "__esModule", {
|
|
26
26
|
});
|
27
27
|
exports.PostScriptParser = exports.PostScriptLexer = void 0;
|
28
28
|
|
29
|
-
var _util = require("../shared/util");
|
29
|
+
var _util = require("../shared/util.js");
|
30
30
|
|
31
|
-
var _primitives = require("./primitives");
|
31
|
+
var _primitives = require("./primitives.js");
|
32
32
|
|
33
|
-
|
34
|
-
|
35
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
36
|
-
|
37
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
38
|
-
|
39
|
-
var PostScriptParser =
|
40
|
-
/*#__PURE__*/
|
41
|
-
function () {
|
42
|
-
function PostScriptParser(lexer) {
|
43
|
-
_classCallCheck(this, PostScriptParser);
|
33
|
+
var _core_utils = require("./core_utils.js");
|
44
34
|
|
35
|
+
class PostScriptParser {
|
36
|
+
constructor(lexer) {
|
45
37
|
this.lexer = lexer;
|
46
38
|
this.operators = [];
|
47
39
|
this.token = null;
|
48
40
|
this.prev = null;
|
49
41
|
}
|
50
42
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
this.token = this.lexer.getToken();
|
56
|
-
}
|
57
|
-
}, {
|
58
|
-
key: "accept",
|
59
|
-
value: function accept(type) {
|
60
|
-
if (this.token.type === type) {
|
61
|
-
this.nextToken();
|
62
|
-
return true;
|
63
|
-
}
|
43
|
+
nextToken() {
|
44
|
+
this.prev = this.token;
|
45
|
+
this.token = this.lexer.getToken();
|
46
|
+
}
|
64
47
|
|
65
|
-
|
48
|
+
accept(type) {
|
49
|
+
if (this.token.type === type) {
|
50
|
+
this.nextToken();
|
51
|
+
return true;
|
66
52
|
}
|
67
|
-
}, {
|
68
|
-
key: "expect",
|
69
|
-
value: function expect(type) {
|
70
|
-
if (this.accept(type)) {
|
71
|
-
return true;
|
72
|
-
}
|
73
53
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
this.expect(PostScriptTokenTypes.LBRACE);
|
81
|
-
this.parseBlock();
|
82
|
-
this.expect(PostScriptTokenTypes.RBRACE);
|
83
|
-
return this.operators;
|
54
|
+
return false;
|
55
|
+
}
|
56
|
+
|
57
|
+
expect(type) {
|
58
|
+
if (this.accept(type)) {
|
59
|
+
return true;
|
84
60
|
}
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
61
|
+
|
62
|
+
throw new _util.FormatError(`Unexpected symbol: found ${this.token.type} expected ${type}.`);
|
63
|
+
}
|
64
|
+
|
65
|
+
parse() {
|
66
|
+
this.nextToken();
|
67
|
+
this.expect(PostScriptTokenTypes.LBRACE);
|
68
|
+
this.parseBlock();
|
69
|
+
this.expect(PostScriptTokenTypes.RBRACE);
|
70
|
+
return this.operators;
|
71
|
+
}
|
72
|
+
|
73
|
+
parseBlock() {
|
74
|
+
while (true) {
|
75
|
+
if (this.accept(PostScriptTokenTypes.NUMBER)) {
|
76
|
+
this.operators.push(this.prev.value);
|
77
|
+
} else if (this.accept(PostScriptTokenTypes.OPERATOR)) {
|
78
|
+
this.operators.push(this.prev.value);
|
79
|
+
} else if (this.accept(PostScriptTokenTypes.LBRACE)) {
|
80
|
+
this.parseCondition();
|
81
|
+
} else {
|
82
|
+
return;
|
98
83
|
}
|
99
84
|
}
|
100
|
-
}
|
101
|
-
|
102
|
-
|
103
|
-
|
85
|
+
}
|
86
|
+
|
87
|
+
parseCondition() {
|
88
|
+
const conditionLocation = this.operators.length;
|
89
|
+
this.operators.push(null, null);
|
90
|
+
this.parseBlock();
|
91
|
+
this.expect(PostScriptTokenTypes.RBRACE);
|
92
|
+
|
93
|
+
if (this.accept(PostScriptTokenTypes.IF)) {
|
94
|
+
this.operators[conditionLocation] = this.operators.length;
|
95
|
+
this.operators[conditionLocation + 1] = "jz";
|
96
|
+
} else if (this.accept(PostScriptTokenTypes.LBRACE)) {
|
97
|
+
const jumpLocation = this.operators.length;
|
104
98
|
this.operators.push(null, null);
|
99
|
+
const endOfTrue = this.operators.length;
|
105
100
|
this.parseBlock();
|
106
101
|
this.expect(PostScriptTokenTypes.RBRACE);
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
var endOfTrue = this.operators.length;
|
115
|
-
this.parseBlock();
|
116
|
-
this.expect(PostScriptTokenTypes.RBRACE);
|
117
|
-
this.expect(PostScriptTokenTypes.IFELSE);
|
118
|
-
this.operators[jumpLocation] = this.operators.length;
|
119
|
-
this.operators[jumpLocation + 1] = 'j';
|
120
|
-
this.operators[conditionLocation] = endOfTrue;
|
121
|
-
this.operators[conditionLocation + 1] = 'jz';
|
122
|
-
} else {
|
123
|
-
throw new _util.FormatError('PS Function: error parsing conditional.');
|
124
|
-
}
|
102
|
+
this.expect(PostScriptTokenTypes.IFELSE);
|
103
|
+
this.operators[jumpLocation] = this.operators.length;
|
104
|
+
this.operators[jumpLocation + 1] = "j";
|
105
|
+
this.operators[conditionLocation] = endOfTrue;
|
106
|
+
this.operators[conditionLocation + 1] = "jz";
|
107
|
+
} else {
|
108
|
+
throw new _util.FormatError("PS Function: error parsing conditional.");
|
125
109
|
}
|
126
|
-
}
|
110
|
+
}
|
127
111
|
|
128
|
-
|
129
|
-
}();
|
112
|
+
}
|
130
113
|
|
131
114
|
exports.PostScriptParser = PostScriptParser;
|
132
|
-
|
115
|
+
const PostScriptTokenTypes = {
|
133
116
|
LBRACE: 0,
|
134
117
|
RBRACE: 1,
|
135
118
|
NUMBER: 2,
|
@@ -138,171 +121,149 @@ var PostScriptTokenTypes = {
|
|
138
121
|
IFELSE: 5
|
139
122
|
};
|
140
123
|
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
var PostScriptToken =
|
145
|
-
/*#__PURE__*/
|
146
|
-
function () {
|
147
|
-
function PostScriptToken(type, value) {
|
148
|
-
_classCallCheck(this, PostScriptToken);
|
124
|
+
const PostScriptToken = function PostScriptTokenClosure() {
|
125
|
+
const opCache = Object.create(null);
|
149
126
|
|
127
|
+
class PostScriptToken {
|
128
|
+
constructor(type, value) {
|
150
129
|
this.type = type;
|
151
130
|
this.value = value;
|
152
131
|
}
|
153
132
|
|
154
|
-
|
155
|
-
|
156
|
-
value: function getOperator(op) {
|
157
|
-
var opValue = opCache[op];
|
133
|
+
static getOperator(op) {
|
134
|
+
const opValue = opCache[op];
|
158
135
|
|
159
|
-
|
160
|
-
|
161
|
-
}
|
162
|
-
|
163
|
-
return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op);
|
164
|
-
}
|
165
|
-
}, {
|
166
|
-
key: "LBRACE",
|
167
|
-
get: function get() {
|
168
|
-
return (0, _util.shadow)(this, 'LBRACE', new PostScriptToken(PostScriptTokenTypes.LBRACE, '{'));
|
169
|
-
}
|
170
|
-
}, {
|
171
|
-
key: "RBRACE",
|
172
|
-
get: function get() {
|
173
|
-
return (0, _util.shadow)(this, 'RBRACE', new PostScriptToken(PostScriptTokenTypes.RBRACE, '}'));
|
174
|
-
}
|
175
|
-
}, {
|
176
|
-
key: "IF",
|
177
|
-
get: function get() {
|
178
|
-
return (0, _util.shadow)(this, 'IF', new PostScriptToken(PostScriptTokenTypes.IF, 'IF'));
|
136
|
+
if (opValue) {
|
137
|
+
return opValue;
|
179
138
|
}
|
180
|
-
}, {
|
181
|
-
key: "IFELSE",
|
182
|
-
get: function get() {
|
183
|
-
return (0, _util.shadow)(this, 'IFELSE', new PostScriptToken(PostScriptTokenTypes.IFELSE, 'IFELSE'));
|
184
|
-
}
|
185
|
-
}]);
|
186
139
|
|
187
|
-
|
188
|
-
|
140
|
+
return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op);
|
141
|
+
}
|
142
|
+
|
143
|
+
static get LBRACE() {
|
144
|
+
return (0, _util.shadow)(this, "LBRACE", new PostScriptToken(PostScriptTokenTypes.LBRACE, "{"));
|
145
|
+
}
|
146
|
+
|
147
|
+
static get RBRACE() {
|
148
|
+
return (0, _util.shadow)(this, "RBRACE", new PostScriptToken(PostScriptTokenTypes.RBRACE, "}"));
|
149
|
+
}
|
150
|
+
|
151
|
+
static get IF() {
|
152
|
+
return (0, _util.shadow)(this, "IF", new PostScriptToken(PostScriptTokenTypes.IF, "IF"));
|
153
|
+
}
|
154
|
+
|
155
|
+
static get IFELSE() {
|
156
|
+
return (0, _util.shadow)(this, "IFELSE", new PostScriptToken(PostScriptTokenTypes.IFELSE, "IFELSE"));
|
157
|
+
}
|
158
|
+
|
159
|
+
}
|
189
160
|
|
190
161
|
return PostScriptToken;
|
191
162
|
}();
|
192
163
|
|
193
|
-
|
194
|
-
|
195
|
-
function () {
|
196
|
-
function PostScriptLexer(stream) {
|
197
|
-
_classCallCheck(this, PostScriptLexer);
|
198
|
-
|
164
|
+
class PostScriptLexer {
|
165
|
+
constructor(stream) {
|
199
166
|
this.stream = stream;
|
200
167
|
this.nextChar();
|
201
168
|
this.strBuf = [];
|
202
169
|
}
|
203
170
|
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
return this.currentChar = this.stream.getByte();
|
208
|
-
}
|
209
|
-
}, {
|
210
|
-
key: "getToken",
|
211
|
-
value: function getToken() {
|
212
|
-
var comment = false;
|
213
|
-
var ch = this.currentChar;
|
214
|
-
|
215
|
-
while (true) {
|
216
|
-
if (ch < 0) {
|
217
|
-
return _primitives.EOF;
|
218
|
-
}
|
171
|
+
nextChar() {
|
172
|
+
return this.currentChar = this.stream.getByte();
|
173
|
+
}
|
219
174
|
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
}
|
224
|
-
} else if (ch === 0x25) {
|
225
|
-
comment = true;
|
226
|
-
} else if (!(0, _util.isSpace)(ch)) {
|
227
|
-
break;
|
228
|
-
}
|
175
|
+
getToken() {
|
176
|
+
let comment = false;
|
177
|
+
let ch = this.currentChar;
|
229
178
|
|
230
|
-
|
179
|
+
while (true) {
|
180
|
+
if (ch < 0) {
|
181
|
+
return _primitives.EOF;
|
231
182
|
}
|
232
183
|
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
case 0x37:
|
242
|
-
case 0x38:
|
243
|
-
case 0x39:
|
244
|
-
case 0x2B:
|
245
|
-
case 0x2D:
|
246
|
-
case 0x2E:
|
247
|
-
return new PostScriptToken(PostScriptTokenTypes.NUMBER, this.getNumber());
|
248
|
-
|
249
|
-
case 0x7B:
|
250
|
-
this.nextChar();
|
251
|
-
return PostScriptToken.LBRACE;
|
252
|
-
|
253
|
-
case 0x7D:
|
254
|
-
this.nextChar();
|
255
|
-
return PostScriptToken.RBRACE;
|
184
|
+
if (comment) {
|
185
|
+
if (ch === 0x0a || ch === 0x0d) {
|
186
|
+
comment = false;
|
187
|
+
}
|
188
|
+
} else if (ch === 0x25) {
|
189
|
+
comment = true;
|
190
|
+
} else if (!(0, _core_utils.isWhiteSpace)(ch)) {
|
191
|
+
break;
|
256
192
|
}
|
257
193
|
|
258
|
-
|
259
|
-
|
260
|
-
strBuf[0] = String.fromCharCode(ch);
|
194
|
+
ch = this.nextChar();
|
195
|
+
}
|
261
196
|
|
262
|
-
|
263
|
-
|
264
|
-
|
197
|
+
switch (ch | 0) {
|
198
|
+
case 0x30:
|
199
|
+
case 0x31:
|
200
|
+
case 0x32:
|
201
|
+
case 0x33:
|
202
|
+
case 0x34:
|
203
|
+
case 0x35:
|
204
|
+
case 0x36:
|
205
|
+
case 0x37:
|
206
|
+
case 0x38:
|
207
|
+
case 0x39:
|
208
|
+
case 0x2b:
|
209
|
+
case 0x2d:
|
210
|
+
case 0x2e:
|
211
|
+
return new PostScriptToken(PostScriptTokenTypes.NUMBER, this.getNumber());
|
212
|
+
|
213
|
+
case 0x7b:
|
214
|
+
this.nextChar();
|
215
|
+
return PostScriptToken.LBRACE;
|
216
|
+
|
217
|
+
case 0x7d:
|
218
|
+
this.nextChar();
|
219
|
+
return PostScriptToken.RBRACE;
|
220
|
+
}
|
265
221
|
|
266
|
-
|
222
|
+
const strBuf = this.strBuf;
|
223
|
+
strBuf.length = 0;
|
224
|
+
strBuf[0] = String.fromCharCode(ch);
|
267
225
|
|
268
|
-
|
269
|
-
|
270
|
-
|
226
|
+
while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5a || ch >= 0x61 && ch <= 0x7a)) {
|
227
|
+
strBuf.push(String.fromCharCode(ch));
|
228
|
+
}
|
271
229
|
|
272
|
-
|
273
|
-
return PostScriptToken.IFELSE;
|
230
|
+
const str = strBuf.join("");
|
274
231
|
|
275
|
-
|
276
|
-
|
277
|
-
|
232
|
+
switch (str.toLowerCase()) {
|
233
|
+
case "if":
|
234
|
+
return PostScriptToken.IF;
|
235
|
+
|
236
|
+
case "ifelse":
|
237
|
+
return PostScriptToken.IFELSE;
|
238
|
+
|
239
|
+
default:
|
240
|
+
return PostScriptToken.getOperator(str);
|
278
241
|
}
|
279
|
-
}
|
280
|
-
key: "getNumber",
|
281
|
-
value: function getNumber() {
|
282
|
-
var ch = this.currentChar;
|
283
|
-
var strBuf = this.strBuf;
|
284
|
-
strBuf.length = 0;
|
285
|
-
strBuf[0] = String.fromCharCode(ch);
|
286
|
-
|
287
|
-
while ((ch = this.nextChar()) >= 0) {
|
288
|
-
if (ch >= 0x30 && ch <= 0x39 || ch === 0x2D || ch === 0x2E) {
|
289
|
-
strBuf.push(String.fromCharCode(ch));
|
290
|
-
} else {
|
291
|
-
break;
|
292
|
-
}
|
293
|
-
}
|
242
|
+
}
|
294
243
|
|
295
|
-
|
244
|
+
getNumber() {
|
245
|
+
let ch = this.currentChar;
|
246
|
+
const strBuf = this.strBuf;
|
247
|
+
strBuf.length = 0;
|
248
|
+
strBuf[0] = String.fromCharCode(ch);
|
296
249
|
|
297
|
-
|
298
|
-
|
250
|
+
while ((ch = this.nextChar()) >= 0) {
|
251
|
+
if (ch >= 0x30 && ch <= 0x39 || ch === 0x2d || ch === 0x2e) {
|
252
|
+
strBuf.push(String.fromCharCode(ch));
|
253
|
+
} else {
|
254
|
+
break;
|
299
255
|
}
|
256
|
+
}
|
300
257
|
|
301
|
-
|
258
|
+
const value = parseFloat(strBuf.join(""));
|
259
|
+
|
260
|
+
if (isNaN(value)) {
|
261
|
+
throw new _util.FormatError(`Invalid floating point number: ${value}`);
|
302
262
|
}
|
303
|
-
}]);
|
304
263
|
|
305
|
-
|
306
|
-
}
|
264
|
+
return value;
|
265
|
+
}
|
266
|
+
|
267
|
+
}
|
307
268
|
|
308
269
|
exports.PostScriptLexer = PostScriptLexer;
|