Commit Graph

172 Commits

Author SHA1 Message Date
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 85cef2e1d2 Generate dot files only with Tup 2024-01-01 17:32:53 +02:00
Emery Hemingway c2bce1404a Add Atom type
Type for holding constant Preserves values create at compile-time.
This is a prerequisite for making embedded values "ref RootObj".
It is also requesite for making Value a ref object.
2024-01-01 17:32:52 +02:00
Emery Hemingway 441bd253b0 Schema: convert Ref alternates to NamedPatterns 2024-01-01 17:32:52 +02:00
Emery Hemingway 3606ce5459 Schema: parse the embeddedType 2024-01-01 17:32:52 +02:00
Emery Hemingway b165c64475 Parse more schema 2024-01-01 17:32:52 +02:00
Emery Hemingway 18f8f8e6b2 Schema: parse annotations on patterns, parse line comments 2024-01-01 17:32:52 +02:00
Emery Hemingway 60938612c5 Rename schemac compiler to preserves-schemac 2024-01-01 17:32:52 +02:00
Emery Hemingway b7224d7a4a Reorder PEG 2024-01-01 17:32:52 +02:00
Emery Hemingway f28c1a4c83 Validate strings as UTF-8 during parsing 2024-01-01 17:32:52 +02:00
Emery Hemingway 12bc024992 Cleanup text encoding 2024-01-01 17:32:52 +02:00
Emery Hemingway d1e3b00134 Allow leading zeros when parsing numbers 2024-01-01 17:32:52 +02:00
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 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 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 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 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