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
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
3924e48deb
Distinct Symbol strings
...
More type buracracy makes schema conversion less lossy.
2022-02-20 09:23:49 -06:00
Emery Hemingway
486443a098
Remove submodule
2022-02-19 10:33:16 -06:00
Emery Hemingway
84b28ec55a
XML: use tuples rather than records for elements
2021-12-22 22:27:18 +01:00
Emery Hemingway
a466930e6e
Hack to unescape \n
2021-12-11 18:32:37 +00:00
Emery Hemingway
7d8c3b29c2
XML conversion
2021-12-06 23:57:47 +00:00
Emery Hemingway
061898c3c2
Escaping fix in parser
2021-12-04 12:02:15 +00:00
Emery Hemingway
8a85ff5d52
Make enums generated for alt-types pure
2021-12-04 11:44:18 +00:00
Emery Hemingway
21052681b6
schemaparse: fix parsing of atoms to Preserves
2021-11-17 14:21:15 +00:00
Emery Hemingway
7cc0b050f4
Remove support for integers wider than 64 bits
...
I believe this was an unecessary compilication and it can be
restored later if necesary.
2021-11-12 12:25:28 +01:00
Emery Hemingway
e88c238a74
Schema text parsing
2021-11-11 21:57:04 +01:00
Emery Hemingway
1dc7991761
Schemas: use int rather than BiggestInt
...
Produce ints for integers in schemas. If int is too small then
the generated code can be hand-edited.
2021-11-03 19:18:07 +01:00
Emery Hemingway
c74f5c2c63
Spry: binary encoding and decoding
2021-11-03 19:17:04 +01:00
Emery Hemingway
a8373e37c6
Add Spry VM module
...
http://sprylang.se/
2021-11-01 10:35:14 +01:00
Emery Hemingway
cbf27a0ee0
schema: fix missing literals in tuples
2021-10-25 21:36:45 +02:00
Emery Hemingway
ba45f80087
schema: embedded type required for toPreserve inside `$`
2021-10-25 21:36:45 +02:00
Emery Hemingway
cca512c9df
mapEmbeds for Preserve[void] to Preserve[E]
2021-10-25 21:36:45 +02:00
Emery Hemingway
b6275a241b
Schema: do not overload `$` or encode for Preserve types
2021-10-20 13:59:48 +02:00
Emery Hemingway
5250707f0e
Schema: make all Preserves embeddable
2021-10-18 12:12:33 +02:00
Emery Hemingway
171502f1d2
Schemas: seperate procs for unembeddables
2021-10-18 12:12:33 +02:00
Emery Hemingway
30a9d55aac
Fix schema import, normalize version
2021-10-17 14:22:41 +02: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
2dd63903f0
Remove records module
...
Redundant with toPreserve and fromPreserve.
2021-09-25 13:57:58 +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
Emery Hemingway
efbf9af7ba
TableRef
2021-09-21 08:00:33 +02:00
Emery Hemingway
a7acd971d2
Fix symbol printing in schemas
2021-09-21 08:00:33 +02:00
Emery Hemingway
df53ff0d41
Fix printing of schema symbols
2021-09-21 08:00:33 +02:00
Emery Hemingway
23d34d1468
Emit a discard for empty case…of branch fields
2021-09-21 08:00:33 +02:00
Emery Hemingway
00bb9de55f
Less identifier mangling
2021-09-21 08:00:33 +02:00
Emery Hemingway
41675a2daf
Generate procs for constants
2021-09-21 08:00:33 +02:00
Emery Hemingway
58a9f5dde4
quiet down
2021-09-21 08:00:33 +02:00
Emery Hemingway
de50a0a41d
Import tables when necessary
2021-09-21 08:00:33 +02:00
Emery Hemingway
d43f9ca926
Quote proc parameters
2021-09-21 08:00:33 +02:00
Emery Hemingway
c942e79a0a
Make objects ref objects to support recursion
2021-09-21 08:00:33 +02:00
Emery Hemingway
e556fa26e0
Do not generate object fields for constants
2021-09-21 08:00:33 +02:00
Emery Hemingway
b940a458a1
Write name of output to stdout
2021-09-21 08:00:33 +02:00
Emery Hemingway
cef2116e96
Module scoping for embedded type and refs
2021-09-21 08:00:33 +02:00
Emery Hemingway
2d64dae0dd
Collect imports from schema
2021-09-21 08:00:33 +02:00
Emery Hemingway
460e7596f4
Make all type declarations in title-case
2021-09-21 08:00:33 +02:00
Emery Hemingway
e322482d0a
no preserveTypeOf
2021-09-21 08:00:33 +02:00
Emery Hemingway
2016974e95
Replace prsFoo() with foo()
2021-09-21 08:00:33 +02:00
Emery Hemingway
cb4f4df4f1
No date comment
2021-09-21 08:00:33 +02:00
Emery Hemingway
3c39f54962
Stop using preserveTypeOf
2021-09-08 11:16:42 +02:00
Emery Hemingway
c9c7744531
Do not emit (Preserve | Preserve) types
2021-09-08 11:16:42 +02:00
Emery Hemingway
d9cf6dbab4
Fix definition of empty records
2021-09-08 11:16:42 +02:00
Emery Hemingway
13854f88c7
Do not export case…of labels
2021-09-08 11:16:42 +02:00