diff --git a/README.md b/README.md index bd7a6b8..6e2eea6 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,18 @@ Implementations of the data model, plus Syrup transfer syntax: - [Syrup for JavaScript](https://github.com/zarutian/agoric-sdk/blob/zarutian/captp_variant/packages/captp/lib/syrup.js) - [Syrup for Haskell](https://github.com/zenhack/haskell-preserves) +## Tools + +### Preserves documents + + - [preserves-tool](doc/preserves-tool.html), generic syntax translation and pretty-printing + +### Preserves Schema documents and codegen + + - [preserves-schemac](doc/preserves-schemac.html), generic Schema reader and linter + - [preserves-schema-rkt](doc/preserves-schema-rkt.html), Racket code generator + - [preserves-schema-ts](doc/preserves-schema-ts.html), TypeScript code generator + ## Additional resources - Some [conventions for common data types](conventions.html) diff --git a/doc/demo.prs b/doc/demo.prs new file mode 100644 index 0000000..3688f20 --- /dev/null +++ b/doc/demo.prs @@ -0,0 +1,10 @@ +version 1 . +JSON = + / @string string + / @integer int + / @double double + / @boolean JSONBoolean + / @null =null + / @array [JSON ...] + / @object { string: JSON ...:... } . +JSONBoolean = =true / =false . diff --git a/doc/preserves-schema-rkt.md b/doc/preserves-schema-rkt.md new file mode 100644 index 0000000..8e0902b --- /dev/null +++ b/doc/preserves-schema-rkt.md @@ -0,0 +1,46 @@ +--- +title: preserves-schema-rkt +--- + +The `preserves-schema-rkt` program reads +[Preserves Schema](../preserves-schema.html) DSL input files. For each +input file, it produces a Racket source file of the same name but +with `.rkt` in place of `.prs`. + +Instead of using this tool, you may prefer to use `#lang +preserves-schema` to use Schema DSL syntax in an ordinary Racket +module source file. + +## Installation + +Install Racket. Then, `raco pkg install preserves`. + +## Usage + + usage: preserves-schema-rkt [