aboutsummaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2020-10-27WIP: Add statement filteringDavid Robillard2-0/+165
2020-10-27Add support for parsing variablesDavid Robillard7-7/+90
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 Robillard1-0/+2
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 Robillard3-4/+289
2020-10-27Make serd_env_expand() always return a node if it is not relativeDavid Robillard1-10/+20
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 Robillard1-1/+4
2020-10-27Make const Env functions tolerant of NULLDavid Robillard1-1/+9
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 Robillard4-51/+81
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-27Add precise floating point parsingDavid Robillard2-4/+182
2020-10-27Separate decimal parsing from floating point conversionDavid Robillard1-40/+126
2020-10-27Add support for xsd:double and xsd:floatDavid Robillard2-0/+83
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 Robillard3-58/+337
2020-10-27Factor out decimal digit generationDavid Robillard3-51/+72
2020-10-27Add minimal big integer implementationDavid Robillard3-0/+741
This is needed for floating point decimal conversion.
2020-10-27Add minimal soft floating point implementationDavid Robillard3-1/+228
2020-10-27Add IEEE floating point utility headerDavid Robillard1-0/+55
2020-10-27Add faster decimal digit counting functionDavid Robillard3-1/+53
2020-10-27Move MIN macro to int_math.hDavid Robillard12-18/+15
2020-10-27Add integer and bit math utilitiesDavid Robillard2-0/+129
2020-10-27Add validation to command line interfaceDavid Robillard1-1/+11
2020-10-27Add support for reading multiple files at onceDavid Robillard1-34/+90
2020-10-27Add empty syntax type for suppressing outputDavid Robillard3-10/+21
2020-10-27Improve add and chop prefix functions when given empty stringsDavid Robillard2-8/+10
2020-10-27Simplify handling of input string argumentsDavid Robillard1-10/+12
2020-10-27Add input base URI optionDavid Robillard1-5/+9
2020-10-27Replace serd_reader_set_strict() with SerdReaderFlagsDavid Robillard3-16/+12
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 Robillard3-173/+228
2020-10-27Align nodes with posix_memalign if possibleDavid Robillard9-28/+80
2020-10-27Add support for writing terse collectionsDavid Robillard1-12/+23
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
2020-10-27Simplify internal writer context APIDavid Robillard1-21/+17
2020-10-27Strengthen writer statement preconditionsDavid Robillard1-1/+3
2020-10-27Add option for writing terse output without newlinesDavid Robillard2-27/+29
2020-10-27Factor out writing top level separatorDavid Robillard1-6/+10
2020-10-27Rename writer flags for consistency with enum typeDavid Robillard2-5/+5
2020-10-27Support reading lone lists in lax modeDavid Robillard1-1/+1
This allows parsing documents like "(42) ."
2020-10-27Simplify writer statement validity checkingDavid Robillard1-3/+2