Commit Graph

72 Commits

Author SHA1 Message Date
Tony Garnock-Jones d11ec61714 Restrict positions where commas may exist 2023-11-01 14:45:58 +01:00
Tony Garnock-Jones c053102d07 Merge branch 'main' into comment-syntax-hash-space 2023-10-31 10:51:36 +01:00
Tony Garnock-Jones 1a2657fe33 Simplify and firm up test suite. Known failures: TS, wrt bigint 2023-10-30 17:28:33 +01:00
Tony Garnock-Jones 1aedfe46b7 Merge branch 'main' into comment-syntax-hash-space 2023-10-29 22:22:40 +01:00
Tony Garnock-Jones b8fb7abab1 New tests and fixes for bad surrogate pair situations. Closes #43 2023-10-29 21:30:54 +01:00
Tony Garnock-Jones 9595872177 Test cases and implementation updates for delimiters following Boolean and SymbolOrNumber. Closes #47 2023-10-29 21:04:52 +01:00
Tony Garnock-Jones c30073c3f9 Repair errors surfaced by the new tests 2023-10-29 19:27:29 +01:00
Tony Garnock-Jones ccf277cddb Switch to "# "-prefixed text comment annotation syntax 2023-10-18 10:20:30 +02:00
Tony Garnock-Jones 3b89cbe880 Switch back to prefix-format binary annotations 2023-10-15 00:35:25 +02:00
Tony Garnock-Jones b7a2acf65b Update implementations for simplified binary syntax.
As part of this, I noticed a problem when updating the Rust
implementation. With the BF..84 design for annotations, if you are
wanting to skip annotations—for example, if you're parsing
incrementally, SAX-style, ignoring annotations—then with any
parenthesised form you have to remember to check for and skip something
after reading a term. This is awkward, so I want to revisit the design
of annotations and go back to the prefix-form (85..) of the
current-mainline design.
2023-10-14 21:29:09 +02:00
Tony Garnock-Jones 316c2dd407 Document preserves.schema 2023-03-17 15:24:53 +01:00
Tony Garnock-Jones fac24309aa Remove code snippets from heading (because otherwise it renders funny in the toc) 2023-03-17 10:34:02 +01:00
Tony Garnock-Jones 8c033fa111 Document and repair path.py 2023-03-17 10:21:56 +01:00
Tony Garnock-Jones a4403cf6f3 More docs. That's the lot for python now except path and schema. 2023-03-17 00:07:27 +01:00
Tony Garnock-Jones c7687772b0 Update compare.py docs 2023-03-16 21:57:21 +01:00
Tony Garnock-Jones e3e1dd4944 Better __init__.py docs 2023-03-16 21:04:37 +01:00
Tony Garnock-Jones 7cbd1a2813 Docs for preserves.binary; better encoding annotations with canonicalization 2023-03-16 20:55:49 +01:00
Tony Garnock-Jones 031575ad82 Python preserves doctest runner, and mkdocs documentation stubs 2023-03-16 17:53:02 +01:00
Andrew Elgert b1f9eb45d2 Compiler can load from file-like objects 2023-03-14 11:45:30 -04:00
Tony Garnock-Jones d73118fc77 Update implementations 2023-02-07 10:42:30 +01:00
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 3544bf18fa Ugh, python 3.7 doesn't have the PEP 570 "/" positional-only syntax. 2022-07-22 10:23:54 +02:00
Tony Garnock-Jones c49b8673f7 READMEs for Schema implementations 2022-06-09 13:49:59 +02:00
Tony Garnock-Jones 8b8da80f61 Explain why parsing failed 2022-06-08 16:22:10 +02:00
Tony Garnock-Jones e019148065 Fix positional initializers for schema values, and allow keyword initializers 2022-06-07 21:45:56 +02:00
Tony Garnock-Jones c9c973ce9c Preserves-order for Python 2022-06-07 21:45:12 +02:00
Tony Garnock-Jones 00eb9e97b6 Implement count function 2022-06-06 15:28:11 +02:00
Tony Garnock-Jones c0d3f37905 python: merge(), and support for and-pattern unparsing 2022-06-03 21:13:59 +02:00
Tony Garnock-Jones 597e993c05 Support and-schemas in python 2022-06-03 16:50:03 +02:00
Tony Garnock-Jones 7f65f9ecb1 Add _ALL superclass for Enumeration subclasses, for @extend purposes 2022-02-11 11:56:08 +01:00
Tony Garnock-Jones 32544c544a Optional commas in pretty-printer 2022-02-11 11:38:29 +01:00
Tony Garnock-Jones 21de8b799a Canonicalizing binary encoder 2022-02-09 14:59:50 +01:00
Tony Garnock-Jones 61ef91a958 Allow schema encoding (auto-)escapes 2022-01-12 14:07:32 +01:00
Tony Garnock-Jones f348701169 Avoid x.__preserve__(), preferring preserve(x) 2022-01-12 11:40:05 +01:00
Tony Garnock-Jones ddfd2e24a6 Indented text printing 2022-01-12 02:02:36 +01:00
Tony Garnock-Jones 8c4fedac0a Split out encoding/formatting unhandler error to method, for overridability 2022-01-11 06:29:18 +01:00
Tony Garnock-Jones 602dea1ac6 Rearrange tests to include test data. As part of this, remove tests for python2; from here out, python2 compatibility will likely rot. 2022-01-07 21:14:21 +01:00
Tony Garnock-Jones 39f9a2e5ef Include path.prb in the package, like schema.prb 2022-01-07 20:48:24 +01:00
Tony Garnock-Jones 6c0ef47e03 Be more liberal about accepting either lists or tuples when parsing using a schema instance 2021-12-17 23:25:03 +01:00
Tony Garnock-Jones aadd83d715 Use bundled metaschema copy 2021-11-30 18:35:16 +01:00
Tony Garnock-Jones d408070fde Better debug printing 2021-08-18 22:57:06 -04:00
Tony Garnock-Jones 0f30522f19 Repair typo 2021-08-18 22:56:59 -04:00
Tony Garnock-Jones e0bc1b31b8 Better error reporting 2021-08-18 22:56:50 -04:00
Tony Garnock-Jones 6bb99b45c3 fold.py 2021-08-18 14:04:00 -04:00
Tony Garnock-Jones 0c693d8ece Python preserves-path implementation 2021-08-17 14:07:12 -04:00
Tony Garnock-Jones 82c66ec1c4 Embedded wrapper; preserve() function 2021-08-17 14:06:52 -04:00
Tony Garnock-Jones a5065955ca loads/dumps aliases 2021-08-17 08:05:38 -04:00
Tony Garnock-Jones 8afc8f1eae Python text codec 2021-08-17 08:04:38 -04:00
Tony Garnock-Jones 123b6222ca Split out modules 2021-08-16 19:24:50 -04:00
Tony Garnock-Jones cf192b634c SchemaEntity -> SchemaObject 2021-08-16 14:06:41 -04:00