pub fn resolve_includes(
text: &str,
base: &Path,
features: FeatureSet,
) -> Result<Vec<Tok>, String>Expand description
把 text 中的 include 指令递归展开为不含指令的纯 SML 文本。
base 为相对路径的解析基准目录(通常是当前文件所在目录)。
features 决定是否允许 include / namespace(禁用则遇到指令即报错)。
循环引用与缺失文件都会返回错误,不会静默跳过。
把 text 中的 include 指令递归展开为 token 流(方向 B:零拷贝,不拼巨大中间字符串)。
每个被包含文件只 tokenize 一次;命名空间 as a.b.c 用零拷贝的开/闭块 token
(Word(a) LBrace Word(b) LBrace Word(c) LBrace ... RBrace RBrace RBrace)包裹,
不复制文件内容文本。子文件内的 @version/@feature 指令行在 tokenize 前被剥离,
由主文件统一控制特性集(符合「文档只能收窄」的设计)。