Commit Graph

304 Commits

Author SHA1 Message Date
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
Emery Hemingway c622d39c3f Parse require delimiters after bools, numbers, symbols 2024-01-01 17:32:52 +02:00
Emery Hemingway c9c231914b Looser symbol parsing 2024-01-01 17:32:52 +02:00
Emery Hemingway 10ceb9ec88 Allow float suffix of 'f' or 'F' 2024-01-01 17:32:52 +02:00
Emery Hemingway cf5efb7d86 Make NaN equal NaN 2024-01-01 17:32:52 +02:00
Emery Hemingway 75916ea0dd Convert awkard floats to hex 2024-01-01 17:32:52 +02:00
Emery Hemingway a2024f4111 Parsing: accept '+' prefix on numbers 2024-01-01 17:32:52 +02:00
Emery Hemingway d75191b480 Cleanup build system 2024-01-01 17:32:52 +02:00
Emery Hemingway cedf25d1c3 Split pkSignedInteger into pkRegister and pkBigInt 2024-01-01 17:32:50 +02:00
Emery Hemingway 37043a03bf Test against upstream samples 2023-12-25 10:08:10 +02:00
Emery Hemingway 558a1a862a PEG: tweak commas and symbols 2023-12-25 10:08:10 +02:00
Emery Hemingway dbe9f3566f Add raw floats and doubles to parser 2023-12-25 10:08:10 +02:00
Emery Hemingway 82631b1a01 Stop running nim doc 2023-12-25 10:08:10 +02:00