豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 165 行 · 9240 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「操作系统」之「路径」之书。

「:文言:公约包名为客所依,适配源仅于构建时投之。汉语:先核对接口与实现,再用接口身份生成可编译的宿主绑定包。:」
「参数」者「命令行参数」之「获取参数」于「元」也。

「用法文」者『用法:yy豫言操作系统绑定 规范包描述 适配包描述 实现模块… 输出目录』也。

「:文言:末参为输出目录;首二为规范包与适配包;其间为实现模块,至少其一。汉语:最后一个参数是输出目录,前两个是规范包与适配包描述,中间是一个或多个实现模块;只给一个实现模块时与旧用法完全相同。:」
「末参与前参」者鉴(「反转」授以「字符串」于「参数」)而
  有(「缀」于「末」于「余」)则
    「末」与(「反转」授以「字符串」于「余」)
  或有「其他」则
    「发生事故」授以(「字符串」合(「列」于「字符串」))于「用法文」
也。

「三部」者鉴(「末参与前参」中「一」)而
  有(「缀」于「甲」于(「缀」于「乙」于(「缀」于「丙」于「余」)))则
    「甲」与「乙」与(「缀」于「丙」于「余」)
  或有「其他」则
    「发生事故」授以(「字符串」合「字符串」合(「列」于「字符串」))
    于「用法文」
也。

「规范包」者「三部」中「零」也。

「适配包」者「三部」中「一」也。

「实现模块们」者「三部」中「二」也。

「输出目录」者「末参与前参」中「零」也。

「去包后缀」乃化「字符串」而「字符串」也。
「去包后缀」者会「路径」而
  虑「名」者「获取文件名」于「路径」而
  若「非」于(「串结尾是它吗」于『。包。豫』于「名」)则
    「发生事故」授以「字符串」于『需要。包。豫文件』
  否则
    「获取子字符串」于「零」于(「减」于(「串长度」于「名」)于「四」)于「名」
也。

「规范名」者「去包后缀」于「规范包」也。

「适配名」者「去包后缀」于「适配包」也。

「:文言:实现模块须为。豫之文,去其后缀得模块名。汉语:实现模块必须是 。豫 文件;去掉后缀即接口的逻辑模块名。:」
「实现模块名」乃化「字符串」而「字符串」也。
「实现模块名」者会「模块」而
  虑「名」者「获取文件名」于「模块」而
  若「非」于(「串结尾是它吗」于『。豫』于「名」)则
    「发生事故」授以「字符串」于(『实现模块须为。豫文件:』附「模块」)
  否则
    「去除串结尾」于『。豫』于「名」
也。

「实现模块名们」者「态射」授以「字符串」授以「字符串」
  于「实现模块们」
  于「实现模块名」
也。

「须运行」乃化「字符串」而化(「列」于「字符串」)而「有」也。
「须运行」者会「程序」而会「实参」而
  若「子进程」之「成功运行」于「程序」于「实参」则
    「元」
  否则
    「发生事故」于(『命令运行失败:』附「程序」)
也。

「:文言:工具先取 .wasm 之版,无则取旧名。汉语:外部工具先用构建根里同名加 .wasm 的版本(在 Node 上运行的 WasmGC 程序),没有时用不带后缀的旧名。:」
「工具路径」乃化「字符串」而「字符串」也。
「工具路径」者会「名」而
  若「文件系统」之「路径存在」于(『./』附「名」附『.wasm』)则
    『./』附「名」附『.wasm』
  否则
    『./』附「名」
也。

「检查器」者「工具路径」于『yy豫言操作系统接口检查』也。

「规范目录」者「获取文件夹名」于「规范包」也。

「:文言:规范目录中宿主所供之接口文,以其名排之。汉语:规范目录里全部以「。接口。豫」结尾的接口文件名。:」
「接口文件们」者
  「滤」授以「字符串」
    于(会「名」而「串结尾是它吗」于『。接口。豫』于「名」)
    于(「文件系统」之「读文件夹」于「规范目录」)
也。

「:文言:单模块者全包而核,同旧;多模块者逐模块以单文件之式核之,无函数之模块惟验其存,且诸接口文皆须有实现。汉语:只有一个实现模块时按旧方式整包核对;有多个时(如基础接口的诊断、时钟、错误三模块),每个实现模块须对应规范目录里同名的「。接口。豫」,含宿主函数的逐文件核对,只含类型的模块不核函数;规范目录里的每个接口文件也都须有实现模块。:」
「核对多模块」乃化「字符串」而「有」也。
「核对多模块」者会「模块」而
  虑「接口文」者(「实现模块名」于「模块」)附『。接口。豫』而
  若「非」于(「存在吗」授以「字符串」于(会「名」而「串相等」于「名」于「接口文」)于「接口文件们」)则
    「发生事故」于(『实现模块没有对应的接口模块:』附「模块」)
  否则
    虑「接口路径」者「路径合并」于「规范目录」于「接口文」而
    若「是子字符串吗」于『」乃』于(「文件系统」之「读文件」于「接口路径」)则
      「须运行」于「检查器」于(「列」【「接口路径」,「规范包」,「模块」,『宿主』】)
    否则
      「元」
也。

「核对覆盖」乃化「字符串」而「有」也。
「核对覆盖」者会「接口文」而
  若「存在吗」授以「字符串」
    于(会「名」而「串相等」于(「名」附『。接口。豫』)于「接口文」)
    于「实现模块名们」
  则
    「元」
  否则
    「发生事故」于(『接口模块缺少实现:』附「接口文」)
也。

鉴「实现模块们」而
  有(「列」【「唯一」】)则
    「须运行」于「检查器」于(「列」【「规范包」,「唯一」,『宿主』】)
  或有「其他」则(
    虑「无」者
      「态射」授以「字符串」授以「有」于「实现模块们」于「核对多模块」
    而
    虑「无」者
      「态射」授以「字符串」授以「有」于「接口文件们」于「核对覆盖」
    而
    「元」
  )。

「须运行」于『mkdir』于(「列」【『-p』,「输出目录」】)。

「:文言:适配包之私依可异于公约,所见身份仍从公约。汉语:实现依赖保留在生成包内,公开包名采用纯规范身份。:」
「适配文」者「文件系统」之「读文件」于「适配包」也。

若「非」于(「是子字符串吗」于「适配名」于「适配文」)则「发生事故」于『适配包名未出现于包描述』否则「元」。
「绑定文」者「串查找替换」于「适配文」于「适配名」于「规范名」也。

「文件系统」之「写文件」于(「路径合并」于「输出目录」于(「规范名」附『。包。豫』))于「绑定文」。
「抄实现模块」乃化「字符串」而「有」也。
「抄实现模块」者会「模块」而
  「文件系统」之「写文件」
    于(「路径合并」于「输出目录」于(「获取文件名」于「模块」))
    于(「文件系统」之「读文件」于「模块」)
也。

「态射」授以「字符串」授以「有」于「实现模块们」于「抄实现模块」。
「适配目录」者「获取文件夹名」于「适配包」也。

「宿主提供路径」者「路径合并」于「适配目录」于『宿主提供.json』也。

若「文件系统」之「路径存在」于「宿主提供路径」则
  「元」
否则
  「发生事故」于(『适配缺少独立宿主支持清单:』附「宿主提供路径」)。
「文件系统」之「写文件」于(「路径合并」于「输出目录」于『宿主清单来源.txt』)于「宿主提供路径」。
「文件系统」之「写文件」
  于(「路径合并」于「输出目录」于『说明.汉语.md』)
  于(「文件系统」之「读文件」于(「路径合并」于「适配目录」于『说明.汉语.md』))。
「文件系统」之「写文件」
  于(「路径合并」于「输出目录」于『说明.文言.md』)
  于(「文件系统」之「读文件」于(「路径合并」于「适配目录」于『说明.文言.md』))。
「须运行」
  于「检查器」
  于(「列」【『--清单』,「规范包」,(「路径合并」于「输出目录」于『规范清单.json』)】)。
「须运行」
  于「检查器」
  于(「列」【『--核对清单』,「规范包」,(「路径合并」于「输出目录」于『规范清单.json』)】)。
「打印行」于(『已绑定接口:』附「规范名」附『 ← 』附「适配名」)。