aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2020-10-27Use a manual type-safe stack in SerdWriterDavid Robillard2-29/+27
This fixes alignment issues on ARM. Since this stack is just for WriteContext which has a fixed size, using SerdStack here just made things more confusing anyway.
2020-10-27Emit reader errors on stack overflows in string literalsDavid Robillard1-1/+9
2020-10-27Simplify ByteSource implementationDavid Robillard2-32/+27
2020-10-27WIP: Add statement filteringDavid Robillard4-0/+196
2020-10-27Add support for parsing variablesDavid Robillard19-14/+186
This adds a reader flag and serdi option for extending a syntax with support for SPARQL-like variables, for storing things like patterns or simple queries.
2020-10-27Fix crash when expanding empty URI prefixesDavid Robillard1-1/+1
2020-10-27Fix memory leak in writer when caller doesn't clean up the stackDavid Robillard1-0/+5
2020-10-27Avoid use of ctype.h macros entirelyDavid Robillard2-4/+15
Some of these cause warnings, and should never have been used in the first place since they depend on locale.
2020-10-27Improve writer packingDavid Robillard1-1/+1
2020-10-27Normalise away rdf:langString datatypeDavid Robillard3-0/+5
Depending on how you read the specifications, a rdf:langString isn't identical to an xsd:string, but an rdf:langString must have a non-empty language tag so having this datatype doesn't really make any sense anyway.
2020-10-27Add support for basic literal normalisationDavid Robillard10-5/+483
2020-10-27Make serd_env_expand() always return a node if it is not relativeDavid Robillard3-46/+176
The old interface was potentially faster, because it avoided unnecessary copies, but was annoying to use and problematic because nodes that don't need expansion were indistinguishable from nodes that failed to expand (like those that use undefined namespace prefixes). In the grand scheme of things, the potential performance improvement isn't worth it, and unexpected unexpanded nodes causes deep nightmarish problems, so just make serd_env_expand() copy the input if it doesn't need expansion to make the API simpler and safer.
2020-10-27Make it possible to allocate nodes with CURIE datatypesDavid Robillard3-9/+15
2020-10-27Remove double allocation in serd_env_set_prefix()David Robillard1-9/+5
2020-10-27Remove double allocations in serd_env_expand()David Robillard3-33/+116
2020-10-27Move local URI utility functionsDavid Robillard1-26/+26
2020-10-27Split up node expansion codeDavid Robillard1-30/+53
2020-10-27Clean up Env tests and behaviourDavid Robillard2-78/+188
2020-10-27Make const Env functions tolerant of NULLDavid Robillard2-1/+13
This is convenient in places where you don't necessarily need an Env, since in this case these methods work the same as if with an empty Env.
2020-10-27Allow setting the base URI of an Env to NULLDavid Robillard1-1/+5
2020-10-27Replace multiple stream callbacks with SerdEventDavid Robillard9-104/+194
This makes plumbing easier since everything goes through the same "stream" and only one callback is required to handling everything. It's also more easily extensible in case more event types need to be added in the future.
2020-10-27Remove old floating point testsDavid Robillard1-96/+0
2020-10-27Add precise floating point parsingDavid Robillard5-26/+621
2020-10-27Separate decimal parsing from floating point conversionDavid Robillard2-42/+126
2020-10-27Add support for xsd:double and xsd:floatDavid Robillard4-0/+114
These can be used to serialise a float or double in the shortest normalised form that can be read back in to the exact same floating point value.
2020-10-27Add precise decimal digit generationDavid Robillard6-65/+400
2020-10-27Factor out decimal digit generationDavid Robillard3-51/+72
2020-10-27Add minimal big integer implementationDavid Robillard5-0/+1674
This is needed for floating point decimal conversion.
2020-10-27Add minimal soft floating point implementationDavid Robillard6-1/+408
2020-10-27Add IEEE floating point utility headerDavid Robillard1-0/+55
2020-10-27Add faster decimal digit counting functionDavid Robillard5-1/+112
2020-10-27Move MIN macro to int_math.hDavid Robillard13-19/+17
2020-10-27Add integer and bit math utilitiesDavid Robillard4-0/+205
2020-10-27Add validation to command line interfaceDavid Robillard39-1/+2000
2020-10-27Add support for reading multiple files at onceDavid Robillard6-37/+112
2020-10-27Suppress simple test outputDavid Robillard1-1/+1
2020-10-27Add empty syntax type for suppressing outputDavid Robillard6-19/+39
2020-10-27Improve add and chop prefix functions when given empty stringsDavid Robillard2-8/+10
2020-10-27Simplify handling of input string argumentsDavid Robillard3-11/+14
2020-10-27Add input base URI optionDavid Robillard3-11/+23
2020-10-27Add test for failure while writing a list from a modelDavid Robillard1-0/+68
2020-10-27Replace serd_reader_set_strict() with SerdReaderFlagsDavid Robillard7-35/+31
This makes reader options extensible and should hopefully prevent the need for grafting on more similar functions in the future.
2020-10-27Report writer errors and add strict write modeDavid Robillard7-177/+274
2020-10-27Align nodes with posix_memalign if possibleDavid Robillard10-41/+95
2020-10-27Use C11 if possibleDavid Robillard2-1/+4
2020-10-27Add support for writing terse collectionsDavid Robillard10-18/+207
2020-10-27Tolerate lack of predicate when context is poppedDavid Robillard1-1/+2
2020-10-27Reset writer to empty when finished to avoid spurious blank linesDavid Robillard1-0/+1
2020-10-27Pass context flags to write_sep()David Robillard1-22/+24
2020-10-27Add initial flags to write contextDavid Robillard1-14/+22