From 468cdf2bdde84823b6caed78d54ac0202d452031 Mon Sep 17 00:00:00 2001 From: jokiefer Date: Tue, 24 Oct 2023 13:21:03 +0200 Subject: [PATCH] Update grammar.lark and test_parser.py --- pygeofilter/parsers/ecql/grammar.lark | 3 +++ tests/parsers/ecql/test_parser.py | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/pygeofilter/parsers/ecql/grammar.lark b/pygeofilter/parsers/ecql/grammar.lark index 0a9e7b9..16bc156 100644 --- a/pygeofilter/parsers/ecql/grammar.lark +++ b/pygeofilter/parsers/ecql/grammar.lark @@ -90,6 +90,7 @@ attribute: NAME | DOUBLE_QUOTED + | QUALIFIED_NAME ?literal: number | BOOLEAN @@ -113,6 +114,8 @@ BOOLEAN: ( "TRUE" | "FALSE" ) DOUBLE_QUOTED: "\"" /.*?/ "\"" SINGLE_QUOTED: "'" /.*?/ "'" +QUALIFIED_NAME: NAME ":" NAME + %import .wkt.ewkt_geometry %import .iso8601.DATETIME %import .iso8601.DURATION diff --git a/tests/parsers/ecql/test_parser.py b/tests/parsers/ecql/test_parser.py index 59b41a4..c6dbbc6 100644 --- a/tests/parsers/ecql/test_parser.py +++ b/tests/parsers/ecql/test_parser.py @@ -34,6 +34,14 @@ from pygeofilter.parsers.ecql import parse +def test_namespace_attribute_eq_literal(): + result = parse("ns:attr = 'A'") + assert result == ast.Equal( + ast.Attribute("ns:attr"), + "A", + ) + + def test_attribute_eq_literal(): result = parse("attr = 'A'") assert result == ast.Equal(