From 053e30b5e0b1ac62ee2a8568f14acbec6fb09c72 Mon Sep 17 00:00:00 2001 From: Daniel <d.hornung@indiscale.com> Date: Tue, 28 Feb 2023 12:11:46 +0100 Subject: [PATCH] FIX: CQL now treats 'WITH` and `WITH A` equivalently. For #192. --- CHANGELOG.md | 2 ++ src/main/java/org/caosdb/server/query/CQLLexer.g4 | 8 ++++---- src/main/java/org/caosdb/server/query/CQLParser.g4 | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8942e49f..cc5e5b64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed ### +- CQL now treats `WITH` and `WITH A` equivalently. This is for [#192](https://gitlab.com/caosdb/caosdb-server/-/issues/192). + ### Deprecated ### ### Removed ### diff --git a/src/main/java/org/caosdb/server/query/CQLLexer.g4 b/src/main/java/org/caosdb/server/query/CQLLexer.g4 index 99c9879d..eba7f773 100644 --- a/src/main/java/org/caosdb/server/query/CQLLexer.g4 +++ b/src/main/java/org/caosdb/server/query/CQLLexer.g4 @@ -277,10 +277,6 @@ NEGATION: ) WHITE_SPACE_f? ; -WITH: - [Ww][Ii][Tt][Hh] WHITE_SPACE_f? -; - THE: [Tt][Hh][Ee] WHITE_SPACE_f? ; @@ -309,6 +305,10 @@ ELSE: [Ee][Ll][Ss][Ee] WHITE_SPACE_f? ; +WITH_A: + [Ww][Ii][Tt][Hh] (WHITE_SPACE_f? A)? WHITE_SPACE_f? +; + WHERE: [Ww][Hh][Ee][Rr][Ee] WHITE_SPACE_f? ; diff --git a/src/main/java/org/caosdb/server/query/CQLParser.g4 b/src/main/java/org/caosdb/server/query/CQLParser.g4 index d44674b2..cf16baef 100644 --- a/src/main/java/org/caosdb/server/query/CQLParser.g4 +++ b/src/main/java/org/caosdb/server/query/CQLParser.g4 @@ -129,7 +129,7 @@ entity_filter returns [EntityFilterInterface filter] which_exp: WHICH (HAS_A (PROPERTY)?)? | HAS_A (PROPERTY)? - | WITH (A (PROPERTY)?)? + | WITH_A (PROPERTY)? | WHERE | DOT WHITE_SPACE? ; @@ -527,7 +527,7 @@ number_with_unit unit : - (~(WHITE_SPACE | WHICH | HAS_A | WITH | WHERE | DOT | AND | OR | RPAREN )) + (~(WHITE_SPACE | WHICH | HAS_A | WITH_A | WHERE | DOT | AND | OR | RPAREN )) (~(WHITE_SPACE))* | NUM SLASH (~(WHITE_SPACE))+ -- GitLab