豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 118 行 · 12293 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「命令行参数」之书。
寻观「标准库」之「操作系统」之「路径」之书。
寻观「标准库」之「操作系统」之「子进程」之书。
寻观「标准库」之「操作系统」之「进程」之书。
寻观「豫言终端」之「命令目录」之书。
寻观「豫言终端」之「程序解析」之书。
寻观「豫言终端」之「交互编辑」之书。
寻观「豫言终端」之「工具适配」之书。

「:文言:以己为替身,验命不实布。汉语:测试程序兼任工具替身,核验参数、工作目录、退出状态和发布失败中止,不访问部署服务。:」
「验」乃化「爻」而化「字符串」而「有」也。
「验」者会「真否」而会「消息」而若「真否」则「元」否则「发生事故」授以「有」于「消息」也。

「验补全」乃化「字符串」而化「字符串」而「有」也。
「验补全」者会「输入」而会「期望」而
    虑「候选」者「当前匹配候选可列空词」于「输入」于「罄」于「阳」而
    「验」于(「存在吗」授以「补全候选」于(会「项」而「字符串相等吗」于(「项」中「零」)于「期望」)于「候选」)于(『补全缺失:』附「输入」附『 → 』附「期望」)
也。

「验解析」乃化(「列」于「字符串」)而化「字符串」而「有」也。
「验解析」者会「输入」而会「期望」而
    虑「结果」者「解析管理余词」于『』于「输入」而
    「验」于(「且」于(「等于」于(「结果」中「零」)于「零」)于(「字符串相等吗」于(「结果」中「一」)于「期望」))于(『命令解析错误:』附「期望」)
也。

「纯命令测试」乃化「有」而「有」也。
「纯命令测试」者会「无」而(
    「验补全」于『wz』于『网站 』;
    「验补全」于『网站 yl』于『网站 预览 』;
    「验补全」于『网站 shangchuan』于『网站 上传 』;
    「验补全」于『网站 shchn』于『网站 上传 』;
    「验补全」于『网站 』于『网站 构建 』;
    「验补全」于『help wz』于『help 网站 』;
    「验补全」于『help 网站 sc』于『help 网站 上传 』;
    「验补全」于『帮助 网站 sc』于『帮助 网站 上传 』;
    「验补全」于『--预演 网站 sc』于『--预演 网站 上传 』;
    「验补全」于『--项目 "/tmp/含 空格" 网站 yl』于『--项目 "/tmp/含 空格" 网站 预览 』;
    「验补全」于『』于『网站 』;
    「验补全」于『工具 构建 wd』于『工具 构建 文档网站生成器 』;
    「验补全」于『工具 构建 jywyfwq』于『工具 构建 简易网页服务器 』;
    「验补全」于『编译 bz』于『编译 标准库 』;
    「验补全」于『类型检查 yyzd』于『类型检查 豫言终端 』;
    「验补全」于『包 检查 bz』于『包 检查 标准库 』;
    「验解析」于(「列」【『网站』,『预览』】)于『网站 预览』;
    「验」于(「非」于(「等于」于((「解析管理余词」于『』于(「列」【『wangzhan』,『shangchuan』】))中「零」)于「零」))于『完整拼音不能直接执行』;
    「验」于(「非」于(「等于」于((「解析管理余词」于『』于(「列」【『网站』,『yl』】))中「零」)于「零」))于『子命令拼音不能直接执行』;
    「验解析」于(「列」【『编译』,『豫言终端』】)于『编译』;
    「验」于(「等于」于((「解析管理余词」于『』于(「列」【『w』】))中「零」)于「一」)于『拼音前缀不能直接执行』;
    「验」于(「等于」于((「解析管理余词」于『』于(「列」【『./网站』】))中「零」)于「一」)于『显式路径应保留给外部程序』;
    「验」于(「等于」于(「长度」授以「字符串」于(「按字符分隔」于(「字节转字符串」于「一零」)于(「命令帮助文本」于『』)))于(「长度」授以「命令条目」于「命令登记表」))于『帮助必须每条命令恰好一行』;
    「验」于(「非」于(「是子字符串吗」于『格式化』于(「命令帮助文本」于『网站』)))于『分组帮助混入其他命令』
)也。

「替身运行」乃化(「列」于「字符串」)而「整数」也。
「替身运行」者会「参数」而
    虑「旧记」者若「路径存在」于『调用记录』则「读文件」于『调用记录』否则『』而
    虑「本记」者(「获取文件名」于(「获取程序名」于「元」))附『:』附(「间合」于『|』于「参数」)附『「:换行:」』而
    虑「无」者「写文件」于『调用记录』于(「旧记」附「本记」)而
    虑「无」者「打印行」于(『目录:』附(「获取当前路径」于「元」))而
    虑「无」者「打印调用参数」于「参数」而
    若「路径存在」于『要求失败』则「七」否则「零」
也。

「执行验例」乃化「字符串」而化「字符串」而化(「列」于「字符串」)而(「爻」合「字符串」合「字符串」)也。
「执行验例」者会「终端」而会「根」而会「参数」而
    「获取输出」于『env』于(「附加」授以「字符串」于(「列」【『YYSH_TOOL_DIR=』附「根」,「终端」,『--项目』,「根」】)于「参数」)
也。

「集成测试」乃化「字符串」而「有」也。
「集成测试」者会「终端文字」而
    虑「终端」者「绝对工具路径」于(「获取当前路径」于「元」)于「终端文字」而
    虑「自身」者「绝对工具路径」于(「获取当前路径」于「元」)于(「获取程序名」于「元」)而
    虑「临时」者「获取输出」于『mktemp』于(「列」【『-d』,『/tmp/豫言终端 验证.XXXXXX』】)而
    虑「无」者「验」于(「临时」中「零」)于『创建测试目录失败』而
    虑「根」者「去除串结尾」于『「:换行:」』于(「临时」中「一」)而
    虑「无」者「态射」授以「字符串」授以「有」于(「列」【『yy网站发布』,『yy豫构』,『yy源码格式化』】)于(会「名」而
        「验」于(「运行」于『ln』于(「列」【『-s』,「自身」,(「路径合并」于「根」于「名」)】))于『建立替身失败』)而
    虑「帮助」者「执行验例」于「终端」于「根」于(「列」【『help』,『网站』】)而
    虑「无」者「验」于(「且」于(「帮助」中「零」)于(「是子字符串吗」于『网站 上传』于(「帮助」中「一」)))于『无工具环境的分组帮助失败』而
    虑「预演」者「执行验例」于「终端」于「根」于(「列」【『--预演』,『网站』,『发布』】)而
    虑「无」者「验」于(「且」于(「预演」中「零」)于(「非」于(「路径存在」于(「路径合并」于「根」于『调用记录』))))于『预演不应执行工具』而
    虑「构建」者「执行验例」于「终端」于「根」于(「列」【『编译』,『豫言终端』,『--』,『--选项』,『含 空格』,『』】)而
    虑「无」者「验」于(「且」于(「构建」中「零」)于(「是子字符串吗」于『参数:〈含 空格〉「:换行:」  参数:〈〉』于(「构建」中「一」)))于『参数边界或空参数丢失』而
    虑「无」者「写文件」于(「路径合并」于「根」于『调用记录』)于『』而
    虑「发布」者「执行验例」于「终端」于「根」于(「列」【『网站』,『发布』】)而
    虑「无」者「验」于(「且」于(「发布」中「零」)于(「字符串相等吗」于(「读文件」于(「路径合并」于「根」于『调用记录』))于『yy网站发布:构建「:换行:」yy网站发布:发布「:换行:」』))于『网站发布应依次构建再上传』而
    虑「无」者「写文件」于(「路径合并」于「根」于『调用记录』)于『』而
    虑「无」者「写文件」于(「路径合并」于「根」于『要求失败』)于『是』而
    虑「失败」者「执行验例」于「终端」于「根」于(「列」【『网站』,『发布』】)而
    虑「无」者「验」于(「且」于(「非」于(「失败」中「零」))于(「字符串相等吗」于(「读文件」于(「路径合并」于「根」于『调用记录』))于『yy网站发布:构建「:换行:」』))于『构建失败后仍然上传』而
    虑「无」者「运行」于『rm』于(「列」【(「路径合并」于「根」于『要求失败』)】)而
    虑「错误」者「执行验例」于「终端」于「根」于(「列」【『网站』,『yl』】)而
    虑「无」者「验」于(「非」于(「错误」中「零」))于『有歧义的命令应失败』而
    虑「工具拼音」者「执行验例」于「终端」于「根」于(「列」【『工具』,『构建』,『wd』】)而
    虑「无」者「验」于(「非」于(「工具拼音」中「零」))于『工具名拼音不能直接执行』而
    虑「无」者「写文件」于(「路径合并」于「根」于『测试包。包。豫』)于『』而
    虑「无」者「重置包补全」于「元」而
    虑「无」者「验补全」于(『--项目 "』附「根」附『" 编译 csb』)于(『--项目 "』附「根」附『" 编译 测试包 』)而
    虑「缺参」者「执行验例」于「终端」于「根」于(「列」【『格式化』】)而
    虑「无」者「验」于(「非」于(「缺参」中「零」))于『缺少文件应失败』而
    虑「缺器」者「执行验例」于「终端」于「根」于(「列」【『文档』,『生成』】)而
    虑「无」者「验」于(「且」于(「非」于(「缺器」中「零」))于(「是子字符串吗」于『工具不可执行』于(「缺器」中「二」)))于『缺少工具应给出修复提示』而
    虑「无」者「写文件」于(「路径合并」于「根」于『调用记录』)于『』而
    虑「上传」者「执行验例」于「终端」于「根」于(「列」【『-c』,『网站 上传』】)而
    虑「无」者「验」于(「且」于(「上传」中「零」)于(「字符串相等吗」于(「读文件」于(「路径合并」于「根」于『调用记录』))于『yy网站发布:发布「:换行:」』))于『单次命令行上传不应重新构建』而
    虑「无」者「验」于(「运行」于『rm』于(「列」【『-r』,「根」】))于『清理测试目录失败』而
    「打印行」于『管理命令集成测试通过』
也。

虑「程序」者「获取文件名」于(「获取程序名」于「元」)而
若「或者」于(「字符串相等吗」于「程序」于『yy网站发布』)于(「或者」于(「字符串相等吗」于「程序」于『yy豫构』)于(「字符串相等吗」于「程序」于『yy源码格式化』))
则「退出」于(「替身运行」于(「获取参数」于「元」))
否则(「纯命令测试」于「元」;
    鉴「获取参数」于「元」而
        有((「列」【「终端」】))则「集成测试」于「终端」
        或有「其他」则「发生事故」授以「有」于『请传入 yysh 路径』)。
yuyan · 292 行 · 22093 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「整数操作」之书。
寻观「标准库」之「数据结构」之「字符串术」之书。
寻观「标准库」之「数据结构」之「多态列」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「输入输出」之「笔」之书。
寻观「豫言终端」之「命令解析」之书。
寻观「豫言终端」之「程序解析」之书。
寻观「豫言终端」之「命令目录」之书。

「:
交互编辑结果的状态:零表示得到命令行,一表示输入结束,二表示用户取消。
编辑器只在行尾增删字符;候选区最多显示五行,并记录、清除上一次绘制的区域。
:」

「逃逸字符」者「字节转字符串」于「二七」也。
「换行字符」者「字节转字符串」于「一零」也。
「回车字符」者「字节转字符串」于「一三」也。
「清除当前行」者(「逃逸字符」附『[2K』)也。

「补全候选」即
    「字符串」「:补全后的命令行:」合
    「字符串」「:显示名称:」
也。

「删除末字符」乃化「字符串」而「字符串」也。
「删除末字符」者会「文本」而
    鉴(「反转」授以「字符串」于(「获取字符」于「文本」))而
        有「罄」则『』
        或有(「缀」于「末字符」于「其余反字符」)则「串组合并」于(「反转」授以「字符串」于「其余反字符」)
也。

「只含命令名」乃化「字符串」而「爻」也。
「只含命令名」者会「文本」而
    (「全部符合」授以「字符串」)于(会「字符」而「非」于(「是分隔字符」于「字符」))于(「获取字符」于「文本」)
也。

「引用程序名」乃化「字符串」而「字符串」也。
「引用程序名」者会「名称」而
    虑「需要引用」者(「存在吗」授以「字符串」)于
        (会「字符」而「或者」于(「是分隔字符」于「字符」)于
            (「或者」于(「字符串相等吗」于「字符」于(「字节转字符串」于「三四」))于
                (「字符串相等吗」于「字符」于(「字节转字符串」于「九二」))))
        于(「获取字符」于「名称」)而
    若「需要引用」
    则
        虑「反斜杠」者「字节转字符串」于「九二」而
        虑「双引号」者「字节转字符串」于「三四」而
        虑「反斜杠已转义」者「串查找替换」于「名称」于「反斜杠」于(「反斜杠」附「反斜杠」)而
        虑「双引号已转义」者「串查找替换」于「反斜杠已转义」于「双引号」于(「反斜杠」附「双引号」)而
        「双引号」附「双引号已转义」附「双引号」
    否则「名称」
也。

「分解当前词」乃化「字符串」而(「字符串」合「字符串」)也。
「分解当前词」者会「文本」而
    递归虑「继续分解」其化「整数」而化(「列」于「字符串」)而化「字符串」而化「字符串」而(「字符串」合「字符串」)者
        会「状态」而会「字符们」而会「已完成」而会「当前词」而
        鉴「字符们」而
            有「罄」则「已完成」与「当前词」
            或有(「缀」于「字符」于「字符尾」)则
                若「等于」于「状态」于「三」
                则「继续分解」于「零」于「字符尾」于「已完成」于(「当前词」附「字符」)
                否则若「等于」于「状态」于「四」
                则「继续分解」于「二」于「字符尾」于「已完成」于(「当前词」附「字符」)
                否则若「等于」于「状态」于「一」
                则若「字符串相等吗」于「字符」于『'』
                    则「继续分解」于「零」于「字符尾」于「已完成」于(「当前词」附「字符」)
                    否则「继续分解」于「一」于「字符尾」于「已完成」于(「当前词」附「字符」)
                否则若「等于」于「状态」于「二」
                则若「字符串相等吗」于「字符」于『"』
                    则「继续分解」于「零」于「字符尾」于「已完成」于(「当前词」附「字符」)
                    否则若「字符串相等吗」于「字符」于『\』
                        则「继续分解」于「四」于「字符尾」于「已完成」于(「当前词」附「字符」)
                        否则「继续分解」于「二」于「字符尾」于「已完成」于(「当前词」附「字符」)
                否则若「是分隔字符」于「字符」
                则「继续分解」于「零」于「字符尾」于(「已完成」附「当前词」附「字符」)于『』
                否则若「字符串相等吗」于「字符」于『'』
                则「继续分解」于「一」于「字符尾」于「已完成」于(「当前词」附「字符」)
                否则若「字符串相等吗」于「字符」于『"』
                则「继续分解」于「二」于「字符尾」于「已完成」于(「当前词」附「字符」)
                否则若「字符串相等吗」于「字符」于『\』
                则「继续分解」于「三」于「字符尾」于「已完成」于(「当前词」附「字符」)
                否则「继续分解」于「零」于「字符尾」于「已完成」于(「当前词」附「字符」)
    而「继续分解」于「零」于(「获取字符」于「文本」)于『』于『』
也。

「解读当前词」乃化「字符串」而(「爻」合「字符串」)也。
「解读当前词」者会「当前词」而
    若「字符串相等吗」于「当前词」于『』
    则「阳」与『』
    否则
        虑「解析结果」者「解析命令行」于「当前词」而
        若「解析结果」中「零」
        则鉴「解析结果」中「一」而
                有((「列」【「唯一词」】))则「阳」与「唯一词」
                或有「其他」则「阴」与『』
        否则「阴」与『』
也。

「制作命令补全候选」乃化「字符串」而化(「列」于「程序候选」)而(「列」于「补全候选」)也。
「制作命令补全候选」者会「文本前缀」而会「候选们」而
    鉴「候选们」而
        有「罄」则「罄」
        或有(「缀」于「候选」于「候选尾」)则
            虑「名称」者「候选」中「一」而
            「缀」于((「文本前缀」附(「引用程序名」于「名称」)附『 』)与「名称」)于(「制作命令补全候选」于「文本前缀」于「候选尾」)
也。

「制作路径补全候选」乃化「字符串」而化(「列」于「程序候选」)而(「列」于「补全候选」)也。
「制作路径补全候选」者会「文本前缀」而会「候选们」而
    鉴「候选们」而
        有「罄」则「罄」
        或有(「缀」于「候选」于「候选尾」)则
            虑「路径」者「候选」中「零」而
            虑「尾缀」者若「串结尾是它吗」于『/』于「路径」则『』否则『 』而
            「缀」于((「文本前缀」附(「引用程序名」于「路径」)附「尾缀」)与「路径」)于(「制作路径补全候选」于「文本前缀」于「候选尾」)
也。

「补全显示名已存在」乃化「字符串」而化(「列」于「补全候选」)而「爻」也。
「补全显示名已存在」者会「显示名」而会「候选们」而
    鉴「候选们」而
        有「罄」则「阴」
        或有(「缀」于「候选」于「候选尾」)则
            若「字符串相等吗」于「显示名」于(「候选」中「一」)
            则「阳」
            否则「补全显示名已存在」于「显示名」于「候选尾」
也。

「追加未见补全」乃化(「列」于「补全候选」)而化(「列」于「补全候选」)而(「列」于「补全候选」)也。
「追加未见补全」者会「已有」而会「新增」而
    鉴「新增」而
        有「罄」则「已有」
        或有(「缀」于「候选」于「候选尾」)则
            若「补全显示名已存在」于(「候选」中「一」)于「已有」
            则「追加未见补全」于「已有」于「候选尾」
            否则「追加未见补全」于(「结尾多」授以「补全候选」于「已有」于「候选」)于「候选尾」
也。

「当前匹配候选可列空词」乃化「字符串」而化(「列」于「程序候选」)而化「爻」而(「列」于「补全候选」)也。
「当前匹配候选可列空词」者会「文本」而会「候选索引」而会「列出空词」而
    虑「当前部分」者「分解当前词」于「文本」而
    虑「文本前缀」者「当前部分」中「零」而
    虑「当前词结果」者「解读当前词」于(「当前部分」中「一」)而
    虑「前缀解析」者「解析命令行」于「文本前缀」而
    若「且」于(「当前词结果」中「零」)于(「前缀解析」中「零」)
    则
        虑「当前词」者「当前词结果」中「一」而
        虑「管理候选」者「含全局选项的补全词」于(「前缀解析」中「一」)而
        虑「管理匹配」者若「字符串相等吗」于「当前词」于『』
            则(若「列出空词」则「管理候选」否则「罄」)
            否则「实时匹配程序」于「当前词」于「管理候选」而
        虑「管理补全」者「制作命令补全候选」于「文本前缀」于「管理匹配」而
        虑「原补全」者鉴「前缀解析」中「一」而
            有「罄」则(
                若「字符串相等吗」于「当前词」于『』
                则「罄」
                否则若「是子字符串吗」于『/』于「当前词」
                    则「制作路径补全候选」于「文本前缀」于(「枚举路径候选」于「当前词」于「阴」)
                    否则
                        虑「本地候选」者「制作路径补全候选」于「文本前缀」于(「枚举路径候选」于「当前词」于「阴」)而
                        虑「程序候选们」者「制作命令补全候选」于「文本前缀」于(「实时匹配程序」于「当前词」于「候选索引」)而
                        「追加未见补全」于「本地候选」于「程序候选们」)
            或有「已有参数」则
                若「字符串相等吗」于「当前词」于『』
                则若「列出空词」
                    则「制作路径补全候选」于「文本前缀」于(「枚举路径候选」于『』于「阴」)
                    否则「罄」
                否则「制作路径补全候选」于「文本前缀」于(「枚举路径候选」于「当前词」于「阴」)而
        「:文言:命词先列,路径仍存。汉语:管理命令优先显示,继续保留原有文件和外部程序候选。:」
        「追加未见补全」于「管理补全」于「原补全」
    否则「罄」
也。

「当前匹配候选」乃化「字符串」而化(「列」于「程序候选」)而(「列」于「补全候选」)也。
「当前匹配候选」者会「文本」而会「候选索引」而
    「当前匹配候选可列空词」于「文本」于「候选索引」于「阴」
也。

「空词可打开候选吗」乃化「字符串」而「爻」也。
「空词可打开候选吗」者会「文本」而
    虑「当前部分」者「分解当前词」于「文本」而
    「字符串相等吗」于(「当前部分」中「一」)于『』
也。

「是右方向键」乃化「字符串」而「爻」也。
「是右方向键」者会「按键」而
    「字符串相等吗」于「按键」于(「逃逸字符」附『[C』)
也。

「候选显示窗口」乃化「整数」而化(「列」于「补全候选」)而(「列」于「补全候选」)也。
「候选显示窗口」者会「选中序数」而会「候选们」而
    鉴「候选们」而
        有「罄」则「罄」
        或有「其他」则
            (「取」授以「补全候选」)于「五」于
                ((「放」授以「补全候选」)于(「乘」于(「除以」于「选中序数」于「五」)于「五」)于「候选们」)
也。

「候选窗口选中行」乃化「整数」而「整数」也。
「候选窗口选中行」者会「选中序数」而
    「减」于「选中序数」于(「乘」于(「除以」于「选中序数」于「五」)于「五」)
也。

「候选可见行数」乃化「整数」而「整数」也。
「候选可见行数」者会「总数」而若「大于」于「总数」于「五」则「五」否则「总数」也。

「打印候选区域」乃化「整数」而化「整数」而化「整数」而化「整数」而化「整数」而化(「列」于「补全候选」)而「有」也。
「打印候选区域」者会「行号」而会「区域行数」而会「可见行数」而会「选中序数」而会「总数」而会「窗口」而
    若「等于」于「行号」于「区域行数」
    则「元」
    否则(
        虑「无」者「打印」于(「换行字符」附「回车字符」附「清除当前行」)而
        若「小于」于「行号」于「可见行数」
        则鉴「窗口」而
                有「罄」则「打印候选区域」于(「加」于「行号」于「一」)于「区域行数」于「可见行数」于「选中序数」于「总数」于「罄」
                或有(「缀」于「候选」于「候选尾」)则(
                    虑「无」者若「等于」于「行号」于(「候选窗口选中行」于「选中序数」)
                        则「打印」于(「逃逸字符」附『[7m ❯ 』附(「候选」中「一」)附『 』附「逃逸字符」附『[0m  』附
                            (「整数表示」于(「加」于「选中序数」于「一」))附『/』附(「整数表示」于「总数」))
                        否则「打印」于(『   』附(「候选」中「一」))而
                    「打印候选区域」于(「加」于「行号」于「一」)于「区域行数」于「可见行数」于「选中序数」于「总数」于「候选尾」)
        否则「打印候选区域」于(「加」于「行号」于「一」)于「区域行数」于「可见行数」于「选中序数」于「总数」于「罄」)
也。

「重绘编辑器」乃化「字符串」而化「字符串」而化「整数」而化(「列」于「补全候选」)而化「整数」而「整数」也。
「重绘编辑器」者会「提示」而会「文本」而会「选中序数」而会「候选们」而会「原区域行数」而
    虑「窗口」者「候选显示窗口」于「选中序数」于「候选们」而
    虑「总数」者(「长度」授以「补全候选」)于「候选们」而
    虑「可见行数」者「候选可见行数」于「总数」而
    虑「区域行数」者「整数最大值」于「原区域行数」于「可见行数」而
    虑「无」者「打印」于(「回车字符」附「清除当前行」附「提示」附「文本」)而
    虑「无」者「打印候选区域」于「零」于「区域行数」于「可见行数」于「选中序数」于「总数」于「窗口」而
    虑「无」者若「大于」于「区域行数」于「零」
        则「打印」于(「逃逸字符」附『[』附(「整数表示」于「区域行数」)附『A』附「回车字符」附「提示」附「文本」)
        否则「元」而
    「可见行数」
也。

「结束编辑器」乃化「字符串」而化「字符串」而化「字符串」而化「整数」而「有」也。
「结束编辑器」者会「提示」而会「文本」而会「尾记」而会「区域行数」而
    虑「新区域行数」者「重绘编辑器」于「提示」于「文本」于「零」于「罄」于「区域行数」而
    「打印行」于「尾记」
也。

「下个选中序数」乃化「整数」而化「整数」而「整数」也。
「下个选中序数」者会「当前」而会「总数」而
    若「等于」于(「加」于「当前」于「一」)于「总数」则「零」否则「加」于「当前」于「一」
也。

「读取交互命令行」乃化「字符串」而化(「列」于「程序候选」)而(「整数」合「字符串」)也。
「读取交互命令行」者会「提示」而会「候选索引」而
    若「进入终端原始输入模式」于「元」
    则
        递归虑「继续编辑」其化「字符串」而化「整数」而化「整数」而化「爻」而(「整数」合「字符串」)者
            会「文本」而会「选中序数」而会「原区域行数」而会「空词候选已打开」而
            虑「候选们」者「当前匹配候选可列空词」于「文本」于「候选索引」于「空词候选已打开」而
            虑「候选数」者(「长度」授以「补全候选」)于「候选们」而
            虑「实际选中」者若「等于」于「候选数」于「零」则「零」否则若「小于」于「选中序数」于「候选数」则「选中序数」否则「零」而
            虑「可见行数」者「重绘编辑器」于「提示」于「文本」于「实际选中」于「候选们」于「原区域行数」而
            虑「读取结果」者「读取终端按键」于「元」而
            若「非」于(「读取结果」中「零」)
            则(「退出终端原始输入模式」于「元」;「结束编辑器」于「提示」于「文本」于『』于「可见行数」;(「一」与『』))
            否则
                虑「按键」者「读取结果」中「一」而
                虑「键码」者「字符转整数」于「按键」于「零」而
                若「或者」于(「等于」于「键码」于「一三」)于(「等于」于「键码」于「一零」)
                则(「退出终端原始输入模式」于「元」;「结束编辑器」于「提示」于「文本」于『』于「可见行数」;(「零」与「文本」))
                否则若「或者」于(「等于」于「键码」于「五」)于(「是右方向键」于「按键」)
                则若「大于」于「候选数」于「零」
                    则
                        虑「选中候选」者(「第N个」授以「补全候选」)于「实际选中」于「候选们」而
                        「继续编辑」于(「选中候选」中「零」)于「零」于「可见行数」于「阴」
                    否则(「打印」于(「字节转字符串」于「七」);「继续编辑」于「文本」于「实际选中」于「可见行数」于「空词候选已打开」)
                否则若「等于」于「键码」于「九」
                则若「大于」于「候选数」于「零」
                    则「继续编辑」于「文本」于(「下个选中序数」于「实际选中」于「候选数」)于「可见行数」于「空词候选已打开」
                    否则若「且」于(「空词可打开候选吗」于「文本」)于(「非」于「空词候选已打开」)
                        则「继续编辑」于「文本」于「零」于「可见行数」于「阳」
                        否则(「打印」于(「字节转字符串」于「七」);「继续编辑」于「文本」于「零」于「可见行数」于「空词候选已打开」)
                否则若「或者」于(「等于」于「键码」于「一二七」)于(「等于」于「键码」于「八」)
                则「继续编辑」于(「删除末字符」于「文本」)于「零」于「可见行数」于「阴」
                否则若「等于」于「键码」于「三」
                则(「退出终端原始输入模式」于「元」;「结束编辑器」于「提示」于「文本」于『^C』于「可见行数」;(「二」与『』))
                否则若「且」于(「等于」于「键码」于「四」)于(「字符串相等吗」于「文本」于『』)
                则(「退出终端原始输入模式」于「元」;「结束编辑器」于「提示」于「文本」于『』于「可见行数」;(「一」与『』))
                否则若「或者」于(「小于」于「键码」于「三二」)于(「等于」于「键码」于「一二七」)
                则「继续编辑」于「文本」于「实际选中」于「可见行数」于「空词候选已打开」
                否则「继续编辑」于(「文本」附「按键」)于「零」于「可见行数」于「阴」
        而「继续编辑」于『』于「零」于「零」于「阴」
    否则(「标准错误打印行」于『无法进入终端原始输入模式』;(「一」与『』))
也。
yuyan · 172 行 · 15855 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字符串术」之书。
寻观「标准库」之「数据结构」之「多态列」之书。
寻观「豫言终端」之「程序解析」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「路径」之书。
寻观「构建基础」之「包定位」之书。

「:文言:命、助、补全,同出一籍。汉语:命令路径、用法、摘要、工具、固定参数及参数数量由同一登记表维护。:」
「命令条目」即「字符串」合「字符串」合「字符串」合「字符串」合(「列」于「字符串」)合「整数」合「整数」也。
「命令登记表」乃「列」于「命令条目」也。
「命令登记表」者(「列」【
    (『帮助』与『帮助 [命令…]』与『查看全部常用命令或详细用法;也可用 help』与『』与「罄」与「零」与「九九」),
    (『状态』与『状态』与『查看项目根目录与工具路径』与『』与「罄」与「零」与「零」),
    (『环境 检查』与『环境 检查』与『检查编译器、工具和网站依赖』与『』与「罄」与「零」与「零」),
    (『工具 构建』与『工具 构建 [工具名]』与『构建指定工具或整套常用工具,工具名可智能补全』与『』与「罄」与「零」与「一」),
    (『包 列表』与『包 列表』与『列出可发现的包』与『豫构』与(「列」【『发现』】)与「零」与「零」),
    (『包 检查』与『包 检查 <包名>』与『检查包配置和依赖』与『豫构』与(「列」【『检查』】)与「一」与「一」),
    (『编译』与『编译 <包名> [豫构选项] [-- 编译器参数…]』与『按包配置构建;--输出 指定产物』与『豫构』与(「列」【『构建』】)与「一」与「九九」),
    (『编译文件』与『编译文件 <路径> [豫构选项] [-- 编译器参数…]』与『按源文件所属包构建』与『豫构』与(「列」【『文件』】)与「一」与「九九」),
    (『类型检查』与『类型检查 <包名> [豫构选项] [-- 编译器参数…]』与『只运行类型检查』与『豫构』与(「列」【『类型检查』】)与「一」与「九九」),
    (『格式化』与『格式化 <文件> [文件…]』与『格式化并写回指定源码文件』与『源码格式化』与「罄」与「一」与「九九」),
    (『文档 生成』与『文档 生成 [入口] [输出目录]』与『生成接口文档;默认编译器入口、dist/文档』与『文档网站生成器』与(「列」【『构建』】)与「零」与「二」),
    (『源码 生成』与『源码 生成 [输出目录]』与『生成源码浏览网站;默认 dist/源码』与『源码树浏览器』与(「列」【『构建』】)与「零」与「一」),
    (『资料 生成』与『资料 生成』与『从双语文档生成官网教程与指南』与『网站资料生成』与「罄」与「零」与「零」),
    (『网站 构建』与『网站 构建』与『构建官网、文档、源码页并检查产物』与『网站发布』与(「列」【『构建』】)与「零」与「零」),
    (『网站 检查』与『网站 检查』与『检查已有网站的必要产物』与『网站发布』与(「列」【『检查』】)与「零」与「零」),
    (『网站 预览』与『网站 预览 [端口]』与『前台预览 dist/网站,默认本机端口 8000;Ctrl-C 停止』与『简易网页服务器』与「罄」与「零」与「一」),
    (『网页服务』与『网页服务 <目录> [端口]』与『前台提供本机静态网页,默认端口 8000;Ctrl-C 停止』与『简易网页服务器』与「罄」与「一」与「二」),
    (『网站 上传』与『网站 上传』与『检查并上传现有产物至配置的网站;会复制本机条款』与『网站发布』与(「列」【『发布』】)与「零」与「零」),
    (『网站 发布』与『网站 发布』与『依次构建、检查并上传,失败立即停止』与『网站发布』与「罄」与「零」与「零」),
    (『自举包 导出』与『自举包 导出 <新目录>』与『导出编译器与豫构双种子包』与『豫构』与(「列」【『自举包』,『--输出』】)与「一」与「一」),
    (『自举包 发布』与『自举包 发布』与『验证并发布连续自举包,沿用 yybs 分支校验』与『发布连续自举包』与(「列」【『--publish』】)与「零」与「零」),
    (『切换』与『切换 [目录]』与『切换当前目录,也可用 cd』与『』与「罄」与「零」与「一」),
    (『目录』与『目录』与『显示当前目录,也可用 pwd』与『』与「罄」与「零」与「零」),
    (『清屏』与『清屏』与『清空终端显示,也可用 clear』与『』与「罄」与「零」与「零」),
    (『退出』与『退出 [状态码]』与『退出终端,也可用 exit』与『』与「罄」与「零」与「一」)
】)也。

「命令别名」乃化「字符串」而「字符串」也。
「命令别名」者会「名」而
    鉴「名」而
        有『help』则『帮助』
        或有『--help』则『帮助』
        或有『cd』则『切换』
        或有『pwd』则『目录』
        或有『clear』则『清屏』
        或有『exit』则『退出』
        或有「其他」则「名」
也。

「名称候选」乃化「字符串」而「程序候选」也。
「名称候选」者会「名」而「名」与「名」与(「字符串转无调拼音」于「名」)与(「字符串转拼音首字母」于「名」)也。

「添唯一名称」乃化「字符串」而化(「列」于「程序候选」)而(「列」于「程序候选」)也。
「添唯一名称」者会「名」而会「已有」而
    若「或者」于(「字符串相等吗」于「名」于『』)于((「首个同名候选」于「名」于「已有」)中「零」)
    则「已有」否则「结尾多」授以「程序候选」于「已有」于(「名称候选」于「名」)
也。

「命令下词」乃化「字符串」而「列」于「程序候选」也。
「命令下词」者会「前缀」而
    虑「前导」者若「字符串相等吗」于「前缀」于『』则『』否则「前缀」附『 』而
    「从左折叠」授以「命令条目」授以(「列」于「程序候选」)于
        (会「条目」而会「已有」而
            若「串开头是它吗」于「前导」于(「条目」中「零」)
            则鉴「按字符分隔」于『 』于(「去除串开头」于「前导」于(「条目」中「零」))而
                有(「缀」于「首词」于「余」)则「添唯一名称」于「首词」于「已有」
                或有「罄」则「已有」
            否则「已有」)于「罄」于「命令登记表」
也。

「常用工具候选」乃化「有」而「列」于「程序候选」也。
「常用工具候选」者会「无」而
    「添唯一名称」于『豫言终端』于(「从左折叠」授以「命令条目」授以(「列」于「程序候选」)于
        (会「条目」而会「已有」而「添唯一名称」于(「条目」中「三」)于「已有」)于「罄」于「命令登记表」)
也。

「决定命令词」乃化「字符串」而化(「列」于「程序候选」)而(「整数」合「字符串」合「字符串」)也。
「决定命令词」者会「输入」而会「候选」而
    虑「同名」者「首个同名候选」于「输入」于「候选」而
    「:文言:执行唯从实名,拼音仅供补全。汉语:不把全拼、首字母或前缀解释成可执行命令。:」
    若「同名」中「零」则「零」与(「同名」中「一」)与『』否则「一」与『』与(『未找到名称:』附「输入」附『;请先补全为正式名称』)
也。

「包补全根缓存」者「新引用」授以「字符串」于『』也。
「包补全缓存」者「新引用」授以(「列」于「程序候选」)于「罄」也。
「重置包补全」乃化「有」而「有」也。
「重置包补全」者会「无」而「写引用」于「包补全根缓存」于『』也。

「查补全项目根」乃化「字符串」而「字符串」也。
「查补全项目根」者会「目录文字」而
    若「路径存在」于(「路径合并」于「目录文字」于『豫言编译器/入口。豫』)则「目录文字」否则
    虑「父目录」者「获取文件夹名」于「目录文字」而
    若「或者」于(「字符串相等吗」于「父目录」于『』)于(「字符串相等吗」于「父目录」于「目录文字」)
    则「获取当前路径」于「元」否则「查补全项目根」于「父目录」
也。

「项目包补全」乃化「字符串」而(「列」于「程序候选」)也。
「项目包补全」者会「项目文字」而
    虑「根」者若「字符串相等吗」于「项目文字」于『』则「查补全项目根」于(「获取当前路径」于「元」)
        否则若「路径名是绝对路径」于「项目文字」则「项目文字」否则「路径合并」于(「获取当前路径」于「元」)于「项目文字」而
    若「字符串相等吗」于「根」于(「读引用」于「包补全根缓存」)则「读引用」于「包补全缓存」否则
    「:文言:一行之内,索籍一次;坏籍不阻编辑。汉语:复用豫构的包发现规则并缓存,跳过旧版目录和符号链接,发现失败只取消包候选。:」
    虑「候选」者「尝试运行」授以(「列」于「程序候选」)于
        (会「无」而「从左折叠」授以「包记录」授以(「列」于「程序候选」)于
            (会「记录」而会「已有」而「添唯一名称」于(「记录」中「一」)于「已有」)于「罄」于(「发现包」于「根」于『』))于
        (会「错误」而「罄」授以「程序候选」)而(
            「写引用」于「包补全根缓存」于「根」;「写引用」于「包补全缓存」于「候选」;「候选」)
也。

「:文言:逐词正名,余皆参量;歧则止。汉语:返回状态、规范命令路径、未消费参数、诊断;根未识别为一,已进入命令后的错误为二。:」
「管理解析结果」即「整数」合「字符串」合(「列」于「字符串」)合「字符串」也。
「解析管理余词」乃化「字符串」而化(「列」于「字符串」)而「管理解析结果」也。
「解析管理余词」者会「前缀」而会「参数」而
    鉴「参数」而
        有「罄」则「零」与「前缀」与「罄」与『』
        或有(「缀」于「首词」于「尾」)则
            若「且」于(「字符串相等吗」于「前缀」于『』)于(「是子字符串吗」于『/』于「首词」)
            则「一」与「前缀」与「参数」与『显式路径交由外部程序解析』否则
            虑「候选」者「命令下词」于「前缀」而
            鉴「候选」而
                有「罄」则「零」与「前缀」与「参数」与『』
                或有「其他」则
                    虑「词」者若「字符串相等吗」于「前缀」于『』则「命令别名」于「首词」否则「首词」而
                    虑「结果」者「决定命令词」于「词」于「候选」而
                    若「等于」于(「结果」中「零」)于「零」
                    则「解析管理余词」于((若「字符串相等吗」于「前缀」于『』则『』否则「前缀」附『 』)附(「结果」中「一」))于「尾」
                    否则(若「字符串相等吗」于「前缀」于『』则「结果」中「零」否则「二」)与「前缀」与「参数」与(「结果」中「二」)
也。

「管理补全词」乃化「字符串」而化(「列」于「字符串」)而(「列」于「程序候选」)也。
「管理补全词」者会「项目文字」而会「已输入」而
    虑「输入」者鉴「已输入」而
        有(「缀」于「首」于「尾」)则(
            虑「首解」者「决定命令词」于(「命令别名」于「首」)于(「命令下词」于『』)而
            若「且」于(「等于」于(「首解」中「零」)于「零」)于(「字符串相等吗」于(「首解」中「一」)于『帮助』)则「尾」否则「已输入」)
        或有「罄」则「罄」而
    虑「结果」者「解析管理余词」于『』于「输入」而
    若「非」于(「等于」于(「结果」中「零」)于「零」)则「罄」否则
    鉴「结果」中「二」而
        有「罄」则
            若「字符串相等吗」于(「结果」中「一」)于『工具 构建』
            则「常用工具候选」于「元」否则
            若「存在吗」授以「字符串」于(会「命」而「字符串相等吗」于「命」于(「结果」中「一」))于(「列」【『编译』,『类型检查』,『包 检查』】)
            则「项目包补全」于「项目文字」否则「命令下词」于(「结果」中「一」)
        或有「其他」则「罄」
也。

「含全局选项的补全词」乃化(「列」于「字符串」)而(「列」于「程序候选」)也。
「含全局选项的补全词」者会「已输入」而
    递归虑「继续补全」其化「字符串」而化(「列」于「字符串」)而(「列」于「程序候选」)者
        会「项目文字」而会「参数」而鉴「参数」而
            有(「缀」于『--预演』于「余」)则「继续补全」于「项目文字」于「余」
            或有(「缀」于『--项目』于(「缀」于「指定文字」于「余」))则「继续补全」于「指定文字」于「余」
            或有「其他」则「管理补全词」于「项目文字」于「其他」
    而「继续补全」于『』于「已输入」
也。

「查命令条目」乃化「字符串」而(「列」于「命令条目」)也。
「查命令条目」者会「路径」而
    「滤」授以「命令条目」于(会「条目」而「字符串相等吗」于「路径」于(「条目」中「零」))于「命令登记表」
也。

「命令帮助文本」乃化「字符串」而「字符串」也。
「命令帮助文本」者会「路径」而
    「间合」于(「字节转字符串」于「一零」)于(「态射」授以「命令条目」授以「字符串」于
        (「滤」授以「命令条目」于(会「条目」而
            「或者」于(「字符串相等吗」于「路径」于『』)于
                (「或者」于(「字符串相等吗」于「路径」于(「条目」中「零」))于(「串开头是它吗」于(「路径」附『 』)于(「条目」中「零」))))于「命令登记表」)于
        (会「条目」而(「条目」中「一」)附『  —  』附(「条目」中「二」)))
也。
yuyan · 8 行 · 700 字节 · UTF-8
§
「名称」者『豫言终端』也。
「所有者」者『豫言』也。
「版本」者『0.1.0』也。
「类型」者「典」【「种类」者『可执行文件』也,「入口」者『入口』也,「文件名」者『yysh』也,】也。
「简介」者『整合编译、文档与网站工具,提供中文及拼音命令补全。』也。
「说明」者「典」【「汉语」者『包说明.汉语.md』也,「文言」者『包说明.文言.md』也,】也。
「:文言:各器各籍,所依明列。汉语:独立软件包,分类目录不参与导入解析。:」
「依赖」者「列」【『标准库』,『编译器核心』,『构建基础』】也。
yuyan · 62 行 · 5354 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字符串术」之书。
寻观「标准库」之「数据结构」之「多态列」之书。

「:
命令行只负责把文字分成参数,不实现隐式展开或命令替换。
支持单引号、双引号、反斜杠转义与空参数。
返回值依次是:成功与否、参数列、错误文字。
:」

「是分隔字符」乃化「字符串」而「爻」也。
「是分隔字符」者会「字符」而
    「或者」于(「字符串相等吗」于「字符」于『 』)于
        (「或者」于(「字符串相等吗」于「字符」于『	』)于(「字符串相等吗」于「字符」于『 』))
也。

「收束参数」乃化(「列」于「字符串」)而化「爻」而化(「列」于「字符串」)而(「列」于「字符串」)也。
「收束参数」者会「反字符」而会「参数已开始」而会「反参数」而
    若「参数已开始」
    则「缀」于(「串组合并」于(「反转」授以「字符串」于「反字符」))于「反参数」
    否则「反参数」
也。

「解析命令行」乃化「字符串」而(「爻」合(「列」于「字符串」)合「字符串」)也。
「解析命令行」者会「命令行」而
    递归虑「继续解析」其化「整数」而化(「列」于「字符串」)而化(「列」于「字符串」)而化「爻」而化(「列」于「字符串」)而(「爻」合(「列」于「字符串」)合「字符串」)者
        会「状态」而会「剩余字符」而会「反字符」而会「参数已开始」而会「反参数」而
        鉴「剩余字符」而
            有「罄」则
                若「等于」于「状态」于「一」则「阴」与「罄」与『单引号未闭合』否则
                若「等于」于「状态」于「二」则「阴」与「罄」与『双引号未闭合』否则
                若「或者」于(「等于」于「状态」于「三」)于(「等于」于「状态」于「四」)
                则「阴」与「罄」与『命令行以反斜杠结尾』
                否则「阳」与(「反转」授以「字符串」于(「收束参数」于「反字符」于「参数已开始」于「反参数」))与『』
            或有(「缀」于「字符」于「字符尾」)则
                若「等于」于「状态」于「三」
                则「继续解析」于「零」于「字符尾」于(「缀」于「字符」于「反字符」)于「阳」于「反参数」否则
                若「等于」于「状态」于「四」
                则(若「或者」于(「字符串相等吗」于「字符」于『"』)于(「字符串相等吗」于「字符」于『\』)
                    则「继续解析」于「二」于「字符尾」于(「缀」于「字符」于「反字符」)于「阳」于「反参数」
                    否则「继续解析」于「二」于「字符尾」于(「缀」于「字符」于(「缀」于『\』于「反字符」))于「阳」于「反参数」)否则
                若「等于」于「状态」于「一」
                则(若「字符串相等吗」于「字符」于『'』
                    则「继续解析」于「零」于「字符尾」于「反字符」于「阳」于「反参数」
                    否则「继续解析」于「一」于「字符尾」于(「缀」于「字符」于「反字符」)于「阳」于「反参数」)否则
                若「等于」于「状态」于「二」
                则(若「字符串相等吗」于「字符」于『"』
                    则「继续解析」于「零」于「字符尾」于「反字符」于「阳」于「反参数」
                    否则(若「字符串相等吗」于「字符」于『\』
                        则「继续解析」于「四」于「字符尾」于「反字符」于「阳」于「反参数」
                        否则「继续解析」于「二」于「字符尾」于(「缀」于「字符」于「反字符」)于「阳」于「反参数」))否则
                若「是分隔字符」于「字符」
                则「继续解析」于「零」于「字符尾」于「罄」于「阴」于(「收束参数」于「反字符」于「参数已开始」于「反参数」)否则
                若「字符串相等吗」于「字符」于『'』
                则「继续解析」于「一」于「字符尾」于「反字符」于「阳」于「反参数」否则
                若「字符串相等吗」于「字符」于『"』
                则「继续解析」于「二」于「字符尾」于「反字符」于「阳」于「反参数」否则
                若「字符串相等吗」于「字符」于『\』
                则「继续解析」于「三」于「字符尾」于「反字符」于「阳」于「反参数」
                否则「继续解析」于「零」于「字符尾」于(「缀」于「字符」于「反字符」)于「阳」于「反参数」
    而「继续解析」于「零」于(「获取字符」于「命令行」)于「罄」于「阴」于「罄」
也。
yuyan · 103 行 · 10115 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「豫言终端」之「命令解析」之书。
寻观「豫言终端」之「程序解析」之书。
寻观「豫言终端」之「交互编辑」之书。

「断言」乃化「爻」而化「字符串」而「有」也。
「断言」者会「条件」而会「消息」而
    若「条件」则「元」否则「发生事故」于「消息」
也。

虑「解析结果」者「解析命令行」于『printf "甲 乙" '' 丙\ 丁』而
虑「无」者「断言」于(「解析结果」中「零」)于『带引号命令应解析成功』而
虑「无」者「断言」于
    (「串组相等」于(「解析结果」中「一」)于((「列」【『printf』,『甲 乙』,『』,『丙 丁』】)))
    于『引号、空参数或反斜杠转义解析错误』而
虑「双引号转义结果」者「解析命令行」于『printf "\n" "\""』而
虑「无」者「断言」于
    (「串组相等」于(「双引号转义结果」中「一」)于((「列」【『printf』,『\n』,『"』】)))
    于『双引号内的反斜杠规则错误』而
虑「错误结果」者「解析命令行」于『printf "未闭合』而
虑「无」者「断言」于(「非」于(「错误结果」中「零」))于『未闭合引号应该失败』而
虑「无」者「断言」于
    (「串组相等」于(「按字符分隔」于『:』于『:甲::乙:』)于((「列」【『』,『甲』,『』,『乙』,『』】)))
    于『环境路径分隔应保留空段』而
虑「全拼」者「字符串转无调拼音」于『简易网页服务器』而
虑「简拼」者「字符串转拼音首字母」于『简易网页服务器』而
虑「无」者「断言」于(「或者」于(「字符串相等吗」于「全拼」于『jianyiwangyefuwuqi』)于(「字符串相等吗」于「全拼」于『jywyfwq』))于『全拼转换结果错误』而
虑「无」者「断言」于(「字符串相等吗」于「简拼」于『jywyfwq』)于『拼音首字母转换结果错误』而
虑「候选甲」者(『./你好』与『你好』与『nihao』与『nh』)而
虑「候选乙」者(『./拟好』与『拟好』与『nihao』与『nh』)而
虑「候选们」者(「列」【「候选甲」,「候选乙」】)而
虑「实时结果」者「实时匹配程序」于『nih』于「候选们」而
虑「无」者「断言」于(「等于」于((「长度」授以「程序候选」)于「实时结果」)于「二」)于『实时拼音候选过滤错误』而
虑「模糊结果」者「实时匹配程序」于『na』于「候选们」而
虑「无」者「断言」于(「等于」于((「长度」授以「程序候选」)于「模糊结果」)于「二」)于『拼音模糊子序列过滤错误』而
虑「混合候选」者(『./abc你好xyz』与『abc你好xyz』与『abcnihaoxyz』与『abcnhxyz』)而
虑「无」者「断言」于(「候选符合模糊拼音」于『abcxyz』于「混合候选」)于『模糊匹配应能跳过名称中的中文部分』而
虑「无」者「断言」于(「非」于(「串含非阿斯基字符吗」于『README.md』))于『纯 ASCII 名称识别错误』而
虑「无」者「断言」于(「串含非阿斯基字符吗」于『read我.md』)于『非 ASCII 名称识别错误』而
虑「无」者「断言」于(「字符串相等吗」于(「删除末字符」于『甲乙』)于『甲』)于『交互退格未按通字符删除』而
虑「无」者「断言」于(「字符串相等吗」于(「引用程序名」于『甲 乙』)于『"甲 乙"』)于『含空格程序名引用错误』而
虑「无」者「断言」于(「等于」于(「下个选中序数」于「一」于「二」)于「零」)于『候选循环序数错误』而
虑「补全甲」者(『甲』与『甲』)而
虑「补全乙」者(『乙』与『乙』)而
虑「补全丙」者(『丙』与『丙』)而
虑「补全丁」者(『丁』与『丁』)而
虑「补全戊」者(『戊』与『戊』)而
虑「补全己」者(『己』与『己』)而
虑「六个补全」者
    (「列」【「补全甲」,「补全乙」,「补全丙」,「补全丁」,「补全戊」,「补全己」】)而
虑「第二项窗口」者「候选显示窗口」于「一」于「六个补全」而
虑「无」者「断言」于(「字符串相等吗」于(((「第N个」授以「补全候选」)于「零」于「第二项窗口」)中「一」)于『甲』)于『Tab 不应重排当前候选页』而
虑「无」者「断言」于(「等于」于(「候选窗口选中行」于「一」)于「一」)于『Tab 应移动当前页的选中行』而
虑「第六项窗口」者「候选显示窗口」于「五」于「六个补全」而
虑「无」者「断言」于(「字符串相等吗」于(((「第N个」授以「补全候选」)于「零」于「第六项窗口」)中「一」)于『己』)于『超过五项时应切到下一候选页』而
虑「无」者「断言」于(「空词可打开候选吗」于『echo 』)于『空格后的 Tab 应能打开当前目录候选』而
虑「无」者「断言」于(「非」于(「空词可打开候选吗」于『echo』))于『非空当前词不应按空词处理』而
虑「无」者「断言」于(「是右方向键」于(「逃逸字符」附『[C』))于『右方向键识别错误』而
虑「无」者「断言」于(「非」于(「只含命令名」于『nihao 参数』))于『参数输入不应继续显示程序候选』而
虑「目录候选」者「枚举路径候选」于『ku』于「阳」而
虑「无」者「断言」于
    ((「存在吗」授以「程序候选」)于(会「候选」而「字符串相等吗」于(「候选」中「零」)于『库/』)于「目录候选」)
    于『中文目录拼音补全错误』而
虑「标准候选」者「枚举路径候选」于『库/bz』于「阴」而
虑「无」者鉴「标准候选」而
    有(「缀」于「首项」于「其余」)则「断言」于(「串开头是它吗」于『库/标准库』于(「首项」中「零」))于『路径前缀匹配应排在弱模糊匹配之前』
    或有「罄」则「断言」于「阴」于『标准库候选不应为空』而
虑「斜线后候选」者「枚举路径候选」于『库/』于「阴」而
虑「无」者「断言」于
    ((「存在吗」授以「程序候选」)于(会「候选」而「串开头是它吗」于『库/标准库/』于(「候选」中「零」))于「斜线后候选」)
    于『路径以斜线结尾时应列出目录下的候选』而
虑「参数补全」者「当前匹配候选」于『cd ku』于「罄」而
虑「无」者「断言」于
    ((「存在吗」授以「补全候选」)于(会「候选」而「字符串相等吗」于(「候选」中「零」)于『cd 库/』)于「参数补全」)
    于『cd 参数没有生成中文目录补全』而
虑「切换文件补全」者「当前匹配候选」于『cd yyzn』于「罄」而
虑「无」者「断言」于
    ((「存在吗」授以「补全候选」)于(会「候选」而「字符串相等吗」于(「候选」中「零」)于『cd 语言指南.汉语.md 』)于「切换文件补全」)
    于『cd 不应对普通文件作特殊过滤』而
虑「空格后补全」者「当前匹配候选可列空词」于『cd 』于「罄」于「阳」而
虑「无」者「断言」于
    ((「存在吗」授以「补全候选」)于(会「候选」而「字符串相等吗」于(「候选」中「零」)于『cd 语言指南.汉语.md 』)于「空格后补全」)
    于『空格后按 Tab 应列出当前目录文件』而
虑「命令位置目录补全」者「当前匹配候选」于『ku』于「罄」而
虑「无」者「断言」于
    ((「存在吗」授以「补全候选」)于(会「候选」而「字符串相等吗」于(「候选」中「零」)于『库/』)于「命令位置目录补全」)
    于『命令位置没有把中文目录作为候选』而
虑「命令位置普通文件补全」者「当前匹配候选」于『yyzn』于「罄」而
虑「无」者「断言」于
    ((「存在吗」授以「补全候选」)于(会「候选」而「字符串相等吗」于(「候选」中「一」)于『语言指南.汉语.md』)于「命令位置普通文件补全」)
    于『命令位置没有把中文普通文件作为候选』而
虑「纯英文路径候选」者「枚举路径候选」于『README』于「阴」而
虑「无」者「断言」于(「等于」于((「长度」授以「程序候选」)于「纯英文路径候选」)于「零」)于『纯 ASCII 文件不应成为候选』而
虑「带引号当前词」者「分解当前词」于『echo "甲 乙/"bz』而
虑「带引号解读」者「解读当前词」于(「带引号当前词」中「一」)而
虑「无」者「断言」于(「字符串相等吗」于(「带引号当前词」中「零」)于『echo 』)于『带引号参数的文本前缀拆分错误』而
虑「无」者「断言」于(「且」于(「带引号解读」中「零」)于(「字符串相等吗」于(「带引号解读」中「一」)于『甲 乙/bz』))于『带引号路径参数解读错误』而
虑「可执行结果」者「查找可执行程序」于『sh』而
虑「无」者「断言」于(「可执行结果」中「零」)于『应该能在 PATH 中找到 sh』而
虑「本地可执行结果」者「查找可执行程序」于『yy_bs_stable』而
虑「无」者「断言」于(「本地可执行结果」中「零」)于『本地可执行文件应该无需 ./ 即可找到』而
「打印行」于『豫言终端测试通过』。
yuyan · 172 行 · 11352 字节 · UTF-8
§
「:
文言:以拼音索候选,以实名行命。
汉语:拼音仅用于智能补全,执行只接受正式名称与明确别名。
:」

寻观「标准库」之书。
寻观「标准库」之「数据结构」之「整数操作」之书。
寻观「标准库」之「数据结构」之「字符串术」之书。
寻观「标准库」之「数据结构」之「多态列」之书。
寻观「标准库」之「操作系统」之「子进程」之书。
寻观「标准库」之「操作系统」之「命令行参数」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「环境变量」之书。
寻观「标准库」之「操作系统」之「进程」之书。
寻观「标准库」之「输入输出」之「笔」之书。
寻观「豫言终端」之「命令解析」之书。
寻观「豫言终端」之「程序解析」之书。
寻观「豫言终端」之「交互编辑」之书。
寻观「豫言终端」之「命令目录」之书。
寻观「豫言终端」之「工具适配」之书。

「命令名等于三者之一」乃化「字符串」而化「字符串」而化「字符串」而化「字符串」而「爻」也。
「命令名等于三者之一」者会「命令名」而会「甲」而会「乙」而会「丙」而
    「或者」于(「字符串相等吗」于「命令名」于「甲」)于
        (「或者」于(「字符串相等吗」于「命令名」于「乙」)于(「字符串相等吗」于「命令名」于「丙」))
也。

「取主目录」乃化「有」而「字符串」也。
「取主目录」者会「无」而
    虑「结果」者「获取环境变量」于『HOME』而
    若「结果」中「零」则「结果」中「一」否则『.』
也。

「展开主目录」乃化「字符串」而「字符串」也。
「展开主目录」者会「目录文字」而
    若「字符串相等吗」于「目录文字」于『~』则「取主目录」于「元」否则
    若「串开头是它吗」于『~/』于「目录文字」
    则(「取主目录」于「元」)附(「去除串开头」于『~』于「目录文字」)
    否则「目录文字」
也。

「执行切换」乃化(「列」于「字符串」)而「整数」也。
「执行切换」者会「参数们」而
    鉴「参数们」而
        有「罄」则「执行切换」于((「列」【(「取主目录」于「元」)】))
        或有((「列」【「目录文字」】))则(
            虑「实际路径」者「展开主目录」于「目录文字」而
            虑「结果」者「切换当前路径」于「实际路径」而
            若「等于」于(「结果」中「零」)于「零」
            则「零」
            否则(「标准错误打印行」于(『无法切换到「』附「实际路径」附『」:』附(「结果」中「一」));「一」))
        或有「其他」则(「标准错误打印行」于『切换:只能接受一个目录』;「二」)
也。

「执行退出」乃化(「列」于「字符串」)而「整数」也。
「执行退出」者会「参数们」而
    鉴「参数们」而
        有「罄」则(「退出」于「零」;「零」)
        或有((「列」【「状态文字」】))则(虑「状态」者「理解整数」于「状态文字」而(「退出」于「状态」;「状态」))
        或有「其他」则(「标准错误打印行」于『退出:最多接受一个状态码』;「二」)
也。

「执行外部程序」乃化「字符串」而化(「列」于「字符串」)而「整数」也。
「执行外部程序」者会「命令名」而会「参数们」而
    虑「解析结果」者「解析程序」于「命令名」而
    若「等于」于(「解析结果」中「零」)于「零」
    则「运行并继承标准流」于(「解析结果」中「一」)于「参数们」
    否则(「标准错误打印行」于(「解析结果」中「二」);「一二七」)
也。

「无参数目录命令」乃化「字符串」而化(「列」于「字符串」)而「爻」也。
「无参数目录命令」者会「命令名」而会「参数们」而
    鉴「参数们」而
        有「罄」则(
            虑「实际路径」者「展开主目录」于「命令名」而
            若「路径存在」于「实际路径」则「路径是文件夹」于「实际路径」否则「阴」)
        或有「其他」则「阴」
也。

「执行规范参数」乃化(「列」于「字符串」)而「整数」也。
「执行规范参数」者会「参数列」而
    鉴「参数列」而
        有「罄」则「零」
        或有(「缀」于「命令名」于「参数们」)则
            若「且」于(「读引用」于「只预演」)于
                (「命令名等于三者之一」于「命令名」于『切换』于『清屏』于『退出』)
            则(「打印行」于(『预演内建命令:』附「命令名」);「打印调用参数」于「参数们」;「零」)否则
            若「字符串相等吗」于「命令名」于『切换』则「执行切换」于「参数们」否则
            若「字符串相等吗」于「命令名」于『目录』则(「打印行」于(「获取当前路径」于「元」);「零」)否则
            若「字符串相等吗」于「命令名」于『帮助』则「显示管理帮助」于「参数们」否则
            若「字符串相等吗」于「命令名」于『清屏』则(「打印」于((「字节转字符串」于「二七」)附『[2J』附(「字节转字符串」于「二七」)附『[H』);「零」)否则
            若「字符串相等吗」于「命令名」于『退出』则「执行退出」于「参数们」
            否则「执行管理命令」于「命令名」于「参数们」
也。

「执行管理参数」乃化(「列」于「字符串」)而「整数」也。
「执行管理参数」者会「参数」而
    鉴「参数」而
        有((「列」【『-c』,「命令文字」】))则(
            虑「结果」者「解析命令行」于「命令文字」而
            若「结果」中「零」则「执行管理参数」于(「结果」中「一」)
            否则(「标准错误打印行」于(「结果」中「二」);「二」))
        或有(「缀」于『--项目』于(「缀」于「项目文字」于「余」))则(「写引用」于「指定项目」于「项目文字」;「执行管理参数」于「余」)
        或有(「缀」于『--预演』于「余」)则(「写引用」于「只预演」于「阳」;「执行管理参数」于「余」)
        或有((「列」【『--项目』】))则(「标准错误打印行」于『--项目 后须指定路径』;「二」)
        或有「罄」则「显示管理帮助」于「罄」
        或有(「缀」于「首」于「余」)则
            虑「解析」者「解析管理余词」于『』于「参数」而
            若「等于」于(「解析」中「零」)于「零」
            则「执行规范参数」于(「缀」于(「解析」中「一」)于(「解析」中「二」))
            否则若「等于」于(「解析」中「零」)于「二」
            则(「标准错误打印行」于(「解析」中「三」);「二」)
            否则若「读引用」于「只预演」
            则(「标准错误打印行」于『--预演 只支持已登记的管理命令』;「二」)
            否则若「无参数目录命令」于「首」于「余」则「执行切换」于(「列」【「首」】)
            否则「执行外部程序」于「首」于「余」
也。

「:文言:一命既毕,复其初设。汉语:单条命令的项目和预演选项不泄漏到下次交互执行。:」
「执行参数列」乃化(「列」于「字符串」)而「整数」也。
「执行参数列」者会「参数」而
    鉴「参数」而
        有「罄」则「零」
        或有「余」则
            虑「旧项目」者「读引用」于「指定项目」而
            虑「旧预演」者「读引用」于「只预演」而
            虑「状态」者「执行管理参数」于「参数」而(
                「写引用」于「指定项目」于「旧项目」;「写引用」于「只预演」于「旧预演」;「状态」)
也。

「执行命令行」乃化「字符串」而「整数」也。
「执行命令行」者会「命令行」而
    虑「解析结果」者「解析命令行」于「命令行」而
    若「解析结果」中「零」
    则「执行参数列」于(「解析结果」中「一」)
    否则(「标准错误打印行」于(『命令行错误:』附(「解析结果」中「二」));「二」)
也。

「生成提示」乃化「整数」而「字符串」也。
「生成提示」者会「上次状态」而
    若「标准输出是终端」于「元」
    则
        虑「逃逸」者「字节转字符串」于「二七」而
        虑「状态前缀」者若「等于」于「上次状态」于「零」则『』否则(「逃逸」附『[31m』附(「整数表示」于「上次状态」)附『 』)而
        「状态前缀」附「逃逸」附『[36m』附(「获取当前路径」于「元」)附「逃逸」附『[0m ❯ 』
    否则(「获取当前路径」于「元」)附『 > 』
也。

「交互循环」乃化「整数」而「有」也。
「交互循环」者会「上次状态」而
    若「且」于(「标准输入是终端」于「元」)于(「标准输出是终端」于「元」)
    则
        虑「候选索引」者「枚举可执行程序」于「元」而
        虑「无」者「重置包补全」于「元」而
        虑「读取结果」者「读取交互命令行」于(「生成提示」于「上次状态」)于「候选索引」而
        若「等于」于(「读取结果」中「零」)于「零」
        则「交互循环」于(「执行命令行」于(「读取结果」中「一」))
        否则若「等于」于(「读取结果」中「零」)于「二」
        则「交互循环」于「一三零」
        否则「退出」于「上次状态」
    否则
        虑「读取结果」者「尝试读取标准输入行」于「元」而
        若「读取结果」中「零」
        则「交互循环」于(「执行命令行」于(「读取结果」中「一」))
        否则「退出」于「上次状态」
也。

鉴「获取参数」于「元」而
    有「罄」则「交互循环」于「零」
    或有((「列」【『-c』,「命令行」】))则「退出」于(「执行命令行」于「命令行」)
    或有(「缀」于『-c』于「余」)则(「标准错误打印行」于『用法:yysh -c 「命令行」』;「退出」于「二」)
    或有「其他」则「退出」于(「执行参数列」于「其他」)。
yuyan · 245 行 · 16996 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字符串术」之书。
寻观「标准库」之「数据结构」之「多态列」之书。
寻观「标准库」之「操作系统」之「环境变量」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「路径」之书。

「程序候选」即
    「字符串」「:执行路径:」合
    「字符串」「:显示名称:」合
    「字符串」「:无调全拼:」合
    「字符串」「:拼音首字母:」
也。

「按字符分隔」乃化「字符串」而化「字符串」而(「列」于「字符串」)也。
「按字符分隔」者会「分隔符」而会「文本」而
    递归虑「继续分隔」其化(「列」于「字符串」)而化(「列」于「字符串」)而化(「列」于「字符串」)而(「列」于「字符串」)者
        会「剩余」而会「反片段」而会「反结果」而
        鉴「剩余」而
            有「罄」则
                「反转」授以「字符串」于(「缀」于(「串组合并」于(「反转」授以「字符串」于「反片段」))于「反结果」)
            或有(「缀」于「字符」于「字符尾」)则
                若「字符串相等吗」于「字符」于「分隔符」
                则「继续分隔」于「字符尾」于「罄」于(「缀」于(「串组合并」于(「反转」授以「字符串」于「反片段」))于「反结果」)
                否则「继续分隔」于「字符尾」于(「缀」于「字符」于「反片段」)于「反结果」
    而「继续分隔」于(「获取字符」于「文本」)于「罄」于「罄」
也。

「是特殊目录」乃化「字符串」而「爻」也。
「是特殊目录」者会「名称」而
    「或者」于(「字符串相等吗」于「名称」于『.』)于(「字符串相等吗」于「名称」于『..』)
也。

「枚举目录程序」乃化「字符串」而(「列」于「程序候选」)也。
「枚举目录程序」者会「目录」而
    若「路径存在」于「目录」
    则若「路径是文件夹」于「目录」
    则
        递归虑「收集」其化(「列」于「字符串」)而化(「列」于「程序候选」)而(「列」于「程序候选」)者
            会「名称们」而会「反候选」而
            鉴「名称们」而
                有「罄」则「反转」授以「程序候选」于「反候选」
                或有(「缀」于「名称」于「名称尾」)则
                    虑「执行路径」者「路径合并」于「目录」于「名称」而
                    若「且」于(「串含非阿斯基字符吗」于「名称」)于
                        (「且」于(「非」于(「是特殊目录」于「名称」))于(「路径可执行」于「执行路径」))
                    则「收集」于「名称尾」于(「缀」于(「执行路径」与「名称」与(「字符串转无调拼音」于「名称」)与(「字符串转拼音首字母」于「名称」))于「反候选」)
                    否则「收集」于「名称尾」于「反候选」
        而「收集」于(「读文件夹」于「目录」)于「罄」
    否则「罄」
    否则「罄」
也。

「取搜索目录」乃化「有」而(「列」于「字符串」)也。
「取搜索目录」者会「无」而
    虑「路径环境」者「获取环境变量」于『PATH』而
    虑「路径文本」者若「路径环境」中「零」则「路径环境」中「一」否则『/usr/local/bin:/usr/bin:/bin』而
    「缀」于『.』于(「按字符分隔」于『:』于「路径文本」)
也。

「枚举可执行程序」乃化「有」而(「列」于「程序候选」)也。
「枚举可执行程序」者会「无」而
    递归虑「名称已存在」其化「字符串」而化(「列」于「程序候选」)而「爻」者
        会「名称」而会「候选们」而
        鉴「候选们」而
            有「罄」则「阴」
            或有(「缀」于「候选」于「候选尾」)则
                若「字符串相等吗」于「名称」于(「候选」中「一」)则「阳」否则「名称已存在」于「名称」于「候选尾」而
    递归虑「追加未见」其化(「列」于「程序候选」)而化(「列」于「程序候选」)而(「列」于「程序候选」)者
        会「已有」而会「新增」而
        鉴「新增」而
            有「罄」则「已有」
            或有(「缀」于「候选」于「候选尾」)则
                若「名称已存在」于(「候选」中「一」)于「已有」
                则「追加未见」于「已有」于「候选尾」
                否则「追加未见」于(「结尾多」授以「程序候选」于「已有」于「候选」)于「候选尾」而
    递归虑「收集目录」其化(「列」于「字符串」)而化(「列」于「程序候选」)而(「列」于「程序候选」)者
        会「目录们」而会「已有」而
        鉴「目录们」而
            有「罄」则「已有」
            或有(「缀」于「目录」于「目录尾」)则
                虑「实际目录」者若「字符串相等吗」于「目录」于『』则『.』否则「目录」而
                「收集目录」于「目录尾」于(「追加未见」于「已有」于(「枚举目录程序」于「实际目录」))
    而「收集目录」于(「取搜索目录」于「元」)于「罄」
也。

「首个同名候选」乃化「字符串」而化(「列」于「程序候选」)而(「爻」合「字符串」合「字符串」)也。
「首个同名候选」者会「名称」而会「候选们」而
    鉴「候选们」而
        有「罄」则「阴」与『』与『』
        或有(「缀」于「候选」于「候选尾」)则
            若「字符串相等吗」于(「候选」中「一」)于「名称」
            则「阳」与(「候选」中「零」)与(「候选」中「一」)
            否则「首个同名候选」于「名称」于「候选尾」
也。

「候选符合拼音」乃化「爻」而化「字符串」而化「程序候选」而「爻」也。
「候选符合拼音」者会「要求完整」而会「查询」而会「候选」而
    虑「全拼」者「候选」中「二」而
    虑「简拼」者「候选」中「三」而
    若「要求完整」
    则「或者」于(「字符串相等吗」于「查询」于「全拼」)于(「字符串相等吗」于「查询」于「简拼」)
    否则「或者」于(「串开头是它吗」于「查询」于「全拼」)于(「串开头是它吗」于「查询」于「简拼」)
也。

「筛选拼音候选」乃化「爻」而化「字符串」而化(「列」于「程序候选」)而(「列」于「程序候选」)也。
「筛选拼音候选」者会「要求完整」而会「查询」而会「候选们」而
    鉴「候选们」而
        有「罄」则「罄」
        或有(「缀」于「候选」于「候选尾」)则
            若「候选符合拼音」于「要求完整」于「查询」于「候选」
            则「缀」于「候选」于(「筛选拼音候选」于「要求完整」于「查询」于「候选尾」)
            否则「筛选拼音候选」于「要求完整」于「查询」于「候选尾」
也。

「候选符合模糊拼音」乃化「字符串」而化「程序候选」而「爻」也。
「候选符合模糊拼音」者会「查询」而会「候选」而
    「或者」于(「串是模糊子序列吗」于「查询」于(「候选」中「二」))于
        (「串是模糊子序列吗」于「查询」于(「候选」中「三」))
也。

「筛选模糊拼音候选」乃化「字符串」而化(「列」于「程序候选」)而(「列」于「程序候选」)也。
「筛选模糊拼音候选」者会「查询」而会「候选们」而
    鉴「候选们」而
        有「罄」则「罄」
        或有(「缀」于「候选」于「候选尾」)则
            若「候选符合模糊拼音」于「查询」于「候选」
            则「缀」于「候选」于(「筛选模糊拼音候选」于「查询」于「候选尾」)
            否则「筛选模糊拼音候选」于「查询」于「候选尾」
也。

「筛选非前缀模糊候选」乃化「字符串」而化(「列」于「程序候选」)而(「列」于「程序候选」)也。
「筛选非前缀模糊候选」者会「查询」而会「候选们」而
    鉴「候选们」而
        有「罄」则「罄」
        或有(「缀」于「候选」于「候选尾」)则
            若「且」于(「候选符合模糊拼音」于「查询」于「候选」)于(「非」于(「候选符合拼音」于「阴」于「查询」于「候选」))
            则「缀」于「候选」于(「筛选非前缀模糊候选」于「查询」于「候选尾」)
            否则「筛选非前缀模糊候选」于「查询」于「候选尾」
也。

「排列实时候选」乃化「字符串」而化(「列」于「程序候选」)而(「列」于「程序候选」)也。
「排列实时候选」者会「查询」而会「候选们」而
    「附加」授以「程序候选」于
        (「筛选拼音候选」于「阴」于「查询」于「候选们」)于
        (「筛选非前缀模糊候选」于「查询」于「候选们」)
也。

「实时匹配程序」乃化「字符串」而化(「列」于「程序候选」)而(「列」于「程序候选」)也。
「实时匹配程序」者会「输入」而会「候选们」而
    虑「查询」者「字符串转无调拼音」于「输入」而
    若「字符串相等吗」于「查询」于『』
    则「罄」
    否则「排列实时候选」于「查询」于「候选们」
也。

「展开补全目录」乃化「字符串」而「字符串」也。
「展开补全目录」者会「目录」而
    若「字符串相等吗」于「目录」于『~』
    则
        虑「主目录结果」者「获取环境变量」于『HOME』而
        若「主目录结果」中「零」则「主目录结果」中「一」否则「目录」
    否则若「串开头是它吗」于『~/』于「目录」
    则
        虑「主目录结果」者「获取环境变量」于『HOME』而
        若「主目录结果」中「零」
        则(「主目录结果」中「一」)附(「去除串开头」于『~』于「目录」)
        否则「目录」
    否则「目录」
也。

「分解补全路径」乃化「字符串」而(「字符串」合「字符串」合「字符串」)也。
「分解补全路径」者会「输入路径」而
    鉴「串从右搜索单个」于『/』于「输入路径」而
        有「可无」则『』与「输入路径」与『.』
        或有(「可有」于「斜线序数」)则
            虑「插入前缀」者「获取子字符串」于「零」于(「加」于「斜线序数」于「一」)于「输入路径」而
            虑「目录文字」者「获取子字符串」于「零」于「斜线序数」于「输入路径」而
            虑「查询」者「获取子字符串」于(「加」于「斜线序数」于「一」)于(「串长度」于「输入路径」)于「输入路径」而
            虑「实际目录」者若「且」于(「等于」于「斜线序数」于「零」)于(「串开头是它吗」于『/』于「输入路径」)
                则『/』
                否则「展开补全目录」于「目录文字」而
            「插入前缀」与「查询」与「实际目录」
也。

「枚举路径候选」乃化「字符串」而化「爻」而(「列」于「程序候选」)也。
「枚举路径候选」者会「输入路径」而会「只要目录」而
    虑「路径部分」者「分解补全路径」于「输入路径」而
    虑「插入前缀」者「路径部分」中「零」而
    虑「查询」者「字符串转无调拼音」于(「路径部分」中「一」)而
    虑「实际目录」者「路径部分」中「二」而
    若「且」于(「路径存在」于「实际目录」)于(「路径是文件夹」于「实际目录」)
    则
        递归虑「收集」其化(「列」于「字符串」)而化(「列」于「程序候选」)而(「列」于「程序候选」)者
            会「名称们」而会「反候选」而
            鉴「名称们」而
                有「罄」则(
                    虑「候选们」者「反转」授以「程序候选」于「反候选」而
                    若「字符串相等吗」于「查询」于『』则「候选们」否则「排列实时候选」于「查询」于「候选们」)
                或有(「缀」于「名称」于「名称尾」)则
                    虑「实际路径」者「路径合并」于「实际目录」于「名称」而
                    虑「是目录」者「路径是文件夹」于「实际路径」而
                    若「且」于(「串含非阿斯基字符吗」于「名称」)于
                        (「且」于(「非」于(「是特殊目录」于「名称」))于(「或者」于「是目录」于(「非」于「只要目录」)))
                    则
                        虑「尾缀」者若「是目录」则『/』否则『』而
                        虑「补全路径」者「插入前缀」附「名称」附「尾缀」而
                        虑「候选」者「补全路径」与「补全路径」与(「字符串转无调拼音」于「名称」)与(「字符串转拼音首字母」于「名称」)而
                        「收集」于「名称尾」于(「缀」于「候选」于「反候选」)
                    否则「收集」于「名称尾」于「反候选」
        而「收集」于(「读文件夹」于「实际目录」)于「罄」
    否则「罄」
也。

「描述候选」乃化(「列」于「程序候选」)而「字符串」也。
「描述候选」者会「候选们」而
    「间合」于『,』于(「态射」授以「程序候选」授以「字符串」于「候选们」于(会「候选」而「候选」中「一」))
也。

「从拼音候选决定」乃化「字符串」而化(「列」于「程序候选」)而(「整数」合「字符串」合「字符串」)也。
「从拼音候选决定」者会「原命令」而会「候选们」而
    虑「查询」者「字符串转无调拼音」于「原命令」而
    若「字符串相等吗」于「查询」于『』则「一」与『』与(『找不到命令:』附「原命令」)否则
    虑「完整候选」者「筛选拼音候选」于「阳」于「查询」于「候选们」而
    鉴「完整候选」而
        有((「列」【「唯一」】))则「零」与(「唯一」中「零」)与『』
        或有「罄」则(
            虑「前缀候选」者「筛选拼音候选」于「阴」于「查询」于「候选们」而
            鉴「前缀候选」而
                有((「列」【「唯一」】))则「零」与(「唯一」中「零」)与『』
                或有「罄」则「一」与『』与(『找不到命令:』附「原命令」)
                或有「其他」则「二」与『』与(『拼音有多个匹配:』附(「描述候选」于「前缀候选」)))
        或有「其他」则「二」与『』与(『拼音有多个匹配:』附(「描述候选」于「完整候选」))
也。

「解析程序」乃化「字符串」而(「整数」合「字符串」合「字符串」)也。
「解析程序」者会「原命令」而
    虑「直接结果」者「查找可执行程序」于「原命令」而
    若「直接结果」中「零」
    则「零」与(「直接结果」中「一」)与『』
    否则若「是子字符串吗」于『/』于「原命令」
    则「一」与『』与(『不是可执行文件:』附「原命令」)
    「:文言:补全可用拼音,执行必用实名。汉语:外部程序也只按精确名称或路径执行,不回退到拼音匹配。:」
    否则「一」与『』与(『找不到命令:』附「原命令」附『;请先用智能补全填入正式名称』)
也。
yuyan · 215 行 · 16175 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字符串术」之书。
寻观「标准库」之「数据结构」之「多态列」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「路径」之书。
寻观「标准库」之「操作系统」之「环境变量」之书。
寻观「标准库」之「操作系统」之「命令行参数」之书。
寻观「标准库」之「操作系统」之「子进程」之书。
寻观「标准库」之「输入输出」之「笔」之书。
寻观「豫言终端」之「命令目录」之书。
寻观「豫言终端」之「程序解析」之书。

「:文言:所用之器,明其处;所授之参,不乱其界。汉语:固定工具目录,所有工具通过原生子进程和参数列执行。:」
「指定项目」者「新引用」授以「字符串」于『』也。
「只预演」者「新引用」授以「爻」于「阴」也。
「绝对工具路径」乃化「字符串」而化「字符串」而「字符串」也。
「绝对工具路径」者会「根」而会「路径」而
    若「路径名是绝对路径」于「路径」则「路径」否则「路径合并」于「根」于「路径」
也。

「启动目录」者「获取当前路径」于「元」也。
「终端程序位置」者「查找可执行程序」于(「获取程序名」于「元」)也。
「终端工具目录」者
    虑「指定」者「获取环境变量」于『YYSH_TOOL_DIR』而
    若「指定」中「零」则「绝对工具路径」于「启动目录」于(「指定」中「一」)否则
    若「终端程序位置」中「零」则「获取文件夹名」于(「绝对工具路径」于「启动目录」于(「终端程序位置」中「一」))否则「启动目录」
也。

「寻找项目根」乃化「字符串」而「字符串」也。
「寻找项目根」者会「目录」而
    若「且」于(「路径存在」于(「路径合并」于「目录」于『豫言编译器/入口。豫』))于
        (「路径存在」于(「路径合并」于「目录」于『工具』))
    则「目录」否则
    虑「父」者「获取文件夹名」于「目录」而
    若「或者」于(「字符串相等吗」于「父」于『』)于(「字符串相等吗」于「父」于「目录」)
    则『』否则「寻找项目根」于「父」
也。

「当前管理项目」乃化「有」而「字符串」也。
「当前管理项目」者会「无」而
    虑「指定」者「读引用」于「指定项目」而
    若「字符串相等吗」于「指定」于『』则「寻找项目根」于(「获取当前路径」于「元」)
    否则「绝对工具路径」于(「获取当前路径」于「元」)于「指定」
也。

「取工具路径」乃化「字符串」而「字符串」也。
「取工具路径」者会「名」而
    虑「路径」者「路径合并」于「终端工具目录」于(『yy』附「名」)而
    若「路径可执行」于「路径」则「路径」否则
    若「且」于(「字符串相等吗」于「名」于『豫构』)于(「路径可执行」于(「路径」附『_stable』))
    则「路径」附『_stable』否则「路径」
也。

「取管理编译器」乃化「有」而「字符串」也。
「取管理编译器」者会「无」而
    虑「指定」者「获取环境变量」于『YYSH_COMPILER』而
    若「指定」中「零」则「绝对工具路径」于「启动目录」于(「指定」中「一」)否则
    虑「随附」者「路径合并」于「终端工具目录」于『yy编译器』而
    若「路径可执行」于「随附」则「随附」否则「路径合并」于「终端工具目录」于『yy4_bs』
也。

「打印调用参数」乃化(「列」于「字符串」)而「有」也。
「打印调用参数」者会「参数」而
    鉴「参数」而
        有「罄」则「元」
        或有(「缀」于「首」于「尾」)则(「打印行」于(『  参数:〈』附「首」附『〉』);「打印调用参数」于「尾」)
也。

「调用管理程序」乃化「字符串」而化「字符串」而化(「列」于「字符串」)而「整数」也。
「调用管理程序」者会「目录」而会「程序」而会「参数」而
    若「读引用」于「只预演」
    则(「打印行」于(『工作目录:』附「目录」);「打印行」于(『程序:』附「程序」);「打印调用参数」于「参数」;「零」)
    否则若「非」于(「路径可执行」于「程序」)
    则(「标准错误打印行」于(『工具不可执行:』附「程序」附『。请运行“工具 构建 工具名”;豫构种子须先按快速开始安装。』);「一二七」)
    否则
        虑「原目录」者「获取当前路径」于「元」而
        虑「切换结果」者「切换当前路径」于「目录」而
        若「非」于(「等于」于(「切换结果」中「零」)于「零」)
        则(「标准错误打印行」于(「切换结果」中「一」);「一」)
        否则
            虑「状态」者「运行并继承标准流」于「程序」于「参数」而
            虑「还原」者「切换当前路径」于「原目录」而
            若「等于」于(「还原」中「零」)于「零」则「状态」
            否则(「标准错误打印行」于(『无法还原工作目录:』附(「还原」中「一」));「一」)
也。

「管理参数有效」乃化「命令条目」而化(「列」于「字符串」)而「爻」也。
「管理参数有效」者会「条目」而会「参数」而
    虑「数量」者「长度」授以「字符串」于「参数」而
    「且」于(「非」于(「小于」于「数量」于(「条目」中「五」)))于(「非」于(「大于」于「数量」于(「条目」中「六」)))
也。

「适配工具参数」乃化「命令条目」而化(「列」于「字符串」)而(「列」于「字符串」)也。
「适配工具参数」者会「条目」而会「参数」而
    虑「命」者「条目」中「零」而
    虑「实际」者若「字符串相等吗」于「命」于『文档 生成』
        则(鉴「参数」而
            有「罄」则(「列」【『豫言编译器/入口。豫』,『dist/文档』】)
            或有((「列」【「入口」】))则(「列」【「入口」,『dist/文档』】)
            或有「其他」则「参数」)
        否则若「且」于(「字符串相等吗」于「命」于『源码 生成』)于(「等于」于(「长度」授以「字符串」于「参数」)于「零」)
        则(「列」【『dist/源码』】)否则「参数」而
    「附加」授以「字符串」于(「条目」中「四」)于「实际」
也。

「构建管理工具」乃化「字符串」而化(「列」于「程序候选」)而「整数」也。
「构建管理工具」者会「根」而会「工具们」而
    鉴「工具们」而
        有「罄」则「零」
        或有(「缀」于「工具」于「尾」)则
            虑「名」者「工具」中「一」而
            虑「输出」者「路径合并」于「终端工具目录」于(若「字符串相等吗」于「名」于『豫言终端』则『yysh』否则『yy』附「名」)而
            「:文言:先成新器,后易旧器。汉语:构建至临时产物,成功后替换,避免覆盖正在运行的终端或豫构。:」
            虑「暂存」者「输出」附『.新.exe』而
            虑「状态」者「调用管理程序」于「根」于(「取工具路径」于『豫构』)于
                (「列」【『构建』,「名」,『--编译器』,(「取管理编译器」于「元」),『--输出』,「暂存」】)而
            若「非」于(「等于」于「状态」于「零」)则「状态」否则
            虑「移动」者「查找可执行程序」于『mv』而
            虑「换器」者「调用管理程序」于「根」于(「移动」中「一」)于(「列」【「暂存」,「输出」】)而
            若「等于」于「换器」于「零」则「构建管理工具」于「根」于「尾」否则「换器」
也。

「显示工具状态」乃化(「列」于「程序候选」)而「整数」也。
「显示工具状态」者会「工具们」而
    鉴「工具们」而
        有「罄」则「零」
        或有(「缀」于「工具」于「尾」)则
            虑「路径」者若「字符串相等吗」于(「工具」中「一」)于『豫言终端』
                则「路径合并」于「终端工具目录」于『yysh』否则「取工具路径」于(「工具」中「一」)而
            虑「就绪」者「路径可执行」于「路径」而
            虑「无」者「打印行」于((若「就绪」则『就绪  』否则『缺少  』)附「路径」)而
            虑「余」者「显示工具状态」于「尾」而
            若「就绪」则「余」否则「一」
也。

「检查外部依赖」乃化(「列」于「字符串」)而「整数」也。
「检查外部依赖」者会「名称们」而
    鉴「名称们」而
        有「罄」则「零」
        或有(「缀」于「名」于「尾」)则
            虑「结果」者「查找可执行程序」于「名」而
            虑「无」者「打印行」于(「名」附(若「结果」中「零」则『:』附(「结果」中「一」)否则『:未安装或不在 PATH 中』))而
            虑「余」者「检查外部依赖」于「尾」而
            若「结果」中「零」则「余」否则「一」
也。

「执行工具条目」乃化「字符串」而化「命令条目」而化(「列」于「字符串」)而「整数」也。
「执行工具条目」者会「根」而会「条目」而会「参数」而
    虑「命」者「条目」中「零」而
    若「字符串相等吗」于「命」于『状态』
    则(「打印行」于(『项目:』附「根」);「打印行」于(『编译器:』附(「取管理编译器」于「元」));「显示工具状态」于(「常用工具候选」于「元」);「零」)否则
    若「字符串相等吗」于「命」于『环境 检查』
    则
        虑「工具状态」者「显示工具状态」于(「常用工具候选」于「元」)而
        虑「外部状态」者「检查外部依赖」于(「列」【『clang』,『make』,『node』,『npm』,『npx』,『ruby』,『jekyll』,『git』】)而
        虑「编译器就绪」者「路径可执行」于(「取管理编译器」于「元」)而
        虑「无」者「打印行」于((若「编译器就绪」则『编译器就绪:』否则『缺少编译器:』)附(「取管理编译器」于「元」))而
        若「且」于「编译器就绪」于(「等于」于(「加」于「工具状态」于「外部状态」)于「零」)则「零」否则「一」
    否则若「字符串相等吗」于「命」于『工具 构建』
    则(鉴「参数」而
        有「罄」则「构建管理工具」于「根」于(「常用工具候选」于「元」)
        或有(「缀」于「工具名」于「余」)则
            虑「结果」者「决定命令词」于「工具名」于(「常用工具候选」于「元」)而
            若「等于」于(「结果」中「零」)于「零」
            则「构建管理工具」于「根」于(「列」【(「名称候选」于(「结果」中「一」))】)
            否则(「标准错误打印行」于(「结果」中「二」);「二」))
    否则若「字符串相等吗」于「命」于『网站 发布』
    则
        虑「状态」者「调用管理程序」于「根」于(「取工具路径」于『网站发布』)于(「列」【『构建』】)而
        若「等于」于「状态」于「零」
        则「调用管理程序」于「根」于(「取工具路径」于『网站发布』)于(「列」【『发布』】)否则「状态」
    否则若「或者」于(「字符串相等吗」于「命」于『网站 预览』)于(「字符串相等吗」于「命」于『网页服务』)
    则
        虑「服务参数」者若「字符串相等吗」于「命」于『网站 预览』则「缀」于『dist/网站』于「参数」否则「参数」而
        鉴「服务参数」而
            有(「缀」于「目录」于「端口们」)则
                「调用管理程序」于(「绝对工具路径」于「根」于「目录」)于(「取工具路径」于『简易网页服务器』)于
                    (「附加」授以「字符串」于(「列」【『--本机』】)于「端口们」)
            或有「罄」则「二」
    否则
        虑「实际参数」者「适配工具参数」于「条目」于「参数」而
        虑「完整参数」者若「字符串相等吗」于(「条目」中「三」)于『豫构』
            则「附加」授以「字符串」于(「列」【『--编译器』,(「取管理编译器」于「元」)】)于「实际参数」
            否则「实际参数」而
        「调用管理程序」于「根」于(「取工具路径」于(「条目」中「三」))于「完整参数」
也。

「显示管理帮助」乃化(「列」于「字符串」)而「整数」也。
「显示管理帮助」者会「参数」而
    虑「解析」者「解析管理余词」于『』于「参数」而
    若「非」于(「等于」于(「解析」中「零」)于「零」)
    则(「标准错误打印行」于(「解析」中「三」);「二」)否则
    鉴「解析」中「二」而
        有「罄」则(
            「打印行」于(「命令帮助文本」于(「解析」中「一」));
            「打印行」于『全局选项置于命令前:--项目 路径、--预演。相对路径按项目根解释;网页服务按当前目录解释。』;
            「打印行」于『拼音仅用于筛选命令、工具与包名候选;Tab 选候选,Ctrl-E 或右方向键填入正式名称后执行。』;
            「零」)
        或有「其他」则(「标准错误打印行」于『帮助只接受命令路径,如:help 网站 上传』;「二」)
也。

「执行管理命令」乃化「字符串」而化(「列」于「字符串」)而「整数」也。
「执行管理命令」者会「命」而会「参数」而
    鉴「查命令条目」于「命」而
        有(「缀」于「条目」于「余」)则(
            若「非」于(「管理参数有效」于「条目」于「参数」)
            则(「标准错误打印行」于(『用法:』附(「条目」中「一」));「二」)否则
            虑「项目」者「当前管理项目」于「元」而
            虑「根」者若「字符串相等吗」于「命」于『网页服务』
                则(若「字符串相等吗」于(「读引用」于「指定项目」)于『』则「获取当前路径」于「元」否则「项目」)否则「项目」而
            若「字符串相等吗」于「根」于『』
            则(「标准错误打印行」于『未找到豫言仓库,请使用 --项目 路径 指定项目根目录。』;「二」)
            否则「执行工具条目」于「根」于「条目」于「参数」)
        或有「罄」则(「打印行」于(「命令帮助文本」于「命」);「零」)
也。