From 2e604c65b538d2ef85d178d77cee579e458dc304 Mon Sep 17 00:00:00 2001 From: Nikolay Kostyurin Date: Tue, 26 Dec 2023 11:21:25 +0200 Subject: [PATCH] fix(parser): tests --- benchmark/test.js | 0 packages/bbob-core/src/utils.ts | 4 ++-- packages/bbob-parser/src/Token.ts | 3 +-- packages/bbob-parser/src/parse.ts | 27 ++++++++------------------- 4 files changed, 11 insertions(+), 23 deletions(-) delete mode 100644 benchmark/test.js diff --git a/benchmark/test.js b/benchmark/test.js deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/bbob-core/src/utils.ts b/packages/bbob-core/src/utils.ts index d01e8bbd..d271e780 100644 --- a/packages/bbob-core/src/utils.ts +++ b/packages/bbob-core/src/utils.ts @@ -11,8 +11,8 @@ export function iterate | Content>(t: Ite for (let idx = 0; idx < tree.length; idx++) { tree[idx] = iterate(cb(tree[idx]), cb); } - } else if (tree && isObj(tree) && 'content' in tree) { - iterate(tree.content, cb); + } else if (isObj(tree) && 'content' in tree) { + iterate(tree.content, cb); } return tree; diff --git a/packages/bbob-parser/src/Token.ts b/packages/bbob-parser/src/Token.ts index fb77d050..43f3b02c 100644 --- a/packages/bbob-parser/src/Token.ts +++ b/packages/bbob-parser/src/Token.ts @@ -105,8 +105,7 @@ class Token { } isEmpty() { - // eslint-disable-next-line no-restricted-globals - return isNaN(this[TOKEN_TYPE_ID]); + return this[TOKEN_TYPE_ID] === 0 || isNaN(this[TOKEN_TYPE_ID]); } isText() { diff --git a/packages/bbob-parser/src/parse.ts b/packages/bbob-parser/src/parse.ts index 5270d9b2..e5a68dd4 100644 --- a/packages/bbob-parser/src/parse.ts +++ b/packages/bbob-parser/src/parse.ts @@ -28,42 +28,31 @@ export interface ParseOptions { } class NodeList { - private m: Map - private c: number + private n: Value[] constructor() { - this.m = new Map() - this.c = 0 + this.n = [] } last() { - const node = this.m.get(this.c) - - if (node) { - return node + if (Array.isArray(this.n) && this.n.length > 0 && typeof this.n[this.n.length - 1] !== 'undefined') { + return this.n[this.n.length - 1] } return null } flush() { - if (this.c > 0) { - const item = this.m.get(this.c) - this.m.delete(this.c) - this.c = this.c - 1 - return item - } - - return false + return this.n.length ? this.n.pop() : false } push(value: Value) { - this.c = this.c + 1; - this.m.set(this.c, value) + this.n.push(value) } toArray() { - return [...this.m.values()] + console.log('toArray', this.n); + return this.n } }