Commit 97b9aba
committed
feat(cql2-text): add array predicate support (A_EQUALS, A_CONTAINS, A_CONTAINEDBY, A_OVERLAPS)
- Add 'a_containedBy' key to ARRAY_PREDICATES_MAP in cql2.py to match the
camelCase used in CQL2-JSON (spec-compliant); the lowercase key is retained
for the text parser
- Add array_predicate rule to the CQL2-text grammar: A_EQUALS, A_CONTAINS,
A_CONTAINEDBY, A_OVERLAPS with two array_arg operands
- Inline empty_array and array as atom alternatives so LALR(1) can unambiguously
parse '(1, 2, 3)' vs '(x)' by lookahead on the comma after the first element
- Add binary_array_predicate, array, and empty_array transformer methods to
CQLTransformer; import ARRAY_PREDICATES_MAP from pygeofilter.cql2
- Add four tests: A_EQUALS/A_CONTAINS/A_OVERLAPS with a literal array and
A_EQUALS with an empty array1 parent f799198 commit 97b9aba
4 files changed
Lines changed: 42 additions & 1 deletion
File tree
- pygeofilter
- parsers/cql2_text
- tests/parsers/cql2_text
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| 59 | + | |
59 | 60 | | |
60 | 61 | | |
61 | 62 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| 64 | + | |
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
| |||
95 | 96 | | |
96 | 97 | | |
97 | 98 | | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
98 | 107 | | |
99 | 108 | | |
100 | 109 | | |
| |||
109 | 118 | | |
110 | 119 | | |
111 | 120 | | |
| 121 | + | |
| 122 | + | |
112 | 123 | | |
113 | 124 | | |
114 | 125 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| |||
124 | 124 | | |
125 | 125 | | |
126 | 126 | | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
127 | 136 | | |
128 | 137 | | |
129 | 138 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
477 | 477 | | |
478 | 478 | | |
479 | 479 | | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
0 commit comments