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
Emery Hemingway
ded072c76c
More Tupfiles
2022-12-05 15:56:31 -06:00
Emery Hemingway
ee2d379a65
Add Tupfiles for testing modules
2022-12-02 22:17:53 -06:00
Emery Hemingway
65195a5eb7
schemas: improve "include" parsing
2022-11-20 14:14:22 -06:00
Emery Hemingway
e1ab43578a
Schema: parse annotations
2022-11-20 14:13:44 -06:00
Emery Hemingway
99a1cd4d15
Symbol escaping
2022-11-06 11:04:16 -06:00
Emery Hemingway
9f8321a748
Textualize the zero length symbol as ||
2022-11-06 11:03:53 -06:00
Emery Hemingway
2d2df1f918
Parse past annotations
2022-11-02 13:58:37 -05:00
Emery Hemingway
4e795cb92a
Another getOrDefault
2022-10-30 21:09:17 -05:00
Emery Hemingway
489d6b31d5
Fix string escaping
2022-10-30 18:43:11 -05:00
Emery Hemingway
201cb7c68e
Check for zero-length binary streams
2022-10-30 17:26:55 -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
11661d453c
Replace concat with writeText
...
Write to a stream rather than concatentate a string.
2022-10-30 17:26:55 -05:00
Emery Hemingway
7e72c2a515
Parser: fix escaping in #"…"
2022-10-30 17:10:26 -05:00
Emery Hemingway
4ee41a7fce
Parser: allow whitespace in hex and base64
2022-10-30 17:10:26 -05:00
Emery Hemingway
b4756b13ae
isRecord: add variant with a label
2022-10-27 15:29:45 -05:00
Emery Hemingway
7125eadd49
Use step rather than [] for dictionaries
2022-10-25 17:42:04 -05:00
Emery Hemingway
5c72729f23
xmlhooks: parse attributes
...
Parse attribute values to booleans and numbers. This isn't best
practices for handling XML (if there is such a thing) but it
reduces the internal representation and allows typed pattern
matching without further processing.
2022-10-25 12:18:31 -05:00
Emery Hemingway
62480318cc
BufferedDecoder: feed by pointer
2022-10-23 23:39:37 -05:00
Emery Hemingway
5fe041fa45
New BufferedDecoder object
2022-10-22 18:40:24 -05:00
Emery Hemingway
85e67603ed
Rewrite xmlhooks to match xml-infoset.prs
2022-10-20 14:19:24 -05:00
Emery Hemingway
f92cb4d8ba
Found a problem with C++
2022-10-18 17:31:20 -05:00
Emery Hemingway
918d4d3e2e
Fix encoding and decoding of embedded values
2022-10-16 15:32:09 -05:00
Emery Hemingway
5b6f673951
Convert Preserves sets to JSON arrays
...
A one way conversion but still useful.
2022-10-13 23:08:53 -05:00
Emery Hemingway
54ec2d439a
Allocate new TableRefs when necessary
2022-10-13 23:05:37 -05:00
Emery Hemingway
a97f1e8554
Fix schema includes
2022-09-04 13:15:52 -05:00
Emery Hemingway
8c0af37694
Use set[T] rather than HashSet[T] for enum sets
2022-08-30 11:45:22 -05:00
Emery Hemingway
895a8695d2
Use BiggestInt in generated code
2022-07-09 08:08:11 -05:00
Emery Hemingway
cc0472da3d
Add apply procedure
2022-06-25 16:19:42 -05:00
Emery Hemingway
abb39e02a5
I'm using that, sometimes
2022-06-12 23:05:35 -05:00
Emery Hemingway
5043d8595a
Set type conversions
2022-05-18 13:57:40 -05:00
Emery Hemingway
aaf5e7ce39
Remove old imports of parse module
2022-04-25 11:53:17 -05:00
Emery Hemingway
ddc26f0c71
Add pragma accessors
...
This library requires a forked macros module, so export accessors
that would prevent a downstream library from having the same
problems with std/macros.
2022-04-25 11:33:37 -05:00
Emery Hemingway
f32e783e0b
Unembed during fromPreserve
2022-04-22 00:28:36 -05:00
Emery Hemingway
a3c55238f5
Generate `data` fields for anonymous patterns
2022-03-19 09:13:23 -05:00
Emery Hemingway
e8d1bf2c57
Refactor mapEmbeds
2022-03-18 18:57:37 -05:00