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
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
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
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
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
1a0cb2be5c
Cleanup preserves_schema_nim
2023-04-01 12:33:28 -05:00
Emery Hemingway
71b6d4c017
Rework the initX[E]() procs to initX(E = void)
2023-03-29 17:32:54 -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
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
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
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
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
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
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
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
5b6f673951
Convert Preserves sets to JSON arrays
...
A one way conversion but still useful.
2022-10-13 23:08:53 -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
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
a3c55238f5
Generate `data` fields for anonymous patterns
2022-03-19 09:13:23 -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