ekrich / ekrich/exip

Complete enumeration handling

Open
#75 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.