From 34a0d776b97d0d563e396a0c7b1ccaf39ad71ba1 Mon Sep 17 00:00:00 2001 From: BorysLevytskyi Date: Thu, 25 May 2023 13:44:10 +0200 Subject: [PATCH] Fix bug --- src/expression/expression.test.ts | 5 +++++ src/expression/expression.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/expression/expression.test.ts b/src/expression/expression.test.ts index def01d9..6239915 100644 --- a/src/expression/expression.test.ts +++ b/src/expression/expression.test.ts @@ -54,6 +54,11 @@ describe("expression parser", () => { var result = parser.parse("1|~2") as BitwiseOperation; expect(result.children.length).toBe(2); }); + + it("bug2", () => { + const result = parser.parse('0b0000000000000000001000010001011110000010100000001 & (0b0000000000000000001000010001011110000010100000001 >> 7)'); + expect(result).toBeNull(); + }) }); describe("comparison with nodejs engine", () => { diff --git a/src/expression/expression.ts b/src/expression/expression.ts index ba0ad5d..1d85c2b 100644 --- a/src/expression/expression.ts +++ b/src/expression/expression.ts @@ -84,7 +84,7 @@ class BitwiseOperationExpressionFactory implements IExpressionParserFactory { regex: RegExp; constructor() { - this.fullRegex = /^((<<|>>|>>>|\||\&|\^)?(~?-?([b,x,l,s,u,a-f,0-9]+)))+$/i; + this.fullRegex = /^[-,~,<,>,&,\^\|,b,x,l,s,u,a-f,0-9,\s]+$/i; this.regex = /(<<|>>|>>>|\||\&|\^)?(~?-?(?:[b,x,l,s,u,,a-f,0-9]+))/gi; }