From 26b4c5c4e99f7a7f4206a9ac0aac8a39801cec68 Mon Sep 17 00:00:00 2001 From: iamBadgers Date: Tue, 11 Jun 2024 16:46:12 -0700 Subject: [PATCH] Tweak the filter tokenizer --- backend/src/tokenizer.ts | 13 +++++++------ frontend/src/vues/CharacterList.vue | 5 +++-- frontend/src/vues/GameList.vue | 8 +------- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/backend/src/tokenizer.ts b/backend/src/tokenizer.ts index e29817e..5a4fe83 100644 --- a/backend/src/tokenizer.ts +++ b/backend/src/tokenizer.ts @@ -52,7 +52,7 @@ export class OrderByParser { const openGroupRegex = /\(/ const closeGroupRegex = /\)/ const conjunctinoRegex = /AND|OR/ -const equalityRegex = /([a-zA-Z]+)\s?(=|!=|<|>|<=|>=|:)\s?([a-zA-Z'"\d]+)/ +const equalityRegex = /([a-zA-Z]+)\s?(=|!=|<|>|<=|>=|:)\s?([\d]+)/ const stringEqualityRegex = /([a-zA-Z]+)\s?(=|!=|<|>|<=|>=|:)\s?\"([a-zA-Z'"\d\s]*)\"/ const spacerRegex = /\s/ @@ -86,17 +86,18 @@ export class FilterParser { ctx.accept('conjunction', m[0]) }) + this.lexer.rule(stringEqualityRegex, (ctx, m) => { + ctx.accept('column', m[1]) + ctx.accept('opperator', m[2]) + ctx.accept('value', m[3]) + }) + this.lexer.rule(equalityRegex, (ctx, m) => { ctx.accept('column', m[1]) ctx.accept('opperator', m[2]) ctx.accept('value', m[3]) }) - this.lexer.rule(stringEqualityRegex, (ctx, m) => { - ctx.accept('column', m[1]) - ctx.accept('opperator', m[2]) - ctx.accept('value', m[3]) - }) this.lexer.rule(spacerRegex, (ctx, m) => { ctx.ignore() diff --git a/frontend/src/vues/CharacterList.vue b/frontend/src/vues/CharacterList.vue index 33a08b7..a5aac61 100644 --- a/frontend/src/vues/CharacterList.vue +++ b/frontend/src/vues/CharacterList.vue @@ -18,7 +18,7 @@ {{ item.id }}