Commit Graph

148 Commits

Author SHA1 Message Date
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
Tony Garnock-Jones 8b2aa0fb87 preserve=? 2021-05-25 11:05:03 +02:00
Tony Garnock-Jones 5c644624c4 detect-preserve-syntax, file->preserves 2021-05-25 11:04:51 +02:00
Tony Garnock-Jones 163e338ce5 Name is already always supplied, no need to add it 2021-05-25 11:04:29 +02:00
Tony Garnock-Jones 4ed8fd2c92 Add "annotations" procedure 2021-05-25 11:02:36 +02:00
Tony Garnock-Jones bdd699ae9f Deterministic hash ordering for Racket CompoundPattern-dict 2021-05-24 17:46:50 +02:00
Tony Garnock-Jones 33a80533fa Checker for Racket 2021-05-24 12:47:44 +02:00
Tony Garnock-Jones c4bfc0eefc Follow improvements through Racket schema impl 2021-05-24 10:10:13 +02:00
Tony Garnock-Jones 1d6956fa55 Move gen-schema.rkt to gen/schema.rkt 2021-05-22 15:52:12 +02:00
Tony Garnock-Jones 9e6743abdc Autogenerate predicate for unions 2021-05-22 15:50:54 +02:00
Tony Garnock-Jones 43b776eb7f Switch to manipulating parsed form of metaschema 2021-05-22 15:47:13 +02:00
Tony Garnock-Jones ebab3fafc5 gen-schema.rkt (initial rendering) 2021-05-22 15:43:29 +02:00
Tony Garnock-Jones 49cba14b4f Initial work on preserves-schema for Racket 2021-05-21 21:44:05 +02:00
Tony Garnock-Jones e4a2503899 The Great Renaming: Pointer -> Embedded 2021-05-17 14:54:06 +02:00
Tony Garnock-Jones c27aa7579e Repair detection of "easily-printable" symbols 2021-03-08 15:31:50 +01:00
Tony Garnock-Jones 532e811894 Introduce pointers 2021-01-29 12:03:28 +01:00
Tony Garnock-Jones 2c5ed693f5 Tool works on multiple inputs now 2021-01-23 22:54:27 +01:00
Tony Garnock-Jones 8459521db5 No more `StreamingTest`s 2021-01-23 22:54:27 +01:00
Tony Garnock-Jones 749747ca05 Remove #:read-annotations?, to ensure a consistent output format from the reader 2021-01-23 22:54:27 +01:00
Tony Garnock-Jones 77fd8e86bf Ah, of course a 0-byte integer has value 0 2021-01-23 22:54:27 +01:00
Tony Garnock-Jones 85fe7b3b07 Update Racket implementation 2021-01-23 22:54:27 +01:00
Tony Garnock-Jones c4f90ef86b Remove placeholders from spec and implementations 5/5
Update Racket implementation: remove placeholders; reject zero-length
streamed binary chunks.
2020-05-28 23:23:19 +02:00
Tony Garnock-Jones 8e0ab95d82 Autodetectability of binary vs text; documented test case schema a little 2020-05-13 12:56:13 +02:00
Tony Garnock-Jones d883ad9a75 Move racket implementation one subdirectory deeper, to allow package name inference to work 2020-04-27 21:07:20 +02:00
Tony Garnock-Jones 340f77cc3c Fix Racket package deps 2020-01-17 14:12:50 +01:00
Tony Garnock-Jones 0832b94ce9 Optionally-canonicalizing binary output. 2019-10-24 14:35:34 +01:00
Tony Garnock-Jones 2b74100b2a Some coverage of read/write text syntax 2019-08-26 21:03:19 +01:00
Tony Garnock-Jones aa59846ee9 --atob, --btoa 2019-08-23 22:14:02 +01:00
Tony Garnock-Jones a34a4cd20e Stop reading symbols at @ 2019-08-23 22:09:30 +01:00
Tony Garnock-Jones a817fed40d preserves-tool 2019-08-23 22:05:30 +01:00
Tony Garnock-Jones f09067d719 Allow use of strip-annotations and peel-annotations as identifiers 2019-08-23 22:00:52 +01:00
Tony Garnock-Jones 6f4e06f6b9 Annotation inappropriate for ExpectedPlaceholderMapping 2019-08-23 09:58:30 +01:00
Tony Garnock-Jones a7147fa123 Remove old commented-out code 2019-08-22 21:14:53 +01:00
Tony Garnock-Jones 54b33f5f13 Heuristics for choosing base64 vs ascii-ish binary display 2019-08-22 20:59:37 +01:00
Tony Garnock-Jones 4d73ab6d69 Fix DecodeError runner 2019-08-22 15:31:58 +01:00
Tony Garnock-Jones aac73efd3a DecodeShort, DecodeError 2019-08-22 11:24:51 +01:00
Tony Garnock-Jones 36c5d92b73 Nondeterministic and Streaming tests; fixes 2019-08-22 11:20:58 +01:00
Tony Garnock-Jones adda505f45 Better record support; more test implementations; fixes 2019-08-22 09:57:57 +01:00
Tony Garnock-Jones e90a790963 First real running tests with the new design, and several concomitant fixes and new tests 2019-08-21 22:18:21 +01:00
Tony Garnock-Jones 27ac21bed1 Actually use current-value->placeholder 2019-08-21 21:20:26 +01:00
Tony Garnock-Jones 79af429b58 Fix annotation encoding 2019-08-20 22:34:29 +01:00
Tony Garnock-Jones 6783daa20d Make strip- and peel-annotations more useful with dictionaries 2019-08-20 22:30:44 +01:00
Tony Garnock-Jones e57fe62a48 peel-annotations 2019-08-20 22:30:30 +01:00
Tony Garnock-Jones fa5eaa6e39 Limited-depth strip-annotations 2019-08-20 22:24:24 +01:00
Tony Garnock-Jones 3f0ec34d49 Uniform annotations in syntax mode; WIP update binary codec 2019-08-20 20:44:07 +01:00
Tony Garnock-Jones fd87f07ec0 Quasi-pretty-printed text output (indentation, basically) 2019-08-19 22:48:12 +01:00
Tony Garnock-Jones 1bb7e1862e Fix byte string output for control characters 2019-08-18 17:40:44 +01:00
Tony Garnock-Jones 467da29c56 WIP: write-preserve, preserve->string 2019-08-18 17:34:42 +01:00
Tony Garnock-Jones 9974002cad Read angle-bracket delimited records in the Racket implementation 2019-08-18 13:40:59 +01:00
Christopher Lemmer Webber c9a624839f
recurd7 -> record7 2019-08-15 13:51:24 -04:00
Tony Garnock-Jones 672ee83be0 Begin factoring out test suite for cross-implementation use; begin updating Racket implementation to match (not finished) 2019-08-11 14:37:08 +01:00
Tony Garnock-Jones 2c20de2730 Refine Racket Makefile 2019-07-01 21:47:21 +01:00
Tony Garnock-Jones 97cd007bab Remove comment parsing from Racket implementation 2019-07-01 21:47:12 +01:00
Tony Garnock-Jones 0799fd3293 Support detection of short inputs, for e.g. incremental parsing use 2019-03-17 00:52:05 +00:00
Tony Garnock-Jones 374ab89cd0 Forbid empty string input to string->preserve 2018-11-05 10:27:03 +00:00
Tony Garnock-Jones 50eec6ba8e Further improve error recovery 2018-10-08 21:35:07 +01:00
Tony Garnock-Jones b25a17b148 Improve error recovery 2018-10-08 20:54:06 +01:00
Tony Garnock-Jones 8dc6346c58 Special cases for label[...] and label{...} 2018-10-08 20:53:53 +01:00
Tony Garnock-Jones c02e790f71 Allow dots to lead/fill raw symbols 2018-10-08 19:54:29 +01:00
Tony Garnock-Jones e0834dd2ba test target 2018-09-30 21:07:40 +01:00
Tony Garnock-Jones db5c890e1c Simplify, repair, and regularise embedded binary values in textual syntax 2018-09-29 17:50:57 +01:00
Tony Garnock-Jones 6feb320aad Racket/python infrastructure 2018-09-29 17:37:26 +01:00
Tony Garnock-Jones 83fa396b56 Rearrange repo 2018-09-29 17:27:59 +01:00