Tony Garnock-Jones
269ed2391a
Repair text syntax for numbers and symbols. Closes #19/#36/#37/#38.
...
Numbers and (bare) Symbols are now disambiguated after reading, which
permits leading `+`, leading `0`, and a wider range of acceptable
Symbols.
Updates spec text, test cases, and implementations. Some ancillary fixes
to Python's comparison routines are also included.
2022-11-08 19:56:24 +01:00
Tony Garnock-Jones
c49b8673f7
READMEs for Schema implementations
2022-06-09 13:49:59 +02:00
Tony Garnock-Jones
850678a80a
New test of very long integer
2022-01-13 23:29:47 +01:00
Tony Garnock-Jones
32ebebec34
Move racket preserves-tool out of the way (in favour of the rust one)
2021-08-10 08:40:11 -04:00
Tony Garnock-Jones
9b100ab9aa
Tweak base64 variant handling
2021-08-02 11:41:45 +02:00
Tony Garnock-Jones
790782fc87
Hex and Base64 encodings in preserves-tool
2021-07-13 15:58:05 +02:00
Tony Garnock-Jones
0fb1ef4efd
Repair error in schema include
2021-07-03 16:27:50 +02:00
Tony Garnock-Jones
60d1be41a3
Rename NamedSimplePattern_ -> Binding
2021-06-25 10:25:26 +02:00
Tony Garnock-Jones
fdb43f6292
Constrain names/identifiers in schemas to be lowest-common-denominator.
2021-06-25 09:45:07 +02:00
Tony Garnock-Jones
da513a249e
Allow void to be `->preserve`able
2021-06-17 15:26:43 +02:00
Tony Garnock-Jones
f808e37e89
Fix very stupid mistake in order.rkt
2021-06-16 21:36:09 +02:00
Tony Garnock-Jones
f12343e723
Add missing *->preserve coercions during unparsing
2021-06-10 10:01:04 +02:00
Tony Garnock-Jones
0d4d1e738c
Coerce integers to floats/doubles during unparse
2021-06-09 20:02:06 +02:00
Tony Garnock-Jones
feb6361029
I forgot embedded!
2021-06-08 16:15:53 +02:00
Tony Garnock-Jones
27002dfe7f
Always use wrapper struct
2021-06-08 15:50:29 +02:00
Tony Garnock-Jones
e5b6c46169
Time reader self-test
2021-06-08 15:34:33 +02:00
Tony Garnock-Jones
6cecf64df5
Move toward being user-facing rather than plugin-facing
2021-06-08 15:34:25 +02:00
Tony Garnock-Jones
7acf7c5b40
Generic-method based unparsing; prelude to generic pattern-formation
2021-06-08 15:26:32 +02:00
Tony Garnock-Jones
0bcb4e64ec
Add struct ty-field for better structure in ty-records
2021-06-08 09:56:04 +02:00
Tony Garnock-Jones
30bcc1a50b
Fix embedded (un)parsing to rely on the reader
2021-06-08 09:27:03 +02:00
Tony Garnock-Jones
a4d61017d8
Repair error wrt `float` struct test
2021-06-08 09:26:35 +02:00
Tony Garnock-Jones
ade9b0a0f1
map-embeddeds
2021-06-08 09:26:10 +02:00
Tony Garnock-Jones
f93d329f48
Small optimization
2021-06-08 09:25:52 +02:00
Tony Garnock-Jones
c05180c492
Some tool docs; improve help message of preserves-tool
2021-06-04 17:47:16 +02:00
Tony Garnock-Jones
139f4ff08b
Accept parameters in #lang preserves-schema lines
2021-06-03 23:23:22 +02:00
Tony Garnock-Jones
53bd5a1a7e
Escape schema names with ? instead of $
2021-06-02 12:35:56 +02:00
Tony Garnock-Jones
b968f77ff6
Provide fold-Schema-definitions and map-Schema-definitions
2021-06-02 12:35:33 +02:00
Tony Garnock-Jones
bd68786f1c
Schema compiler plugins
2021-06-02 06:56:44 +02:00
Tony Garnock-Jones
7683a64a5b
Repair Racket schema reader
2021-06-01 16:53:21 +02:00
Tony Garnock-Jones
8d96743d53
Redo schema embedded value patterns to use embedded syntax and an interface schema
2021-06-01 16:10:04 +02:00
Tony Garnock-Jones
b23acdaf5a
Default to text output from preserves-tool
2021-06-01 15:37:45 +02:00
Tony Garnock-Jones
947b816a57
Improve error-handling in Racket schema reader
2021-05-28 20:06:46 +02:00
Tony Garnock-Jones
b69c3a0894
Avoid name clashes with :parse-embedded and :embedded->preserves
2021-05-28 10:33:28 +02:00
Tony Garnock-Jones
d7bf235813
Avoid use of void so much
2021-05-27 09:54:11 +02:00
Tony Garnock-Jones
ab12c6535f
Simpler embedded parsing/unparsing
2021-05-27 09:53:55 +02:00
Tony Garnock-Jones
534018e3a4
batch-compile
2021-05-27 09:52:58 +02:00
Tony Garnock-Jones
264c4b9d2e
Repair integer parsing
2021-05-27 00:28:42 +02:00
Tony Garnock-Jones
87e816306d
Better import failure error reporting
2021-05-26 23:27:55 +02:00
Tony Garnock-Jones
5470497aa2
Update gen/schema.rkt
2021-05-26 23:16:49 +02:00
Tony Garnock-Jones
f90544d807
Code generator tool; handle module references and embeddeds
2021-05-26 23:15:49 +02:00
Tony Garnock-Jones
cb88c587b6
Include a copy of samples.pr so that tests run OK on the buildserver
2021-05-26 21:11:45 +02:00
Tony Garnock-Jones
e6efd03be7
Introduce explicit embedded wrapper
2021-05-26 21:09:06 +02:00
Tony Garnock-Jones
90ce0a544d
The Racket preserves package needs a local copy of schema.prs for the package-builder to work. Use a git hook to keep it in sync with the master copy
2021-05-26 14:27:03 +02:00
Tony Garnock-Jones
7ab12108e4
Inline reader module; add port->preserves
2021-05-26 13:56:37 +02:00
Tony Garnock-Jones
98e2511fe1
#lang preserves-schema
2021-05-25 20:14:10 +02:00
Tony Garnock-Jones
460529e1c7
Clean up language wrt invertibility/"bijection"
2021-05-25 20:13:02 +02:00
Tony Garnock-Jones
49efc76580
Racket Preserves Schema reader implementation
2021-05-25 11:07:37 +02:00
Tony Garnock-Jones
a24a5b19f5
Regenerate metaschema
2021-05-25 11:06:40 +02:00
Tony Garnock-Jones
eeb84ad669
Sort emitted entries; add throwing parser variant
2021-05-25 11:06:30 +02:00
Tony Garnock-Jones
6c9071fd88
Optionally omit commas when writing preserves
2021-05-25 11:05:16 +02:00