diff --git a/CHANGELOG.md b/CHANGELOG.md index 8942e49f07388e22cf4c729b580b930a8748c689..cc5e5b646d987ef05549aea0f9528bc7a2056aaa 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 99c9879de7a772c6032decc51486fe7485d869e5..eba7f773a7e83360671d80f0bc3dde54e72ff625 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 d44674b29d5c35fab2db9f4a8395e064219b79c9..cf16baef48b5be4af25522fcf9075710a0a835a3 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))+