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
cedf25d1c3
Split pkSignedInteger into pkRegister and pkBigInt
2024-01-01 17:32:50 +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
Emery Hemingway
adadcc181a
Move some of preserves implementation to preserves/private
2023-12-25 10:08:03 +02:00
Emery Hemingway
126365d164
Remove superfluous PEG whitspace rules
2023-12-24 21:24:02 +02:00
Emery Hemingway
5267b7dc13
Generate graphs for PEGs
2023-12-24 21:24:02 +02:00
Emery Hemingway
c1eb0a513a
schemac: Bundle is now a ref obj
2023-12-24 21:24:02 +02:00
Emery Hemingway
40f20a3ca8
schema: extract And clauses
2023-12-24 21:24:02 +02:00
Emery Hemingway
218ca7a669
schemaparse: parse them commas
2023-12-24 21:24:02 +02:00
Emery Hemingway
c83b78aef7
Replace comment marker ; with #
2023-12-24 21:24:02 +02:00
Emery Hemingway
27a5ace1ea
Fix decoding of annotations
2023-12-24 21:12:30 +02:00
Emery Hemingway
7187a45f9c
Hash nil embedded pointers
2023-11-02 13:33:52 +00:00
Emery Hemingway
0c4ef8269f
Add pop for dictionaries
2023-11-02 13:33:47 +00:00
Emery Hemingway
ca5d44ed32
Step with mulitple indexes
2023-10-28 00:24:27 +01:00
Emery Hemingway
6e0834316f
Fix code-gen for embedded literals
2023-10-26 15:32:35 +01:00
Emery Hemingway
71acd4c951
Regenerate schema
2023-10-26 15:29:28 +01:00
Emery Hemingway
edece399be
Support standard Preserves text encoding as well as JSON
2023-10-21 18:40:14 +01:00
Emery Hemingway
8362a09ec0
Make text rendering JSON compatible
2023-10-20 19:57:09 +01:00
Emery Hemingway
a2dc5becc0
Update binary encoding to Preserves-0.990
2023-10-19 18:14:14 +01:00
Emery Hemingway
c915accf7d
Zero length byte sequences are fine
2023-09-14 10:30:19 +02:00
Emery Hemingway
53981fd70a
Fix post-return compilation warning
2023-09-13 09:38:11 +02:00
Emery Hemingway
ab3bd12c11
Remove bad varint check
2023-09-13 09:38:06 +02:00
Emery Hemingway
15390dd48e
Suppport preservesTupleTail pragma within objects
2023-09-12 11:35:09 +02:00
Emery Hemingway
8b3b182ce7
Do not raise ValueError at early end of binary stream
2023-08-25 19:28:48 +01:00
Emery Hemingway
52faec6e43
Fix varint encoding and decoding
2023-08-25 19:28:48 +01:00
Emery Hemingway
5e2cd329f6
Make apply gcsafe
2023-08-17 14:39:39 +01:00
Emery Hemingway
57f9984007
preserves_schema_nim: add acyclic pragmas
2023-08-16 08:33:11 +01:00
Emery Hemingway
ec77872467
Port preserves_schema_nim to Nim-2.0.0
2023-08-16 08:33:11 +01:00
Emery Hemingway
b563de9ac4
Remove threads and gcsafe where parsing is used
2023-08-16 08:33:11 +01:00
Emery Hemingway
e65dc2271f
Preserve JSON object keys as symbols
2023-08-01 11:09:29 +01:00
Emery Hemingway
5fa72cd25b
Be more consistent about sorting dictionary keys
2023-07-23 08:27:28 +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
e6868fabd2
Do not convert string to string
2023-07-20 20:20:36 +01:00
Emery Hemingway
81d04290a5
Use new delete(…)
2023-07-20 19:54:01 +01:00
Emery Hemingway
47e7851beb
Never convert Preserves symbols to Nim strings!
2023-07-20 18:26:29 +01:00
Emery Hemingway
9fa6685071
Add escaping to $ operator for Symbol
2023-06-12 21:01:26 +01:00
Emery Hemingway
10d20600bf
Escape zero-length Symbols
2023-06-11 21:35:28 +01:00
Emery Hemingway
acdfd3c560
Permit fromPreserve for subsets of dictionaries
2023-06-11 21:35:28 +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
fa5441bd01
Cannonicalize values at toPreserve
2023-06-11 21:35:28 +01:00
Emery Hemingway
a7a90097a8
Add sort and cannonicalize
2023-06-11 21:33:41 +01:00
Emery Hemingway
96879da08c
schema: do not deref atomic types
2023-06-07 11:59:50 +01:00
Emery Hemingway
0e3824fc5d
schema: import std/sets when neccessary
2023-06-07 11:00:24 +01:00
Emery Hemingway
0f697349cc
Add isInteger and isString procs for testing against values
2023-05-30 13:11:33 +01:00
Emery Hemingway
c500e99b95
Fix some decoder defects
2023-05-20 13:53:21 +01:00
Emery Hemingway
03876850e5
schema: use Preserve[E] for records without literal labels
2023-05-17 09:12:08 +01:00
Emery Hemingway
b3f40347e8
Regenerate schema module
2023-05-16 23:06:52 +01:00
Emery Hemingway
7718227662
Add step proc for symbols
2023-05-14 22:57:12 +01:00
Emery Hemingway
eeef9860cf
schema: don't override $ proc for Preserves[E] types
2023-05-14 22:55:27 +01:00
Emery Hemingway
b7406cd6f7
Add preserves/datehooks for handling dates and times
2023-05-12 09:38:01 +01:00
Emery Hemingway
b9d8275624
schema: emit "tuple[]" for literal object fields
2023-05-04 10:55:09 +01:00
Emery Hemingway
cd2dde6d71
preserves_schema_nim: use field0,1,..N for anonymous fields
2023-05-03 16:03:43 +01:00
Emery Hemingway
67b470078c
Revert "preserves_schema_nim: declare literal fields as void"
...
This reverts commit 30c330cecf
.
2023-04-30 09:57:45 +01:00
Emery Hemingway
305edff213
Make toPreserve warning more explicit
2023-04-28 23:59:47 +01:00
Emery Hemingway
30c330cecf
preserves_schema_nim: declare literal fields as void
2023-04-28 23:58:48 +01:00
Emery Hemingway
335d1b61cc
Move jsonhooks check to runnableExamples
2023-04-10 17:51:14 -05:00
Emery Hemingway
30dbed4aa9
Allow for an unlimited DecodeBuffer size
2023-04-03 17:04:12 -05:00
Emery Hemingway
ea7225e3b5
Add toDictionary procedure
2023-04-03 17:03:56 -05:00
Emery Hemingway
1a0cb2be5c
Cleanup preserves_schema_nim
2023-04-01 12:33:28 -05:00
Emery Hemingway
466a8d3af4
Add initSequenceOfCap proc
2023-03-29 17:33:39 -05:00
Emery Hemingway
71b6d4c017
Rework the initX[E]() procs to initX(E = void)
2023-03-29 17:32:54 -05:00
Emery Hemingway
5d3f7b94a3
Add isRecord(…) with arity descriminator
2023-03-29 16:47:54 -05:00
Emery Hemingway
786342c39b
Cannot print a void value
2023-03-29 16:47:47 -05:00
Emery Hemingway
b38b85a8f1
Catch IOError at Preserves decoder
2023-03-22 11:21:46 -05:00
Emery Hemingway
8ff65486ff
preserves_schema_nim: use "E" as a default emebedding ident
2023-03-01 20:58:17 -06:00
Emery Hemingway
6b965c5c0e
Only catch ValueError during decode
2023-03-01 20:58:17 -06:00
Emery Hemingway
dab8f11b9b
Serialize dummy text for embeds
2023-03-01 20:58:17 -06:00
Emery Hemingway
075627709f
preserves_schema_nim: recursively search dicts for embedding
2023-03-01 20:58:17 -06:00
Emery Hemingway
a130079162
preserves_schema_nim: code formatting
2023-03-01 12:50:33 -06:00
Emery Hemingway
3a6dfc0349
preserves_schema_nim: be more careful about type parameters
2023-03-01 12:49:21 -06:00
Emery Hemingway
10682883a4
preserves_schema_nim: detect schema self references
...
Do not add a schema module as an import to itself when a
definition refers to a type with a qualified module name that is
the same as the schema the definition occurs in.
2023-03-01 12:49:21 -06:00
Emery Hemingway
70655a959b
preserves_schema_nim: emit Perserve type for And composites
2023-03-01 12:49:18 -06:00
Emery Hemingway
66a653a775
Fix expand of embedded Preserves
2022-12-13 22:05:05 -06: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
cc0703c343
Fix symbol escaping during conversion to text
2022-12-08 01:00:38 -06:00
Emery Hemingway
3dd112879d
Enable tracing for non-POSIX platforms
2022-12-08 01:00:38 -06:00
Emery Hemingway
587c5274f8
Fix preserving of embedded type
2022-12-08 01:00:38 -06:00
Emery Hemingway
806c4118fc
Trivially convert from Preserve[void] to Preserve[E]
2022-12-08 01:00:34 -06:00
Emery Hemingway
92834a8968
Add expand, contract for embedded conversions
2022-12-08 00:59:54 -06:00
Emery Hemingway
c9268b2a5d
Cannot embed a void value
2022-12-08 00:59:54 -06:00
Emery Hemingway
c04fc181c8
private/macros: keep walking through bracket expressions
2022-12-08 00:59:53 -06:00
Emery Hemingway
7eea68edb4
Add warning when preserving fails
2022-12-06 22:30:28 -06:00
Emery Hemingway
60c5f03637
Add preservesEmbedded pragma
2022-12-06 22:30:28 -06:00
Emery Hemingway
d3132391bd
Fix Symbol usage in the spry module
2022-12-05 16:10:49 -06:00
Emery Hemingway
f9bed998f1
Fix schemaparse for <rec …> records
2022-12-05 16:09:04 -06:00
Emery Hemingway
6d5acf324b
schemac: tool for processing schemas
2022-12-05 16:04:52 -06:00