Emery Hemingway
9ae435a83c
Add text parsing to BufferedDecoder
2024-03-12 12:26:13 +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
ba0857c32b
BufferedDecoder: return Option[Value] from decode
2024-01-16 21:01:25 +02:00
Emery Hemingway
a83c9ad3a4
$: do not write #! twice
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
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
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
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
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
cedf25d1c3
Split pkSignedInteger into pkRegister and pkBigInt
2024-01-01 17:32:50 +02:00
Emery Hemingway
dbe9f3566f
Add raw floats and doubles to parser
2023-12-25 10:08:10 +02:00
Emery Hemingway
adadcc181a
Move some of preserves implementation to preserves/private
2023-12-25 10:08:03 +02:00
Emery Hemingway
b563de9ac4
Remove threads and gcsafe where parsing is used
2023-08-16 08:33:11 +01:00
Emery Hemingway
335dcd2987
Tweak type walking in private/macros
2023-07-23 08:26:35 +01:00
Emery Hemingway
6008b0ba25
Tidy imports
2023-07-20 23:17:41 +01:00
Emery Hemingway
c087294b23
schema: sort dictionary fields by key
...
Size of the value is a compelling alternative but cannot be
inferred at code generation time.
2023-06-11 21:35:28 +01:00
Emery Hemingway
adec7fd7ad
Rewrite tupfiles
2022-12-11 19:21:17 -06:00
Emery Hemingway
d5909e4df0
Schema: a collection of breaking changes
...
- Process all modules in a bundle simultanously so that it can be
determined if imported types are recursive or take a parameter
- Different rules for deciding when an object must be a ref
- Use Preserve[void] if there is no EmbededTypeName defined
- Put embeddeded types directly into other types without a
Preserve[E] container
2022-12-10 13:32:36 -06:00
Emery Hemingway
c04fc181c8
private/macros: keep walking through bracket expressions
2022-12-08 00:59:53 -06:00
Emery Hemingway
ded072c76c
More Tupfiles
2022-12-05 15:56:31 -06:00
Emery Hemingway
65195a5eb7
schemas: improve "include" parsing
2022-11-20 14:14:22 -06:00
Emery Hemingway
99a1cd4d15
Symbol escaping
2022-11-06 11:04:16 -06:00
Emery Hemingway
2d2df1f918
Parse past annotations
2022-11-02 13:58:37 -05:00
Emery Hemingway
489d6b31d5
Fix string escaping
2022-10-30 18:43:11 -05:00
Emery Hemingway
154ffb6cd8
Validate that set elements are unique during parse
2022-10-30 17:26:55 -05:00
Emery Hemingway
d0af002b4a
Validate that dict keys are unique during parse
2022-10-30 17:26:55 -05:00
Emery Hemingway
270e13b27b
Custom unescaping of byte-strings
2022-10-30 17:26:55 -05:00
Emery Hemingway
4ee41a7fce
Parser: allow whitespace in hex and base64
2022-10-30 17:10:26 -05:00
Emery Hemingway
aaf5e7ce39
Remove old imports of parse module
2022-04-25 11:53:17 -05:00
Emery Hemingway
1dcad539f4
Move preserves/parse module into preserves
...
Some macros in preserves call `parsePreserves` so include that
proc implicitly.
2022-03-18 11:26:52 -05:00
Emery Hemingway
5f746706b6
Add forked macros module
...
This one has a more premissive version of "hasCustomPragma".
2022-03-10 23:41:14 -06:00
Emery Hemingway
7d8c3b29c2
XML conversion
2021-12-06 23:57:47 +00:00
Emery Hemingway
99201de724
Schemas: use canonical meta-schema
2021-10-17 13:26:05 +02:00
Emery Hemingway
220577c8a0
New pragmas for toPreserve and fromPreserve
2021-10-17 11:38:45 +02:00
Emery Hemingway
42a9b26458
Embeddable Preserves
...
Make Preserve a generic type that can embed a native Nim type.
Generate generic implementations from schemas and discard
embeddedType.
2021-09-25 13:47:05 +02:00
Emery Hemingway
e7af40ce2f
Export the variant members
2021-09-23 13:31:10 +02:00
Emery Hemingway
2451b441ad
Use dedicated types for record alternates
2021-09-22 14:30:50 +02:00
Emery Hemingway
ea50b05bad
Some types implicitly handled by toPreserve
2021-09-21 09:38:37 +02:00
Emery Hemingway
6b7a23fecf
Compiler compatibility tweaks
2021-09-21 09:30:40 +02:00
Emery Hemingway
7edc05a35d
Refactor preserves_schema_nim
2021-09-21 08:00:33 +02:00
Emery Hemingway
fc53b47ec6
Add megaType procs
2021-09-21 08:00:33 +02:00
Emery Hemingway
c407179540
Remove dead code
2021-09-21 08:00:33 +02:00
Emery Hemingway
098f067ffb
Quote schema comments
2021-09-21 08:00:33 +02:00