zh CN 导出一览 - chiba233/yumeDSL GitHub Wiki

导出一览

DslContext | 首页

完整导出参考。各导出的详细文档请点击链接前往对应 wiki 页面。

核心

导出 签名 说明 详情
parseRichText (text: string, options?: ParseOptions) => TextToken[] 将 DSL 文本解析为 token 树 API 参考
stripRichText (text: string, options?: ParseOptions) => string 解析并展平为纯文本 API 参考
createParser (defaults: ParseOptions) => Parser 带有预填选项的可复用解析器 API 参考
parseStructural (text: string, options?: StructuralParseOptions) => StructuralNode[] 保留形式的结构化树 API 参考
printStructural (nodes: StructuralNode[], options?: PrintOptions) => string 将结构化树序列化为 DSL API 参考
buildZones (nodes: readonly StructuralNode[]) => Zone[] 将结构化节点分组为连续 zone API 参考

增量解析

parseIncrementalcreateIncrementalSession 是稳定的公开增量 API。 运行时启发式/性能调优仍可能继续演进;版本升级时请关注 版本语义说明

导出 签名 说明 详情
parseIncremental (source: string, options?: IncrementalParseOptions) => IncrementalDocument 构建增量 structural 快照 增量解析
createIncrementalSession (source: string, options?: IncrementalParseOptions, sessionOptions?: IncrementalSessionOptions) => { getDocument: () => IncrementalDocument; applyEdit: (...) => IncrementalSessionApplyResult; applyEditWithDiff: (...) => IncrementalSessionApplyWithDiffResult; rebuild: (...) => IncrementalDocument } 会话级增量 API(自动回退 + 结构化 diff + 自适应策略) 增量解析

配置

导出 签名 说明 详情
DEFAULT_SYNTAX SyntaxInput 内置语法 token 自定义语法
createEasySyntax (overrides?: Partial<SyntaxInput> & { closeMiddle?: string }) => SyntaxConfig 自动派生构建器 自定义语法
createSyntax (overrides?: Partial<SyntaxInput>) => SyntaxConfig 纯合并构建器 自定义语法
DEFAULT_TAG_NAME TagNameConfig 内置标签名规则 自定义标签名字符
createTagNameConfig (overrides?: Partial<TagNameConfig>) => TagNameConfig 标签名配置构建器 自定义标签名字符
createEasyStableId (options?: EasyStableIdOptions) => CreateId 基于内容的稳定 ID 稳定 Token ID

Handler 辅助函数

导出 签名 说明 详情
createPassthroughTags (names: string[]) => Record<string, TagHandler> 旧的直通标签辅助函数(已弃用) 处理器辅助函数
createPipeHandlers (definitions: Record<string, PipeHandlerDefinition>) => Record<string, TagHandler> 管道感知的多形式构建器 处理器辅助函数
createPipeBlockHandlers (names: string[]) => Record<string, TagHandler> createPipeHandlers 的 block 简写(已弃用) 处理器辅助函数
createPipeRawHandlers (names: string[]) => Record<string, TagHandler> createPipeHandlers 的 raw 简写(已弃用) 处理器辅助函数
createSimpleInlineHandlers (names: string[]) => Record<string, TagHandler> 批量 inline handler 处理器辅助函数
createSimpleBlockHandlers (names: string[]) => Record<string, TagHandler> 批量 block handler 处理器辅助函数
createSimpleRawHandlers (names: string[]) => Record<string, TagHandler> 批量 raw handler 处理器辅助函数
declareMultilineTags (names: BlockTagInput[]) => BlockTagInput[] 声明多行规范化 处理器辅助函数

Handler 工具函数

导出 签名 说明 详情
parsePipeArgs (tokens: TextToken[], ctx?: DslContext) => PipeArgs 按管道分割 token 处理器工具函数
parsePipeTextArgs (text: string, ctx?: DslContext) => PipeArgs 按管道分割文本 处理器工具函数
parsePipeTextList (text: string, ctx?: DslContext) => string[] 分割文本为字符串数组 处理器工具函数
extractText (input?: TextToken | TextToken[]) => string 递归纯文本提取 处理器工具函数
createTextToken (value: string, ctx?: DslContext) => TextToken 创建文本叶 token 处理器工具函数
splitTokensByPipe (tokens: TextToken[], ctx?: DslContext) => TextToken[][] 原始管道分割 处理器工具函数
materializeTextTokens (tokens: TextToken[], ctx?: DslContext) => TextToken[] 反转义文本叶节点 处理器工具函数
unescapeInline (str: string, ctx?: DslContext | SyntaxConfig) => string 反转义字符串 处理器工具函数
readEscapedSequence (text: string, i: number, ctx?: DslContext | SyntaxConfig) => [string | null, number] 转义扫描器 处理器工具函数
createToken (token: TokenDraft, position?: SourceSpan, ctx?: DslContext | CreateId) => TextToken 从 draft 构建 token 处理器工具函数
createTokenGuard <TMap>() => (token, type) => token is NarrowToken 类型收窄守卫工厂 Token 结构
resetTokenIdSeed () => void 旧的全局 ID 计数器重置(已弃用) 待弃用 API

兼容上下文(已弃用)

导出 签名 说明 详情
withSyntax <T>(syntax, fn, suppressWarning?) => T 旧的 ambient syntax 包装器 待弃用 API
getSyntax () => SyntaxConfig 读取 ambient syntax 待弃用 API
withTagNameConfig <T>(tagName, fn, suppressWarning?) => T 旧的 ambient tagName 包装器 待弃用 API

Token 遍历

导出 签名 说明 详情
walkTokens (tokens: TextToken[], visitor: WalkVisitor) => void 前序只读访问器 Token 遍历
mapTokens (tokens: TextToken[], visitor: MapVisitor) => TextToken[] 后序不可变变换 Token 遍历
filterTokens <T>(tokens: TextToken[], predicate: FilterVisitor<T>) => T[] mapTokens 保留/删除快捷方式 Token 遍历

位置追踪

导出 签名 说明 详情
buildPositionTracker (text: string) => PositionTracker 构建行偏移表 源码位置追踪

类型

Token

类型 说明 详情
TextToken 核心 token 节点——typevalueid、可选 position Token 结构
TokenDraft handler 返回类型——typevalue + 额外字段 Token 结构
StructuralNode 保留形式的节点(inline / raw / block / text / escape / separator) API 参考
Zone 带源码偏移量的连续结构化节点分组 API 参考

增量解析

类型 说明 详情
IncrementalDocument structural 增量快照(source/tree/zones 增量解析
IncrementalEdit session.applyEdit(...) 的单次编辑描述符 增量解析
IncrementalParseOptions 不含 trackPositionsStructuralParseOptions 增量解析
IncrementalSessionOptions createIncrementalSession 的会话策略配置(含 softZoneNodeCap 与可选 diff 默认配置) 增量解析
IncrementalDiffRefinementOptions applyEditWithDiff(...) 的 diff 细化预算配置类型(可放 session 默认或按次覆盖) 增量解析
IncrementalSessionApplyResult applyEdit(...) 的返回结果 增量解析
IncrementalSessionApplyWithDiffResult applyEditWithDiff(...) 的返回结果 增量解析
TokenDiffResult 顶层 patch / unchangedRanges / 路径感知 ops / dirty span 组成的结构化 diff 结果 增量解析

TokenDiffPatchTokenDiffUnchangedRangeStructuralDiffPathStructuralDiffOp 以及各个具体 op 类型都不单独从 root 入口导出。这是刻意控制公开面:稳定接入面是 TokenDiffResult 本身,而不是每个细碎命名类型都单独承诺长期兼容。

如需消费这些细粒度结构,推荐直接从结果字段推导:

type DiffPatch = TokenDiffResult["patches"][number];
type DiffRange = TokenDiffResult["unchangedRanges"][number];
type DiffOp = TokenDiffResult["ops"][number];

同理,IncrementalSessionIncrementalSessionApplyModeIncrementalSessionFallbackReason 当前也从 root 入口导出; 如果你需要会话对象类型,推荐直接从 ReturnType<typeof createIncrementalSession> 推导。

类型收窄

类型 说明 详情
NarrowToken TextToken & { type: TType } & TExtra —— 收窄后的 token 类型 Token 结构
NarrowDraft TokenDraft & { type: TType } & TExtra —— 收窄后的 draft 类型 Token 结构
NarrowTokenUnion 从 token map 生成的 NarrowToken 联合类型 Token 结构

解析器与选项

类型 说明 详情
Parser createParser 返回的对象——parsestripstructuralprint API 参考
ParseOptions parseRichText 的选项——handlers、syntax、tracking 等 ParseOptions 选项
ParserBaseOptions ParseOptionsStructuralParseOptions 的共享基类 API 参考
StructuralParseOptions parseStructural 的选项 API 参考
PrintOptions printStructural / parser.print 的选项 API 参考
DslContext 解析会话的语法配置 + createId 捆绑 DslContext

处理器

类型 说明 详情
TagHandler 带有可选 inlineblockraw 方法的 handler 对象 编写标签处理器
TagForm "inline" | "block" | "raw" DSL 语法
InlineShorthandOption boolean | readonly string[] —— implicitInlineShorthand 的简写控制类型 ParseOptions 选项
PipeArgs 带文本/token 访问器的已解析管道分隔参数 处理器工具函数
PipeHandlerDefinition createPipeHandlers 的每标签定义 处理器辅助函数
BlockTagInput declareMultilineTags 的输入形状 处理器辅助函数
BlockTagLookup 已解析的 block 标签查找表 处理器辅助函数
MultilineForm "inline" | "raw" | "block" —— 多行标签形式(TagForm 别名) 处理器辅助函数

语法与配置

类型 说明 详情
SyntaxInput createSyntax 的输入形状;createEasySyntax 额外接受 closeMiddle?: string 自定义语法
SyntaxConfig 完全解析的语法配置(只读) 自定义语法
TagNameConfig 有效标签名字符规则 自定义标签名字符
CreateId (draft: TokenDraft) => string —— ID 工厂函数 稳定 Token ID
EasyStableIdOptions createEasyStableId 的选项 稳定 Token ID

位置追踪

类型 说明 详情
SourcePosition {offset, line, column} —— 源码中的单个点 源码位置追踪
SourceSpan {start, end} —— 覆盖一个 token 的范围 源码位置追踪
PositionTracker resolve(offset) 的对象,用于偏移量到位置的映射 源码位置追踪

Token 遍历

类型 说明 详情
TokenVisitContext {parent, depth, index} —— 传递给 walk/map 的上下文 Token 遍历
WalkVisitor walkTokens 的访问器类型(函数或 record) Token 遍历
MapVisitor mapTokens 的访问器类型 Token 遍历

错误

类型 说明 详情
ErrorCode 所有错误码字符串的联合类型 错误处理
ParseError 错误对象——codemessagelinecolumnsnippet 错误处理
⚠️ **GitHub.com Fallback** ⚠️