Commit Graph

52 Commits

Author SHA1 Message Date
Emery Hemingway 2825bceecf preserves_schema_nim: collect imports of simple compounds 2024-02-08 14:24:01 +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 aa5c7f4683 preserves_schema_nim: embedded literals are not literals 2024-01-14 12:26:39 +02:00
Emery Hemingway a01ba8c96d preserves_schema_nim: remove dead code 2024-01-08 12:50:13 +02:00
Emery Hemingway 8b2407b1a2 preserves_schema_nim: attach embed pragmas inside Or objects 2024-01-08 12:37:03 +02:00
Emery Hemingway 416af8ff5f preserves_schema_nim: represent embeds with EmbeddedRef
Use EmbeddedRef for embbeded values, unless a schema does not name
an embedded type.
2024-01-08 12:36:29 +02:00
Emery Hemingway 74da21f3d5 preserves_schema_nim: do not create types for simple fields 2024-01-08 12:36:29 +02:00
Emery Hemingway abcdfa01cd preserves_schema_nim: remove dead code 2024-01-08 12:36:29 +02:00
Emery Hemingway 501d6cc012 preserves_schema_nim: merged And patterns with optionals 2024-01-08 12:36:29 +02:00
Emery Hemingway b67e6f089b preserves_schema_nim: always mark embedded fields 2024-01-08 12:36:29 +02:00
Emery Hemingway 97ab7ce070 preserves_schema_nim: better recursive type detection 2024-01-08 12:36:29 +02:00
Emery Hemingway c01e587e5b preserves_schema_nim: use Table for And types 2024-01-08 12:36:29 +02:00
Emery Hemingway 43498a4b94 preserves_schema_nim: rearrange some internal parameters 2024-01-08 12:36:29 +02:00
Emery Hemingway a5cc0a431d preserves_schema_nim: remove type parameterization 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 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 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 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 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 1a0cb2be5c Cleanup preserves_schema_nim 2023-04-01 12:33:28 -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 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 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 a3c55238f5 Generate `data` fields for anonymous patterns 2022-03-19 09:13:23 -05: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 8a85ff5d52 Make enums generated for alt-types pure 2021-12-04 11:44:18 +00: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 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 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