Complete enumeration handling
- Dominant language
- C
- Stars
- 10
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
Currently we have the following `ELEMENT_ENUMERATION` implemented in `treeTableToGrammars:
VALUE_TYPE_STRING ✅
Works! - String enumerations are fully supported.
Line 1967-1973: VALUE_TYPE_NON_NEGATIVE_INT ✅
**What's NOT Implemented**
❌ VALUE_TYPE_BOOLEAN (line 1946)
❌ VALUE_TYPE_DATE_TIME, YEAR, DATE, MONTH, TIME
❌ VALUE_TYPE_DECIMAL
❌ VALUE_TYPE_FLOAT
❌ VALUE_TYPE_INTEGER
❌ VALUE_TYPE_SMALL_INTEGER
Why This Matters
Enumerations are an optimization in EXI - instead of sending the full string/number value, EXI sends a small index (0, 1, 2...). Without non-string enum support, schemas with typed enumerations will fail to compile.
Many schemas only use string enumerations, which work fine. But typed enumerations (common in technical schemas) will crash during grammar generation.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading the ELEMENT_ENUMERATION handling in treeTableToGrammars, especially VALUE_TYPE_BOOLEAN at line 1946 and the existing VALUE_TYPE_NON_NEGATIVE_INT handling around lines 1967-1973. Trace how string and non-negative integer enumerations are compiled, then extend the listed typed cases so schemas with boolean, date/time, decimal, float, integer, and small-integer enumerations compile without crashing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, xml
- Domain
- data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100