豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 333 行 · 25652 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。

寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「总集」之书。
寻观「编译器核心」之「编译步骤」之「语法分析」之「词法解析」之书。
寻观「编译器核心」之「编译步骤」之「语法分析」之「抽象语法分析」之书。

寻观「包配置」之「配置数据」之书。
寻观「构建基础」之「包定位」之书。

「配置值类名」乃化「配置值」而「字符串」也。
「配置值类名」者会「值」而鉴「值」而
  有「配置空」则『空』
  或有(「配置爻」于「忽略」)则『爻』
  或有(「配置整数」于「忽略」)则『整数』
  或有(「配置小数」于「忽略」)则『小数』
  或有(「配置字符串」于「忽略」)则『字符串』
  或有(「配置符号」于「忽略」)则『符号』
  或有(「配置列」于「忽略」)则『列』
  或有(「配置典」于「忽略」)则『典』
也。

「配置典含字段」乃化「配置根典」而化「字符串」而「爻」也。
「配置典含字段」者会「典」而会「字段名」而
  鉴「典」而
    有「罄」则「阴」
    或有(「缀」于(「当前名」与「忽略值」)于「尾」)则
      若(「串相等」于「当前名」于「字段名」)则「阳」否则「配置典含字段」于「尾」于「字段名」
也。

「配置典加字段」乃化「字符串」而化「配置值」而化「配置根典」而「配置根典」也。
「配置典加字段」者会「字段名」而会「值」而会「尾」而
  若(「配置典含字段」于「尾」于「字段名」)
  则「发生事故」于(『豫构配置含重复字段「』附「字段名」附『」』)
  否则「缀」于(「字段名」与「值」)于「尾」
也。

「配置典取字段」乃化「配置根典」而化「字符串」而「或可有」于「配置值」也。
「配置典取字段」者会「典」而会「字段名」而
  鉴「典」而
    有「罄」则「可无」
    或有(「缀」于(「当前名」与「值」)于「尾」)则
      若(「串相等」于「当前名」于「字段名」)则「可有」于「值」否则「配置典取字段」于「尾」于「字段名」
也。

「是近似类型占位式」乃化「表达式」而「爻」也。
「是近似类型占位式」者会「式」而鉴「式」而
  有(「式节点」于「近似类型占位节点」于「罄」)则「阳」
  或有「其他」则「阴」
也。

「解码配置列表达式」乃化(化「表达式」而「配置值」)而化「表达式」而「列」于「配置值」也。
「解码配置列表达式」者会「解值」而会「式」而
  鉴「式」而
    有(「自由变量」于『罄』)则「罄」
    或有(「式节点」于「函数调用」于
      ((「列」【(「自由变量」于『缀』),(「式节点」于(「参数节点」于「显式」)于((「列」【「首式」】))),(「式节点」于(「参数节点」于「显式」)于((「列」【「尾式」】)))】)))则
      「缀」于(「解值」于「首式」)于(「解码配置列表达式」于「解值」于「尾式」)
    或有「其他」则「发生事故」于(『豫构配置只允许由「列」【……】产生的静态列,得到:』附(「表达式表示」于「其他」))
也。

「解码内层典项」乃化(化「表达式」而「配置值」)而化「表达式」而(「字符串」合「配置值」)也。
「解码内层典项」者会「解值」而会「式」而
  鉴「式」而
    有(「式节点」于(「定义声明近似类型节点」于「定义不透明」)于
      ((「列」【(「自由变量」于「字段名」),「类」,「值式」】)))则
      若(「是近似类型占位式」于「类」)
      则「字段名」与(「解值」于「值式」)
      否则「发生事故」于(『内层字段「』附「字段名」附『」不得声明类型』)
    或有「其他」则「发生事故」于(『「典」【……】内只允许“名称者值也”,得到:』附(「表达式表示」于「其他」))
也。

「解码内层典项们」乃化(化「表达式」而「配置值」)而化(「列」于「表达式」)而「配置根典」也。
「解码内层典项们」者会「解值」而会「式们」而
  鉴「式们」而
    有「罄」则「罄」
    或有(「缀」于「首式」于「尾式们」)则
      虑「首项」者「解码内层典项」于「解值」于「首式」而
      「配置典加字段」于(「首项」中「零」)于(「首项」中「一」)于(「解码内层典项们」于「解值」于「尾式们」)
也。

「解码配置表达式」乃化「表达式」而「配置值」也。
「解码配置表达式」者会「式」而
  鉴「式」而
    有(「式节点」于(「字符串节点」于「串」)于「罄」)则「配置字符串」于「串」
    或有(「式节点」于(「整数节点」于「数」)于「罄」)则「配置整数」于「数」
    或有(「式节点」于(「小数节点」于「数」于「忽略字面」)于「罄」)则「配置小数」于「数」
    或有(「式节点」于(「内建节点」于「内建爻阳」)于「罄」)则「配置爻」于「阳」
    或有(「式节点」于(「内建节点」于「内建爻阴」)于「罄」)则「配置爻」于「阴」
    或有(「式节点」于(「内建节点」于「内建有元」)于「罄」)则「配置空」
    或有(「自由变量」于「符号」)则
      若(「串相等」于「符号」于『罄』)
      则「配置列」于「罄」
      否则「配置符号」于「符号」
    或有(「式节点」于「通用序列节点」于(「缀」于(「自由变量」于『典』)于「项式们」))则
      「配置典」于(「解码内层典项们」于「解码配置表达式」于「项式们」)
    或有(「式节点」于「函数调用」于「忽略参数」)则「配置列」于(「解码配置列表达式」于「解码配置表达式」于「式」)
    或有「其他」则「发生事故」于(『豫构配置不支持此表达式:』附(「表达式表示」于「其他」))
也。

「解码顶层定义」乃化(「字符串」合「爻」合「表达式」)而(「字符串」合「配置值」)也。
「解码顶层定义」者会「定义项」而
  虑「字段名」者「定义项」中「零」而
  鉴(「定义项」中「二」)而
    有(「式节点」于(「定义声明近似类型节点」于「定义不透明」)于
      ((「列」【「类」,「值式」】)))则
      若(「是近似类型占位式」于「类」)
      则「字段名」与(「解码配置表达式」于「值式」)
      否则「发生事故」于(『顶层字段「』附「字段名」附『」不得声明类型』)
    或有「其他」则「发生事故」于(『豫构文件顶层只允许“名称者值也。”,字段「』附「字段名」附『」不合法』)
也。

「解码顶层定义们」乃化「文件定义列」而「配置根典」也。
「解码顶层定义们」者会「定义们」而
  鉴「定义们」而
    有「罄」则「罄」
    或有(「缀」于「首定义」于「尾定义」)则
      虑「首项」者「解码顶层定义」于「首定义」而
      「配置典加字段」于(「首项」中「零」)于(「首项」中「一」)于(「解码顶层定义们」于「尾定义」)
也。

「解析配置文本」乃化「字符串」而化「字符串」而「配置根典」也。
「解析配置文本」者会「文件名」而会「内容」而
  「:惟调词法与抽象语法解析,不行名称解析、类型检查及求值。现代汉语:这里只调用 parser,不调用编译器流程。:」
  虑「词法」者「词法解析顶层」于「内容」而
  虑「定义们」者「抽象语法解析编译单元顶层」于「文件名」于「词法」而
  「解码顶层定义们」于「定义们」
也。

「解析配置文件」乃化「字符串」而「配置根典」也。
「解析配置文件」者会「文件名」而
  「解析配置文本」于「文件名」于(「读文件」于「文件名」)
也。

「必取配置字段」乃化「配置根典」而化「字符串」而「配置值」也。
「必取配置字段」者会「典」而会「字段名」而
  鉴(「配置典取字段」于「典」于「字段名」)而
    有(「可有」于「值」)则「值」
    或有「可无」则「发生事故」于(『豫构配置缺少必需字段「』附「字段名」附『」』)
也。

「配置值取字符串」乃化「字符串」而化「配置值」而「字符串」也。
「配置值取字符串」者会「所在」而会「值」而鉴「值」而
  有(「配置字符串」于「串」)则「串」
  或有「其他」则「发生事故」于(「所在」附『应为字符串,实为』附(「配置值类名」于「其他」))
也。

「配置值取名称」乃化「字符串」而化「配置值」而「字符串」也。
「配置值取名称」者会「所在」而会「值」而鉴「值」而
  有(「配置字符串」于「串」)则「串」
  或有(「配置符号」于「符号」)则「符号」
  或有「其他」则「发生事故」于(「所在」附『应为字符串或符号,实为』附(「配置值类名」于「其他」))
也。

「配置列取字符串们」乃化「字符串」而化「爻」而化(「列」于「配置值」)而「列」于「字符串」也。
「配置列取字符串们」者会「所在」而会「可用符号」而会「值们」而
  鉴「值们」而
    有「罄」则「罄」
    或有(「缀」于「首值」于「尾值」)则
      「缀」于(若「可用符号」则「配置值取名称」于「所在」于「首值」否则「配置值取字符串」于「所在」于「首值」)
        于(「配置列取字符串们」于「所在」于「可用符号」于「尾值」)
也。

「配置值取字符串列」乃化「字符串」而化「爻」而化「配置值」而「列」于「字符串」也。
「配置值取字符串列」者会「所在」而会「可用符号」而会「值」而鉴「值」而
  有(「配置列」于「值们」)则「配置列取字符串们」于「所在」于「可用符号」于「值们」
  或有(「配置字符串」于「串」)则(「列」【「串」】)
  或有(「配置符号」于「符号」)则若「可用符号」则(「列」【「符号」】)否则「发生事故」于(「所在」附『不接受符号』)
  或有「其他」则「发生事故」于(「所在」附『应为列,实为』附(「配置值类名」于「其他」))
也。

「字段名可用」乃化(「列」于「字符串」)而化「字符串」而「爻」也。
「字段名可用」者会「可用名们」而会「字段名」而
  鉴「可用名们」而
    有「罄」则「阴」
    或有(「缀」于「可用名」于「尾」)则
      若(「串相等」于「可用名」于「字段名」)则「阳」否则「字段名可用」于「尾」于「字段名」
也。

「确认无未知字段」乃化「字符串」而化(「列」于「字符串」)而化「配置根典」而「有」也。
「确认无未知字段」者会「所在」而会「可用名们」而会「典」而
  鉴「典」而
    有「罄」则「元」
    或有(「缀」于(「字段名」与「忽略值」)于「尾」)则
      若(「字段名可用」于「可用名们」于「字段名」)
      则「确认无未知字段」于「所在」于「可用名们」于「尾」
      否则「发生事故」于(「所在」附『含未知字段「』附「字段名」附『」』)
也。

「解码包引用」乃化「配置值」而「包引用」也。
「解码包引用」者会「值」而鉴「值」而
  有(「配置字符串」于「名」)则(
    虑「无」者「确认短包名」于「名」而(「可无」授以「字符串」)与「名」)
  或有(「配置典」于「字段」)则(
    虑「无」者「确认无未知字段」于『依赖典』于(「列」【『所有者』,『包』】)于「字段」而
    虑「所有者」者「配置值取字符串」于『依赖典的所有者』于(「必取配置字段」于「字段」于『所有者』)而
    虑「名」者「配置值取字符串」于『依赖典的包』于(「必取配置字段」于「字段」于『包』)而
    虑「无」者「确认短包名」于「所有者」而
    虑「无」者「确认短包名」于「名」而(「可有」于「所有者」)与「名」)
  或有「其他」则「发生事故」授以「包引用」于『依赖列表的每项必须是包名字符串或含所有者、包字段的典』也。

「解码依赖列表」乃化「配置值」而(「列」于「包引用」)也。
「解码依赖列表」者会「值」而鉴「值」而
  有(「配置列」于「项们」)则「态射」授以「配置值」授以「包引用」于「项们」于「解码包引用」
  或有「其他」则「发生事故」授以(「列」于「包引用」)于『依赖字段必须是列』也。

「:文言:原生路径唯在包中,源文须明列。汉语:这里只解码相对路径;存在性和子包边界由构建阶段检查。:」
「确认原生路径」乃化「字符串」而「有」也。
「确认原生路径」者会「路径」而
  虑「无」者「态射」授以「字符串」授以「有」于(「按字符分段」于『/』于「路径」)于「确认名称段」而「元」也。

「解码原生路径列」乃化「配置根典」而化「字符串」而(「列」于「字符串」)也。
「解码原生路径列」者会「字段」而会「名」而
  虑「项们」者鉴「配置典取字段」于「字段」于「名」而
    有「可无」则「罄」授以「字符串」
    或有(「可有」于(「配置列」于「值们」))则「态射」授以「配置值」授以「字符串」于「值们」于(会「项值」而「配置值取字符串」于「名」于「项值」)
    或有「其他」则「发生事故」授以(「列」于「字符串」)于(「名」附『必须是字符串列』)
  而虑「无」者「从左折叠」授以「字符串」授以(「列」于「字符串」)于(会「项」而会「已有」而
    虑「无」者「确认原生路径」于「项」而
    若「包内含名」于「已有」于「项」则「发生事故」授以(「列」于「字符串」)于(『原生路径重复:』附「项」)
    否则「缀」于「项」于「已有」)于「罄」于「项们」而「项们」也。

「解码原生配置」乃化「配置值」而「原生配置」也。
「解码原生配置」者会「值」而鉴「值」而
  有(「配置典」于「字段」)则(
    虑「无」者「确认无未知字段」于『原生』于(「列」【『源文件』,『包含目录』,『系统依赖』】)于「字段」而
    虑「源」者「解码原生路径列」于「字段」于『源文件』而
    虑「无」者「态射」授以「字符串」授以「有」于「源」于(会「文件」而
      若「串结尾是它吗」于『.c』于「文件」则「元」否则「发生事故」授以「有」于『原生源文件必须以 .c 结尾』)而
    「源」与(「解码原生路径列」于「字段」于『包含目录』))
  或有「其他」则「发生事故」授以「原生配置」于『原生字段必须是典』也。

「必取非空串」乃化「配置根典」而化「字符串」而「字符串」也。
「必取非空串」者会「典」而会「键」而
  虑「串」者「配置值取字符串」于「键」于(「必取配置字段」于「典」于「键」)而
  若「串相等」于「串」于『』则「发生事故」授以「字符串」于(「键」附『不可为空』)否则「串」也。

「:文言:版本三数,不以其文行求解。汉语:首版仅接受主次修订三个无前导零的十进制整数,不承诺版本范围或多版本求解。:」
「确认包版本」乃化「字符串」而「有」也。
「确认包版本」者会「版本」而
  虑「段们」者「按字符分段」于『.』于「版本」而
  虑「无」者若「等于」于(「长度」授以「字符串」于「段们」)于「三」则「元」否则「发生事故」授以「有」于『版本应为三个十进制整数,如 0.1.0』而
  虑「无」者「态射」授以「字符串」授以「有」于「段们」于(会「段」而
    虑「无」者若「串相等」于「段」于『』则「发生事故」授以「有」于『版本段不可为空』否则「元」而
    虑「无」者「态射」授以「字符串」授以「有」于(「获取字符」于「段」)于(会「字」而
      若「包内含名」于(「列」【『0』,『1』,『2』,『3』,『4』,『5』,『6』,『7』,『8』,『9』】)于「字」则「元」否则「发生事故」授以「有」于『版本只接受十进制数字』)而
    若「且」于(「大于」于(「串长度」于「段」)于「一」)于(「串开头是它吗」于『0』于「段」)则「发生事故」授以「有」于『版本段不可有前导零』否则「元」)而「元」也。

「解码系统依赖」乃化「配置根典」而(「列」于「字符串」)也。
「解码系统依赖」者会「典」而鉴「配置典取字段」于「典」于『原生』而
  有(「可有」于(「配置典」于「原生」))则(鉴「配置典取字段」于「原生」于『系统依赖』而
    有「可无」则「罄」
    或有(「可有」于(「配置列」于「项们」))则「态射」授以「配置值」授以「字符串」于「项们」于(会「项」而
      虑「名」者「配置值取字符串」于『系统依赖』于「项」而
      虑「无」者「确认名称段」于「名」而
      虑「无」者「态射」授以「字符串」授以「有」于(「获取字符」于「名」)于(会「字」而
        若「是子字符串吗」于「字」于『abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_+-.』则「元」否则「发生事故」授以「有」于『系统库名只接受 ASCII 字母、数字及 _ + - .』)而「名」)
    或有「其他」则「发生事故」授以(「列」于「字符串」)于『系统依赖必须为库名字符串列』)
  或有「其他」则「罄」也。

「:文言:典载标签,分支各具其项。汉语:数据只用对象和字符串表达;解码后为带数据枚举,不放宽通用 parser 的序列头。:」
「解码包类型」乃化「配置值」而「包类型」也。
「解码包类型」者会「值」而鉴「值」而
  有(「配置典」于「字段」)则(
    虑「种类」者「配置值取名称」于『种类』于(「必取配置字段」于「字段」于『种类』)而
    若「串相等」于「种类」于『库』则(
      虑「无」者「确认无未知字段」于『库类型』于(「列」【『种类』】)于「字段」而「库类型」)
    否则若「串相等」于「种类」于『可执行文件』则(
      虑「无」者「确认无未知字段」于『可执行文件类型』于(「列」【『种类』,『入口』,『文件名』】)于「字段」而
      虑「入口」者「配置值取字符串列」于『入口』于「阴」于(「必取配置字段」于「字段」于『入口』)而
      虑「无」者若「等于」于(「长度」授以「字符串」于「入口」)于「零」则「发生事故」授以「有」于『可执行文件入口不可为空』否则「元」而
      虑「无」者「态射」授以「字符串」授以「有」于「入口」于「确认名称段」而
      虑「文件名」者「必取非空串」于「字段」于『文件名』而
      虑「无」者「确认名称段」于「文件名」而
      虑「无」者若「或者」于(「串开头是它吗」于『yy』于「文件名」)于(「串结尾是它吗」于『.exe』于「文件名」)则「元」否则「发生事故」授以「有」于『可执行文件名必须以 yy 开头或以 .exe 结尾』而
      「可执行文件类型」于「入口」于「文件名」)
    否则「发生事故」授以「包类型」于(『未知包类型:』附「种类」))
  或有「其他」则「发生事故」授以「包类型」于『类型必须是含种类的典』也。

「解码包资料」乃化「字符串」而化「配置根典」而「包元数据」也。
「解码包资料」者会「名」而会「典」而
  虑「声明名」者「必取非空串」于「典」于『名称』而
  虑「无」者若「串相等」于「名」于「声明名」则「元」否则「发生事故」授以「有」于『名称必须与包文件名一致』而
  虑「所有者」者「必取非空串」于「典」于『所有者』而
  虑「无」者「确认名称段」于「所有者」而
  虑「版本」者「必取非空串」于「典」于『版本』而
  虑「无」者「确认包版本」于「版本」而
  虑「简介」者「必取非空串」于「典」于『简介』而
  虑「说明」者鉴「必取配置字段」于「典」于『说明』而
    有(「配置典」于「字段」)则(
      虑「无」者「确认无未知字段」于『说明』于(「列」【『汉语』,『文言』】)于「字段」而
      「态射」授以「字符串」授以「字符串」于(「列」【『汉语』,『文言』】)于(会「语」而
        虑「路径」者「必取非空串」于「字段」于「语」而
        虑「无」者「确认原生路径」于「路径」而
        若「串结尾是它吗」于(『.』附「语」附『.md』)于「路径」则「路径」否则「发生事故」授以「字符串」于『说明文件必须使用对应的 .汉语.md 或 .文言.md 后缀』))
    或有「其他」则「发生事故」授以(「列」于「字符串」)于『说明必须为双语路径典』
  而「所有者」与「版本」与「简介」与「说明」与(「解码系统依赖」于「典」)也。

「配置典解码为包」乃化「字符串」而化「配置根典」而「包」也。
「配置典解码为包」者会「文件」而会「典」而
  虑「名」者「包文件短名」于「文件」而
  虑「无」者「确认无未知字段」于(『包配置:』附「文件」)于(「列」【『名称』,『所有者』,『版本』,『简介』,『说明』,『类型』,『依赖』,『原生』】)于「典」而
  虑「依赖」者鉴「配置典取字段」于「典」于『依赖』而
    有「可无」则「罄」授以「包引用」
    或有(「可有」于「值」)则「解码依赖列表」于「值」
  而虑「种类值」者「解码包类型」于(「必取配置字段」于「典」于『类型』)而
  虑「原生」者鉴「配置典取字段」于「典」于『原生』而
    有「可无」则(「罄」授以「字符串」)与(「罄」授以「字符串」)
    或有(「可有」于「值」)则「解码原生配置」于「值」
  而「构造包」于「名」于「依赖」于「种类值」于「原生」于(「解码包资料」于「名」于「典」)
也。

「解析包文本」乃化「字符串」而化「字符串」而「包」也。
「解析包文本」者会「文件名」而会「内容」而
  「配置典解码为包」于「文件名」于(「解析配置文本」于「文件名」于「内容」)
也。

「解析包文件」乃化「字符串」而「包」也。
「解析包文件」者会「文件名」而「解析包文本」于「文件名」于(「读文件」于「文件名」)也。

「尝试解析包文本」乃化「字符串」而化「字符串」而「包解析结果」也。
「尝试解析包文本」者会「文件名」而会「内容」而
  (「尝试运行」授以「包解析结果」)
    于(会「无」而「包解析成功」于(「解析包文本」于「文件名」于「内容」))
    于(会「错误」而「包解析失败」于「错误」)
也。

「尝试解析包文件」乃化「字符串」而「包解析结果」也。
「尝试解析包文件」者会「文件名」而
  (「尝试运行」授以「包解析结果」)
    于(会「无」而「包解析成功」于(「解析包文件」于「文件名」))
    于(会「错误」而「包解析失败」于「错误」)
也。
yuyan · 100 行 · 9348 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字节串」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「路径」之书。
寻观「构建基础」之「包定位」之书。
寻观「构建基础」之「原生构建」之书。
寻观「包配置」之「配置数据」之书。
寻观「包配置」之「配置解析」之书。
寻观「包配置」之「包依赖」之书。
寻观「编译器核心」之「编译数据」之「语言服务信息」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「总集」之书。
寻观「编译器核心」之「编译步骤」之「语法分析」之「词法解析」之书。

「:文言:字依原文,列依双字节码元。汉语:使用原始文本计算 UTF-16 列号,转义串的长度不按解码值计算。:」
「包源码前进」乃化「源码搜索状态」而化「整数」而「源码搜索状态」也。
「包源码前进」者会「状态」而会「个数」而
  若「等于」于「个数」于「零」则「状态」否则鉴「状态」中「零」而
    有「罄」则「状态」
    或有(「缀」于「字」于「余」)则
      虑「后」者若「串相等」于「字」于『「:换行:」』则「余」与(「加」于(「状态」中「一」)于「一」)与「零」
        否则「余」与(「状态」中「一」)与(「加」于(「状态」中「二」)于
          (若「大于」于(「字节串长度」于(「字符串转字节串」于「字」))于「三」则「二」否则「一」))而
      「包源码前进」于「后」于(「减」于「个数」于「一」)也。

「:文言:词法定串注之界,勿以同文妄指。汉语:复用词法扫描器跳过嵌套注释和标识符,按源码顺序保留所有字符串范围。:」
「包字符串范围」乃化「字符串」而化「源码搜索状态」而(「列」于「源码范围」)也。
「包字符串范围」者会「文件」而会「状态」而鉴「状态」中「零」而
  有「罄」则「罄」
  或有(「缀」于「字」于「余」)则
    若「源码状态是注释开头」于「状态」则
      虑「后注」者「扫描词法注释」于((「包源码前进」于「状态」于「二」)中「零」)而
      「包字符串范围」于「文件」于(「包源码前进」于「状态」于
        (「减」于(「长度」授以「字符串」于(「状态」中「零」))于(「长度」授以「字符串」于(「后注」中「一」))))
    否则若「串相等」于「字」于『『』则
      虑「词」者「扫描词法字符串」于「余」而
      虑「宽」者「减」于(「长度」授以「字符串」于「余」)于(「长度」授以「字符串」于(「词」中「一」))而
      虑「始」者「包源码前进」于「状态」于「一」而
      虑「终」者「包源码前进」于「始」于(「减」于「宽」于「一」)而
      「缀」于(「构造源码范围」于「文件」于(「始」中「一」)于(「始」中「二」)于(「终」中「一」)于(「终」中「二」))于
        (「包字符串范围」于「文件」于(「包源码前进」于「终」于「一」))
    否则若「串相等」于「字」于『「』则
      虑「词」者「扫描词法标识符」于「余」而
      「包字符串范围」于「文件」于(「包源码前进」于「状态」于
        (「减」于(「长度」授以「字符串」于(「状态」中「零」))于(「长度」授以「字符串」于(「词」中「一」))))
    否则「包字符串范围」于「文件」于(「包源码前进」于「状态」于「一」)也。

「:文言:依典之序耗串位,所指为空者亦耗之。汉语:遍历解析后的静态配置;忽略字段也消费范围,避免简介中的同名文本误配。:」
「标注包配置值」乃化(「引用类」于(「列」于「源码范围」))而化「字符串」而化「配置值」而「有」也。
「标注包配置值」者会「范围们」而会「目标」而会「值」而鉴「值」而
  有(「配置字符串」于「忽略串」)则(鉴「读引用」于「范围们」而
    有「罄」则「发生事故」授以「有」于『包配置字符串范围不足』
    或有(「缀」于「范围」于「余」)则
      虑「无」者「写引用」于「范围们」于「余」而
      若「串相等」于「目标」于『』则「元」否则「记录定义位置信息」于「范围」于
        (「构造源码范围」于「目标」于「零」于「零」于「零」于「零」))
  或有(「配置列」于「值们」)则(虑「无」者「态射」授以「配置值」授以「有」于「值们」于
    (会「项」而「标注包配置值」于「范围们」于「目标」于「项」)而「元」)
  或有(「配置典」于「字段们」)则(虑「无」者「态射」授以(「字符串」合「配置值」)授以「有」于「字段们」于
    (会「字段」而「标注包配置值」于「范围们」于「目标」于(「字段」中「一」))而「元」)
  或有「其他」则「元」也。

「生成包语言服务」乃化「包索引」而化「包记录」而化「字符串」而「有」也。
「生成包语言服务」者会「索引」而会「记录」而会「输出」而
  虑「文件」者「记录」中「二」而
  虑「内容」者「读文件」于「文件」而
  虑「典」者「解析配置文本」于「文件」于「内容」而
  虑「配置」者「解析包文本」于「文件」于「内容」而
  虑「入口」者「包入口」于「配置」而
  「:文言:所指未存则阙,不阻另择入口。汉语:缺失或越界的声明入口不生成跳转,显式入口构建仍沿用原有校验。:」
  虑「入口文件」者若「等于」于(「长度」授以「字符串」于「入口」)于「零」则『』否则
    「尝试运行」授以「字符串」于(会「无」而「定位包内文件」于「索引」于「记录」于「入口」)于(会「错误」而『』)而
  虑「范围们」者「新引用」授以(「列」于「源码范围」)于(「包字符串范围」于「文件」于((「获取字符」于「内容」)与「零」与「零」))而
  虑「无」者「准备语言服务信息」于「文件」而
  虑「无」者「态射」授以(「字符串」合「配置值」)授以「有」于「典」于(会「字段」而
    鉴「字段」而
      有『类型』与(「配置典」于「类型字段」)则(虑「无」者「态射」授以(「字符串」合「配置值」)授以「有」于「类型字段」于
        (会「项」而「标注包配置值」于「范围们」于(若「串相等」于(「项」中「零」)于『入口』则「入口文件」否则『』)于(「项」中「一」))而「元」)
      或有『依赖』与(「配置列」于「依赖们」)则(虑「无」者「态射」授以「配置值」授以「有」于「依赖们」于(会「依赖」而
        虑「引用」者「解码包引用」于「依赖」而
        虑「主」者鉴「引用」中「零」而
          有「可无」则(「记录」中「零」)
          或有(「可有」于「主」)则「主」而
        虑「目标」者「查包」于「索引」于(「主」与(「引用」中「一」))而
        「标注包配置值」于「范围们」于(「目标」中「二」)于「依赖」)而「元」)
      或有「其他」则「标注包配置值」于「范围们」于『』于(「字段」中「一」))而
  虑「无」者「建立原生目录」于(「获取文件夹名」于「输出」)而
  「写语言服务信息」于「输出」也。

「:文言:图既定,乃书所达诸包;路径循旧制,编辑器无须别法。汉语:为依赖闭包中的项目内包写入通用语言服务 JSON;外部依赖保留绝对目标路径。:」
「写包图语言服务」乃化「字符串」而化「已解析包图」而「有」也。
「写包图语言服务」者会「项目根」而会「图」而
  虑「根」者(「真实路径」于「项目根」)附『/』而
  虑「无」者「态射」授以「包标识」授以「有」于(「图」中「一」)于(会「标识」而
    虑「记录」者「查包」于(「图」中「零」)于「标识」而
    虑「文件」者「记录」中「二」而
    若「串开头是它吗」于「根」于「文件」则
      虑「相对」者「去除串开头」于「根」于「文件」而
      「生成包语言服务」于(「图」中「零」)于「记录」于
        (「根」附『.yybuild/豫构语言服务/』附(「去除串结尾」于『。豫』于「相对」)附『.语言服务.json』)
    否则「元」)而「元」也。
yuyan · 61 行 · 4888 字节 · UTF-8
§
寻观「标准库」之书。

「:配置值者,惟语法所载之静态数据也。现代汉语:配置值是 parser 输出可解码的受限静态数据。:」
「配置值」立「元类型」也。
  「配置空」立「配置值」也。
  「配置爻」立化「爻」而「配置值」也。
  「配置整数」立化「整数」而「配置值」也。
  「配置小数」立化「小数」而「配置值」也。
  「配置字符串」立化「字符串」而「配置值」也。
  「配置符号」立化「字符串」而「配置值」也。
  「配置列」立化(「列」于「配置值」)而「配置值」也。
  「配置典」立化(「列」于(「字符串」合「配置值」))而「配置值」也。

「配置根典」即「列」于(「字符串」合「配置值」)也。

「:文言:主可省,包必名。汉语:字符串省略所有者,典指定所有者;两者解码为同一种结构化引用。:」
「包引用」即(「或可有」于「字符串」)合「字符串」也。

「:包即模块之集合,不复分库。汉语:名称取自包文件,依赖为具名引用,入口为包内模块路径段。:」
「原生配置」即(「列」于「字符串」)合(「列」于「字符串」)也。

「:文言:种类定其形,不许虚位。汉语:库无入口;可执行文件携带非空入口与产物名称。:」
「包类型」立「元类型」也。
「库类型」立「包类型」也。
「可执行文件类型」立化(「列」于「字符串」)而化「字符串」而「包类型」也。
「包元数据」即「字符串」合「字符串」合「字符串」合(「列」于「字符串」)合(「列」于「字符串」)也。

「包」立「元类型」也。
「构造包」立化「字符串」而化(「列」于「包引用」)而化「包类型」而化「原生配置」而化「包元数据」而「包」也。

「包名」乃化「包」而「字符串」也。
「包名」者会「包值」而鉴「包值」而有(「构造包」于「名」于「依赖」于「种类值」于「原生」于「元数据」)则「名」也。
「包依赖」乃化「包」而(「列」于「包引用」)也。
「包依赖」者会「包值」而鉴「包值」而有(「构造包」于「名」于「依赖」于「种类值」于「原生」于「元数据」)则「依赖」也。
「包入口」乃化「包」而(「列」于「字符串」)也。
「包入口」者会「包值」而鉴「包值」而有(「构造包」于「名」于「依赖」于「种类值」于「原生」于「元数据」)则(鉴「种类值」而有「库类型」则「罄」或有(「可执行文件类型」于「入口」于「文件名」)则「入口」)也。

「包原生」乃化「包」而「原生配置」也。
「包原生」者会「包值」而鉴「包值」而有(「构造包」于「名」于「依赖」于「种类值」于「原生」于「元数据」)则「原生」也。

「包解析结果」立「元类型」也。
「包资料」乃化「包」而「包元数据」也。
「包资料」者会「值」而鉴「值」而有(「构造包」于「名」于「依赖」于「种类值」于「原生」于「资料」)则「资料」也。
「包所有者」乃化「包」而「字符串」也。
「包所有者」者会「值」而(「包资料」于「值」)中「零」也。
「包版本」乃化「包」而「字符串」也。
「包版本」者会「值」而(「包资料」于「值」)中「一」也。
「包简介」乃化「包」而「字符串」也。
「包简介」者会「值」而(「包资料」于「值」)中「二」也。
「包说明」乃化「包」而(「列」于「字符串」)也。
「包说明」者会「值」而(「包资料」于「值」)中「三」也。
「包种类」乃化「包」而「包类型」也。
「包种类」者会「值」而鉴「值」而有(「构造包」于「名」于「依赖」于「种类值」于「原生」于「资料」)则「种类值」也。
「包为库」乃化「包」而「爻」也。
「包为库」者会「值」而鉴「包种类」于「值」而有「库类型」则「阳」或有「其他」则「阴」也。
「包程序」乃化「包」而「字符串」也。
「包程序」者会「值」而鉴「包种类」于「值」而有「库类型」则『』或有(「可执行文件类型」于「入口」于「文件名」)则「文件名」也。
「包系统库」乃化「包」而(「列」于「字符串」)也。
「包系统库」者会「值」而(「包资料」于「值」)中「四」也。
「包解析成功」立化「包」而「包解析结果」也。
「包解析失败」立化「字符串」而「包解析结果」也。
yuyan · 70 行 · 7631 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「路径」之书。
寻观「构建基础」之「包定位」之书。
寻观「构建基础」之「原生构建」之书。
寻观「包配置」之「语言服务」之书。
寻观「编译器核心」之「编译数据」之「语言服务信息」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「总集」之书。

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

「:文言:注中之串不数,转义与异面字皆计原位。汉语:核验嵌套注释、转义结束引号、换行及 UTF-16 列号。:」
「范围们」者「包字符串范围」于『试。包。豫』于
  ((「获取字符」于(『「』附『:注』附『「』附『:内注:」『假「:』:」:」😀『甲「:』:」
『乙』附『「』附『:「:』:」:」丙「:』:」』))与「零」与「零」)也。
鉴「范围们」而
  有(「列」【「甲」,「乙」】)则(
    「断言」于(「等于」于(「源码范围开始列」于「甲」)于「17」)于『非基本平面字符应占两个码元』;
    「断言」于(「等于」于(「源码范围结束列」于「甲」)于「18」)于『第一串终点错误』;
    「断言」于(「且」于(「等于」于(「源码范围开始行」于「乙」)于「一」)于(「等于」于(「源码范围开始列」于「乙」)于「一」))于『换行后的起点错误』;
    「断言」于(「等于」于(「源码范围结束列」于「乙」)于「八」)于『转义串应保留源码宽度』)
  或有「其他」则「发生事故」授以「有」于『注释被误识别为配置字符串』。

「资料」乃化「字符串」而化「字符串」而「字符串」也。
「资料」者会「名」而会「主」而
  『「名称」者『』附「名」附『「:』:」也。「所有者」者『』附「主」附『「:』:」也。
「版本」者『0.1.0「:』:」也。「简介」者『共用「:』:」也。
「说明」者「典」【「汉语」者『说明.汉语.md「:』:」也,「文言」者『说明.文言.md「:』:」也,】也。』也。

「临时」者「操作系统」之「子进程」之「获取输出」于『mktemp』于(「列」【『-d』,『/tmp/豫构语言服务.XXXXXX』】)也。
「断言」于(「临时」中「零」)于『建立临时目录失败』。
「根」者「真实路径」于(「串查找替换」于(「临时」中「一」)于『「:换行:」』于『』)也。
「结果」者「尝试运行」授以「字符串」于(会「无」而
  虑「无」者「建立原生目录」于(「根」附『/程序/源码』)而
  虑「无」者「建立原生目录」于(「根」附『/甲』)而
  虑「无」者「建立原生目录」于(「根」附『/乙』)而
  虑「文件」者「根」附『/程序/应用。包。豫』而
  虑「甲文件」者「根」附『/甲/共用。包。豫』而
  虑「乙文件」者「根」附『/乙/共用。包。豫』而
  虑「类型」者『「类型」者「典」【「种类」者『库「:』:」也,】也。』而
  虑「无」者「写文件」于「甲文件」于((「资料」于『共用』于『甲』)附「类型」)而
  虑「无」者「写文件」于「乙文件」于((「资料」于『共用』于『乙』)附「类型」)而
  虑「无」者「写文件」于「文件」于((「资料」于『应用』于『甲』)附
    『「类型」者「典」【「种类」者『可执行文件「:』:」也,「入口」者「列」【『源码「:』:」,『入口「:』:」】也,「文件名」者『yy应用「:』:」也,】也。
「依赖」者「列」【『共用「:』:」,「典」【「包」者『共用「:』:」也,「所有者」者『乙「:』:」也,】】也。』)而
  虑「入口」者「根」附『/程序/源码/入口。豫』而
  虑「无」者「写文件」于「入口」于『』而
  虑「记录」者「包记录」也(『甲』与『应用』与「文件」与(「列」【(『甲』与『共用』),(『乙』与『共用』)】))而
  虑「索引」者「列」【「记录」,(『甲』与『共用』与「甲文件」与(「罄」授以「包标识」)),(『乙』与『共用』与「乙文件」与(「罄」授以「包标识」))】而
  虑「输出」者「根」附『/.yybuild/豫构语言服务/程序/应用。包.语言服务.json』而
  虑「无」者「生成包语言服务」于「索引」于「记录」于「输出」而
  虑「无」者「断言」于(「路径存在」于「输出」)于『缺少包描述语言服务 JSON』而
  虑「无」者鉴「反转」授以「语言服务信息」于(「读引用」授以(「列」于「语言服务信息」)于「当前语言服务信息」)而
    有(「列」【(「定义位置信息」于「一位」于「一标」),(「定义位置信息」于「二位」于「二标」),
      (「定义位置信息」于「三位」于「三标」),(「定义位置信息」于「四位」于「四标」),(「定义位置信息」于「五位」于「五标」)】)则(
      「断言」于(「且」于(「串相等」于(「源码范围文件」于「一标」)于「入口」)于(「串相等」于(「源码范围文件」于「二标」)于「入口」))于『入口段没有指向同一个源文件』;
      「断言」于(「串相等」于(「源码范围文件」于「三标」)于「甲文件」)于『省略所有者未沿用本包所有者』;
      「断言」于(「且」于(「串相等」于(「源码范围文件」于「四标」)于「乙文件」)于(「串相等」于(「源码范围文件」于「五标」)于「乙文件」))于『具名依赖未定位到对应所有者』)
    或有「其他」则「发生事故」授以「有」于『定义记录数量错误,或简介被错误标注』
  而虑「无」者「删文件」于「入口」而
  虑「无」者「生成包语言服务」于「索引」于「记录」于「输出」而
  虑「无」者「断言」于(「等于」于(「长度」授以「语言服务信息」于(「读引用」于「当前语言服务信息」))于「三」)于『缺失入口不应产生跳转或阻断依赖信息』而
  虑「无」者「写文件」于「文件」于((「资料」于『应用』于『甲』)附「类型」)而
  虑「无」者「生成包语言服务」于「索引」于「记录」于「输出」而
  虑「无」者「断言」于(「等于」于(「长度」授以「语言服务信息」于(「读引用」于「当前语言服务信息」))于「零」)于『删除依赖后残留旧跳转』
  而『』)于(会「错误」而「错误」)也。
「操作系统」之「子进程」之「获取输出」于『rm』于(「列」【『-rf』,「根」】)。
「断言」于(「串相等」于「结果」于『』)于「结果」。
「打印行」于『包语言服务测试通过。』。
yuyan · 2 行 · 104 字节 · UTF-8
§
寻诵「包配置」之「配置数据」之书。
寻诵「包配置」之「配置解析」之书。
yuyan · 72 行 · 7576 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「路径」之书。
寻观「构建基础」之「包定位」之书。
寻观「包配置」之「配置数据」之书。
寻观「包配置」之「配置解析」之书。

「:文言:先定众籍,后循所依。汉语:校验候选包元数据,再解析依赖闭包,返回完整身份索引、拓扑顺序与根包入口。:」
「已解析包图」即「包索引」合(「列」于「包标识」)合(「列」于「字符串」)也。

「:文言:先索候选,继验其籍。汉语:文件名仅供候选发现;完整身份取配置所有者,外部目录必须与声明一致。:」
「补全包索引」乃化「包索引」而「包索引」也。
「补全包索引」者会「候选」而
  「从左折叠」授以「包记录」授以「包索引」于「插入包索引」于「罄」于
    (「态射」授以「包记录」授以「包记录」于「候选」于(会「记录」而
      虑「配置」者「解析包文件」于(「记录」中「二」)而
      虑「所有者」者「包所有者」于「配置」而
      虑「无」者若「或者」于(「串相等」于(「记录」中「零」)于『』)于(「串相等」于(「记录」中「零」)于「所有者」)则「元」否则「发生事故」授以「有」于(『包所有者与发现目录不一致:』附(「记录」中「二」))而
      「所有者」与(「记录」中「一」)与(「记录」中「二」)与(「记录」中「三」)))也。

「发现具名包」乃化「字符串」而化「字符串」而「包索引」也。
「发现具名包」者会「根」而会「外部」而「补全包索引」于(「发现包」于「根」于「外部」)也。

「确认包说明」乃化「包索引」而化「包记录」而化「包」而「有」也。
「确认包说明」者会「索引」而会「记录」而会「配置」而
  虑「无」者「态射」授以「字符串」授以「有」于(「包说明」于「配置」)于(会「路径」而
    虑「文件」者「路径合并」于(「包目录」于「记录」)于「路径」而
    虑「无」者若「路径存在」于「文件」则「元」否则「发生事故」授以「有」于(『说明文件不存在:』附「文件」)而
    虑「无」者若「路径是普通文件」于「文件」则「元」否则「发生事故」授以「有」于(『说明文件不存在:』附「文件」)而
    虑「实际」者「真实路径」于「文件」而
    若「且」于(「串相等」于「实际」于「文件」)于(「包标识相等」于(「包身份」于(「所属包」于「索引」于「实际」))于(「包身份」于「记录」))
      则「元」否则「发生事故」授以「有」于(『说明文件越过包边界或符号链接:』附「文件」))而「元」也。

「解析包图」乃化「包索引」而化「包标识」而「已解析包图」也。
「解析包图」者会「候选」而会「根引用」而
  虑「索引」者「补全包索引」于「候选」而
  虑「根名」者「选择包身份」于「索引」于「根引用」而
  虑「完成名」者「新引用」授以(「列」于「包标识」)于「罄」而
  虑「已解包」者「新引用」授以「包索引」于「罄」而
  虑「根入口」者「新引用」授以(「列」于「字符串」)于「罄」而
  递归虑「访问」其化「包标识」而化(「列」于「包标识」)而「有」者会「全名」而会「链」而
    若「含包标识」于「链」于「全名」
    则「发生事故」授以「有」于(『包依赖成环:』附(「间合」于『 → 』于(「态射」授以「包标识」授以「字符串」于(「结尾多」授以「包标识」于「链」于「全名」)于「包标识表示」)))
    否则若「含包标识」于(「读引用」授以(「列」于「包标识」)于「完成名」)于「全名」则「元」
    否则虑「记录」者「查包」于「索引」于「全名」而
      「尝试运行」授以「有」于(会「无」而
        虑「配置」者「解析包文件」于(「记录」中「二」)而
        虑「无」者「确认包说明」于「索引」于「记录」于「配置」而
        虑「依赖」者「态射」授以「包引用」授以「包标识」于(「包依赖」于「配置」)于
          (会「引用」而
            (鉴「引用」中「零」而
              有「可无」则(「记录」中「零」)
              或有(「可有」于「所有者」)则「所有者」)与(「引用」中「一」))而
        虑「无」者「从左折叠」授以「包标识」授以(「列」于「包标识」)于(会「名」而会「已有」而
          若「含包标识」于「已有」于「名」则「发生事故」授以(「列」于「包标识」)于(『重复声明依赖:』附(「包标识表示」于「名」))
          否则「缀」于「名」于「已有」)于「罄」于「依赖」而
        虑「无」者「确认可见包名」于((「记录」中「零」)与(「记录」中「一」)与(「记录」中「二」)与「依赖」)而
        虑「无」者「态射」授以「包标识」授以「有」于「依赖」于(会「标识」而
          若「包为库」于(「解析包文件」于((「查包」于「索引」于「标识」)中「二」))则「元」否则「发生事故」授以「有」于(『依赖包未声明库能力:』附(「包标识表示」于「标识」)))而
        虑「新链」者「结尾多」授以「包标识」于「链」于「全名」而
        虑「无」者「态射」授以「包标识」授以「有」于「依赖」于(会「名」而「访问」于「名」于「新链」)而
        虑「无」者「写引用」于「已解包」于(「缀」授以「包记录」于
          ((「记录」中「零」)与(「记录」中「一」)与(「记录」中「二」)与「依赖」)于(「读引用」授以「包索引」于「已解包」))而
        虑「无」者「写引用」于「完成名」于(「结尾多」授以「包标识」于(「读引用」授以(「列」于「包标识」)于「完成名」)于「全名」)而
        若「包标识相等」于「全名」于「根名」则「写引用」于「根入口」于(「包入口」于「配置」)否则「元」)
      于(会「错误」而「发生事故」授以「有」于((「记录」中「二」)附『:「:换行:」』附「错误」))
  而虑「无」者「访问」于「根名」于「罄」而
  (「态射」授以「包记录」授以「包记录」于「索引」于(会「记录」而
    若「含包标识」于(「读引用」授以(「列」于「包标识」)于「完成名」)于(「包身份」于「记录」)
    则「查包」于(「读引用」授以「包索引」于「已解包」)于(「包身份」于「记录」)否则「记录」))与
  (「读引用」授以(「列」于「包标识」)于「完成名」)与(「读引用」授以(「列」于「字符串」)于「根入口」)
也。
yuyan · 8 行 · 611 字节 · UTF-8
§
「名称」者『包配置』也。
「所有者」者『豫言』也。
「版本」者『0.1.0』也。
「类型」者「典」【「种类」者『库』也,】也。
「简介」者『以 parser 解析静态包配置并验证依赖图。』也。
「说明」者「典」【「汉语」者『包说明.汉语.md』也,「文言」者『包说明.文言.md』也,】也。
「:文言:包以文件为名,所依明列。汉语:声明直接依赖,模块使用包名和包内路径导入。:」
「依赖」者「列」【『构建基础』,『标准库』,『编译器核心』】也。