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