ion-js
ion-js copied to clipboard
User level support for manually writing symboltables.
Currently to avoid writing invalid ion manually written symbol tables are unsupported.
Adding support for this will involve:
- Implementing symbol token support.
- Machinery around recognizing outputted sids and adding them to their LST.
- Recognition for imports and adding those shared symbol tables from the catalog, and correctly indexing the LST based off of those offsets.
- Writers must support being provided with an optional Catalog. This is used to resolve shared symbol table imports declared by manually-written local symbol tables (currently writers have no support for catalog lookup).
- This new local symbol table should not be written out directly, as additional symbol tokens subsequently may be written within the same context, which would require symbols to be added to the table(binary).
- Additional unit testing around the many edge cases this functionality introduces. e.g. https://github.com/amzn/ion-c/blob/master/test/test_ion_symbol.cpp#L901