Skip to content

renamed text parser package to cql2text#3

Merged
exergy-dev merged 1 commit into
masterfrom
naming
Sep 30, 2025
Merged

renamed text parser package to cql2text#3
exergy-dev merged 1 commit into
masterfrom
naming

Conversation

@exergy-dev
Copy link
Copy Markdown
Owner

No description provided.

@exergy-dev exergy-dev merged commit f5feb3a into master Sep 30, 2025
1 check passed
exergy-dev added a commit that referenced this pull request May 4, 2026
#2 — JSON op names are looked up case-insensitively against the
Operator enum. Replaced the strict-membership knownOps set with a
canonicalOps map keyed on the lowercased form, yielding the canonical
Operator constant. Crucially, OpIsNull's canonical value is camelCase
('isNull'), so the lookup must yield the canonical form, not the
lowercased input — encoders need the canonical to emit correctly.
Regression test (TestParseOpCanonicalCasePreserved) pins this for the
four input casings.

#3 — Unknown JSON op strings fall back to *FunctionCall{Name, Args}
instead of erroring. Args structure is still validated (must be a JSON
array). Function names are case-preserved (only operator names are
case-insensitive).

#4 (JSON side) — interval endpoints may be {"property":"<name>"}
objects, parsed into *PropertyRef and routed through the IntervalLit
endpoint slot (now possible after step 0's AST contract change). Encoder
emits property endpoints as their JSON object form. Mixed literal/
property/unbounded combinations round-trip byte-equal.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant