状态
当前可运行:
| API | 返回值 | 说明 |
|---|---|---|
std.parse.isAsciiDigit(value) | Bool | 检查首字节是否为 0 到 9。 |
std.parse.isAsciiAlpha(value) | Bool | 检查首字节是否为 ASCII 字母。 |
std.parse.isIdentifierStart(value) | Bool | 检查首字节是否可作为 Zero 标识符的起始。 |
std.parse.isWhitespace(value) | Bool | 检查是否为 ASCII 空白字符。 |
std.parse.scanDigits(value) | usize | 计算前导 ASCII 数字序列的长度。 |
std.parse.scanIdentifier(value) | usize | 计算前导标识符 token 的长度。 |
std.parse.parseU8(value) | Maybe<u8> | 解析完整的十进制字节值。 |
std.parse.parseU16(value) | Maybe<u16> | 解析完整的十进制无符号 16 位值。 |
std.parse.parseU32(value) | Maybe<u32> | 解析完整的十进制无符号 32 位值。 |
当前限制:
- 源码位置和跨度类型。
- 超出当前零分配扫描原语的丰富游标对象。
- 语言解析器和数据解析器共享的 token 与诊断数据。
示例
use std.parse pub fn main Void world World ! let digit std.parse.isAsciiDigit "7" let ident std.parse.isIdentifierStart "_" let scanned std.parse.scanDigits "123abc" let parsed std.parse.parseU16 "8080" if && (&& (&& (&& digit ident) (== scanned 3)) parsed.has) (== parsed.value 8080) check world.out.write "parse primitives ok\n"设计说明
该模块保持面向字节的设计,使编译器、配置和编解码代码无需 Unicode 标量处理或堆分配即可完成解析。
整数解析器返回 Maybe<T> 而非分配诊断信息。调用者可在其上层构建更丰富的错误处理。