From: Axy Date: Tue, 10 Feb 2026 03:22:14 +0000 (+0100) Subject: Fixed tags being borked for anything except one char X-Git-Url: https://git.uwuaxy.net/?a=commitdiff_plain;h=refs%2Fheads%2Fmaster;p=axy%2Fft%2Fmini-serde.git Fixed tags being borked for anything except one char --- diff --git a/miniserde/serde_data.py b/miniserde/serde_data.py index 6d2da19..4b8c31f 100644 --- a/miniserde/serde_data.py +++ b/miniserde/serde_data.py @@ -1,9 +1,11 @@ from collections.abc import Callable from typing import cast +from sys import stdin class NullType: - pass + def __repr__(self) -> str: + return "null" Null: NullType = NullType() @@ -60,8 +62,8 @@ def cut[T](p: Parser[T]) -> Parser[T]: def tag(tag: str) -> Parser[str]: - return parser_flatten( - parser_map(lambda s: s if s.startswith(tag) else None, char) + return lambda s: ( + (s[: len(tag)], s[len(tag) :]) if s.startswith(tag) else None ) @@ -331,6 +333,4 @@ def json_object(s: str) -> ParseResult[dict[str, JsonValue]]: )(s) -print(json_value("-12331.111e231")) -print(json_value('"hello world\\\\ \\" "')) -print(json_value('[123, -123e3, {"hello": "axy", "num": 421}]')) +print(json_value(stdin.read()))