Commit Graph

316 Commits

Author SHA1 Message Date
Emery Hemingway fd498c6457 Add a sugar module 2024-04-22 13:22:01 +02:00
Emery Hemingway a83ca8b31c Cleanup examples 2024-04-22 13:21:41 +02:00
Emery Hemingway ea698bedcc Add integer converter 2024-04-22 11:24:35 +02:00
Emery Hemingway 8d48ae60e9 Make compatible with nimNoLibc 2024-04-22 11:07:52 +02:00
Emery Hemingway 9ae435a83c Add text parsing to BufferedDecoder 2024-03-12 12:26:13 +00:00
Emery Hemingway 375cc992fd Remove gcsafe annotations 2024-03-12 12:25:52 +00:00
Emery Hemingway 2825bceecf preserves_schema_nim: collect imports of simple compounds 2024-02-08 14:24:01 +00:00
Emery Hemingway 9134fecb36 Replace #! notation with #: 2024-02-08 14:24:01 +00:00
Emery Hemingway c0a8a1a76c Merge doubles into floats 2024-02-08 14:23:47 +00:00
Emery Hemingway 5e1e97e4df toPreserves: unpack preservesTupleTail on records 2024-01-18 22:24:08 +02:00
Emery Hemingway ba0857c32b BufferedDecoder: return Option[Value] from decode 2024-01-16 21:01:25 +02:00
Emery Hemingway aa5c7f4683 preserves_schema_nim: embedded literals are not literals 2024-01-14 12:26:39 +02:00
Emery Hemingway a01ba8c96d preserves_schema_nim: remove dead code 2024-01-08 12:50:13 +02:00
Emery Hemingway 8b2407b1a2 preserves_schema_nim: attach embed pragmas inside Or objects 2024-01-08 12:37:03 +02:00
Emery Hemingway d2017228fb Embed values for types with {.preservesEmbedded.} 2024-01-08 12:37:03 +02:00
Emery Hemingway 79ea25d1be Make mapEmbeds more general 2024-01-08 12:36:29 +02:00
Emery Hemingway 7b17f935ea Tweak to and fromPresrves for EmbeddedRef 2024-01-08 12:36:29 +02:00
Emery Hemingway 416af8ff5f preserves_schema_nim: represent embeds with EmbeddedRef
Use EmbeddedRef for embbeded values, unless a schema does not name
an embedded type.
2024-01-08 12:36:29 +02:00
Emery Hemingway 74da21f3d5 preserves_schema_nim: do not create types for simple fields 2024-01-08 12:36:29 +02:00
Emery Hemingway abcdfa01cd preserves_schema_nim: remove dead code 2024-01-08 12:36:29 +02:00
Emery Hemingway 93590f2c07 Condense contract and expand to mapEmbeds 2024-01-08 12:36:29 +02:00
Emery Hemingway 0acd369262 Option support in toPreserves and fromPreserves 2024-01-08 12:36:29 +02:00
Emery Hemingway 501d6cc012 preserves_schema_nim: merged And patterns with optionals 2024-01-08 12:36:29 +02:00
Emery Hemingway a52e84dd70 Step by varargs[Value, toPreserves] 2024-01-08 12:36:29 +02:00
Emery Hemingway a83c9ad3a4 $: do not write #! twice 2024-01-08 12:36:29 +02:00
Emery Hemingway b67e6f089b preserves_schema_nim: always mark embedded fields 2024-01-08 12:36:29 +02:00
Emery Hemingway 25d42f9498 Add toRecord sugar 2024-01-08 12:36:29 +02:00
Emery Hemingway 97ab7ce070 preserves_schema_nim: better recursive type detection 2024-01-08 12:36:29 +02:00
Emery Hemingway c01e587e5b preserves_schema_nim: use Table for And types 2024-01-08 12:36:29 +02:00
Emery Hemingway 43498a4b94 preserves_schema_nim: rearrange some internal parameters 2024-01-08 12:36:29 +02:00
Emery Hemingway a5cc0a431d preserves_schema_nim: remove type parameterization 2024-01-08 12:36:29 +02:00
Emery Hemingway 10fc78172e Add `&` operator 2024-01-08 12:36:29 +02:00
Emery Hemingway 867d25afee Remodel Preserves[E] into Value
Using a parameterized Preserve[E] type is too much hassle. Replace
with a Value type with an embedded field of "ref RootObj".
2024-01-08 12:36:29 +02:00
Emery Hemingway 85cef2e1d2 Generate dot files only with Tup 2024-01-01 17:32:53 +02:00
Emery Hemingway c2bce1404a Add Atom type
Type for holding constant Preserves values create at compile-time.
This is a prerequisite for making embedded values "ref RootObj".
It is also requesite for making Value a ref object.
2024-01-01 17:32:52 +02:00
Emery Hemingway 441bd253b0 Schema: convert Ref alternates to NamedPatterns 2024-01-01 17:32:52 +02:00
Emery Hemingway 3606ce5459 Schema: parse the embeddedType 2024-01-01 17:32:52 +02:00
Emery Hemingway b165c64475 Parse more schema 2024-01-01 17:32:52 +02:00
Emery Hemingway 18f8f8e6b2 Schema: parse annotations on patterns, parse line comments 2024-01-01 17:32:52 +02:00
Emery Hemingway d146b213b4 Add Value alias to Preserve[void] 2024-01-01 17:32:52 +02:00
Emery Hemingway 60938612c5 Rename schemac compiler to preserves-schemac 2024-01-01 17:32:52 +02:00
Emery Hemingway b7224d7a4a Reorder PEG 2024-01-01 17:32:52 +02:00
Emery Hemingway f28c1a4c83 Validate strings as UTF-8 during parsing 2024-01-01 17:32:52 +02:00
Emery Hemingway 12bc024992 Cleanup text encoding 2024-01-01 17:32:52 +02:00
Emery Hemingway d1e3b00134 Allow leading zeros when parsing numbers 2024-01-01 17:32:52 +02:00
Emery Hemingway d3a236bb92 UTF-16 surrogate pair parsing 2024-01-01 17:32:52 +02:00
Emery Hemingway 8a70cd0987 Fix float parsing 2024-01-01 17:32:52 +02:00
Emery Hemingway e43371da87 Adjust UTF-16 parsing 2024-01-01 17:32:52 +02:00
Emery Hemingway 44f98163d9 Unify string and symbol escaping 2024-01-01 17:32:52 +02:00
Emery Hemingway 32ed35adce Unescape symbols during parse 2024-01-01 17:32:52 +02:00