(type)
| 46 | return (TokenType.Double, v) |
| 47 | |
| 48 | def str_handler(type): |
| 49 | def handler(index): |
| 50 | length = int(buffer[:index]) |
| 51 | start = index + 1 |
| 52 | available = len(buffer) - start |
| 53 | if length > available: |
| 54 | bstr = buffer[start:] |
| 55 | bstr += process.stdout.read(length - available) # type: ignore |
| 56 | del buffer[:] |
| 57 | else: |
| 58 | bstr = buffer[start : (length + start)] |
| 59 | del buffer[: start + length] |
| 60 | return (type, bstr.decode()) |
| 61 | |
| 62 | return handler |
| 63 | |
| 64 | handler_map = { |
| 65 | ord(b'"'): str_handler(TokenType.String), |