aboutsummaryrefslogtreecommitdiff
path: root/node_modules/strtok3/lib/AbstractTokenizer.js
diff options
context:
space:
mode:
authorMinteck <freeziv.ytb@gmail.com>2021-03-07 18:29:17 +0100
committerMinteck <freeziv.ytb@gmail.com>2021-03-07 18:29:17 +0100
commit0f79e708bf07721b73ea41e5d341be08e8ea4dce (patch)
treef3c63cd6a9f4ef0b26f95eec6a031600232e80c8 /node_modules/strtok3/lib/AbstractTokenizer.js
downloadelectrode-0f79e708bf07721b73ea41e5d341be08e8ea4dce.tar.gz
electrode-0f79e708bf07721b73ea41e5d341be08e8ea4dce.tar.bz2
electrode-0f79e708bf07721b73ea41e5d341be08e8ea4dce.zip
Initial commit
Diffstat (limited to 'node_modules/strtok3/lib/AbstractTokenizer.js')
-rw-r--r--node_modules/strtok3/lib/AbstractTokenizer.js69
1 files changed, 69 insertions, 0 deletions
diff --git a/node_modules/strtok3/lib/AbstractTokenizer.js b/node_modules/strtok3/lib/AbstractTokenizer.js
new file mode 100644
index 0000000..d4d4dba
--- /dev/null
+++ b/node_modules/strtok3/lib/AbstractTokenizer.js
@@ -0,0 +1,69 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.AbstractTokenizer = void 0;
+const peek_readable_1 = require("peek-readable");
+/**
+ * Core tokenizer
+ */
+class AbstractTokenizer {
+ constructor(fileInfo) {
+ /**
+ * Tokenizer-stream position
+ */
+ this.position = 0;
+ this.numBuffer = Buffer.alloc(10);
+ this.fileInfo = fileInfo ? fileInfo : {};
+ }
+ /**
+ * Read a token from the tokenizer-stream
+ * @param token - The token to read
+ * @param position - If provided, the desired position in the tokenizer-stream
+ * @returns Promise with token data
+ */
+ async readToken(token, position) {
+ const buffer = Buffer.alloc(token.len);
+ const len = await this.readBuffer(buffer, { position });
+ if (len < token.len)
+ throw new peek_readable_1.EndOfStreamError();
+ return token.get(buffer, 0);
+ }
+ /**
+ * Peek a token from the tokenizer-stream.
+ * @param token - Token to peek from the tokenizer-stream.
+ * @param position - Offset where to begin reading within the file. If position is null, data will be read from the current file position.
+ * @returns Promise with token data
+ */
+ async peekToken(token, position = this.position) {
+ const buffer = Buffer.alloc(token.len);
+ const len = await this.peekBuffer(buffer, { position });
+ if (len < token.len)
+ throw new peek_readable_1.EndOfStreamError();
+ return token.get(buffer, 0);
+ }
+ /**
+ * Read a numeric token from the stream
+ * @param token - Numeric token
+ * @returns Promise with number
+ */
+ async readNumber(token) {
+ const len = await this.readBuffer(this.numBuffer, { length: token.len });
+ if (len < token.len)
+ throw new peek_readable_1.EndOfStreamError();
+ return token.get(this.numBuffer, 0);
+ }
+ /**
+ * Read a numeric token from the stream
+ * @param token - Numeric token
+ * @returns Promise with number
+ */
+ async peekNumber(token) {
+ const len = await this.peekBuffer(this.numBuffer, { length: token.len });
+ if (len < token.len)
+ throw new peek_readable_1.EndOfStreamError();
+ return token.get(this.numBuffer, 0);
+ }
+ async close() {
+ // empty
+ }
+}
+exports.AbstractTokenizer = AbstractTokenizer;