豫言源码浏览器 / Source Browser

浏览项目文件与源码

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

「:文言:名从文件,主从发现之域;此书不解配置。汉语:发现只读取文件名,包记录依次保存所有者、短名、包文件、直接依赖、父包名。父包名是层级包中库类型子包所属的父包(同所有者),空串为无,由构建工具依据包配置填入;发现时一律为空。:」
「包标识」即「字符串」
  合「字符串」
也。

「包记录」即
  「字符串」
  合「字符串」
  合「字符串」
  合(「列」于「包标识」)
  合「字符串」
也。

「包索引」即「列」于「包记录」也。

「真实路径」乃化「字符串」而「字符串」也。
「真实路径」者会「路径」而
  《《外调》》名『豫言_取得真实路径』传「路径」
也。

「路径为链接」乃化「字符串」而「爻」也。
「路径为链接」者会「路径」而
  《《外调》》名『豫言_路径为符号链接』传「路径」
也。

「存放上下文」乃化「字符串」而「字符串」也。
「存放上下文」者会「内容」而
  《《外调》》名『豫言_存放包上下文』传「内容」
也。

「包内含名」乃化(「列」于「字符串」)而化「字符串」而「爻」也。
「包内含名」者会「列值」而会「值」而
  鉴「列值」而
    有「罄」则「阴」
    或有(「缀」于「首」于「余」)则
      若「串相等」于「首」于「值」则「阳」否则「包内含名」于「余」于「值」
也。

「按字符分段」乃化「字符串」而化「字符串」而(「列」于「字符串」)也。
「按字符分段」者会「分隔」而会「内容」而
  「态射」授以(「列」于「字符串」)授以「字符串」
    于(「元素分隔」授以「字符串」于(会「字」而「串相等」于「字」于「分隔」)于(「获取字符」于「内容」))
    于「串组合并」
也。

「确认名称段」乃化「字符串」而「有」也。
「确认名称段」者会「名」而
  若「包内含名」于(「列」【『』,『.』,『..』】)于「名」则
    「发生事故」授以「有」于『包或模块名称不可为空、点或双点』
  否则
    虑「无」者
      「态射」授以「字符串」授以「有」
      于(「获取字符」于「名」)
      于(会「字」
        而
        若「包内含名」于(「列」【『/』,『\』,『「:换行:」』,『「:制表:」』】)于「字」
        则
          「发生事故」授以「有」于(『名称含非法路径或控制字符:』附「名」)
        否则
          「元」
      )
    而
    「元」
也。

「确认短包名」乃化「字符串」而「有」也。
「确认短包名」者会「名」而
  「确认名称段」于「名」
也。

「确认系统库名」乃化「字符串」而「有」也。
「确认系统库名」者会「名」而
  虑「无」者「确认名称段」于「名」而
  虑「无」者
    「态射」授以「字符串」授以「有」
    于(「获取字符」于「名」)
    于(会「字」而
      若「是子字符串吗」于「字」于『abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_+-.』则
        「元」
      否则
        「发生事故」授以「有」
        于『系统库名只接受 ASCII 字母、数字及 _ + - .』
    )
  而
  「元」
也。

「包文件短名」乃化「字符串」而「字符串」也。
「包文件短名」者会「文件」而
  虑「名」者「获取文件名」于「文件」而
  若「串结尾是它吗」于『。包。豫』于「名」则
    虑「短名」者「去除串结尾」于『。包。豫』于「名」而
    虑「无」者「确认短包名」于「短名」而
    「短名」
  否则
    「发生事故」授以「字符串」于(『不是包描述文件:』附「文件」)
也。

「:文言:主名各存,不析合文;同名之禁唯在所见。汉语:标识始终是两个字段,显示文本不参与查找或身份比较。:」
「包身份」乃化「包记录」而「包标识」也。
「包身份」者会「包值」而
  (「包值」中「零」)与(「包值」中「一」)
也。

「包标识相等」乃化「包标识」而化「包标识」而「爻」也。
「包标识相等」者会「甲」而会「乙」而
  「且」于(「串相等」于(「甲」中「零」)于(「乙」中「零」))
  于(「串相等」于(「甲」中「一」)于(「乙」中「一」))
也。

「含包标识」乃化(「列」于「包标识」)而化「包标识」而「爻」也。
「含包标识」者会「标识们」而会「标识」而
  鉴「标识们」而
    有「罄」则「阴」
    或有(「缀」于「首」于「余」)则
      若「包标识相等」于「首」于「标识」则「阳」否则「含包标识」于「余」于「标识」
也。

「包标识表示」乃化「包标识」而「字符串」也。
「包标识表示」者会「标识」而
  若「串相等」于(「标识」中「零」)于『』则
    「标识」中「一」
  否则
    『所有者「』附(「标识」中「零」)附『」的包「』附(「标识」中「一」)附『」』
也。

「包全名」乃化「包记录」而「字符串」也。
「包全名」者会「包值」而
  「包标识表示」于(「包身份」于「包值」)
也。

「包目录」乃化「包记录」而「字符串」也。
「包目录」者会「包值」而
  「获取文件夹名」于(「包值」中「二」)
也。

「包父名」乃化「包记录」而「字符串」也。
「包父名」者会「包值」而
  「包值」中「四」
也。

「查包」乃化「包索引」而化「包标识」而「包记录」也。
「查包」者会「索引」而会「标识」而
  鉴「索引」而
    有「罄」则「发生事故」授以「包记录」
    于(『发现范围内没有包:』附(「包标识表示」于「标识」))
    或有(「缀」于「包值」于「余」)则
      若「包标识相等」于(「包身份」于「包值」)于「标识」则「包值」否则「查包」于「余」于「标识」
也。

「:文言:省主者唯取独名,不以次序择之。汉语:命令行省略所有者时仅允许唯一候选;依赖解析仍使用明确所有者。:」
「选择包身份」乃化「包索引」而化「包标识」而「包标识」也。
「选择包身份」者会「索引」而会「标识」而
  若「非」于(「串相等」于(「标识」中「零」)于『』)则
    「包身份」于(「查包」于「索引」于「标识」)
  否则
    鉴「滤」授以「包记录」
    于(会「记录」而「串相等」于(「记录」中「一」)于(「标识」中「一」))
    于「索引」而
      有(「列」【「记录」】)则「包身份」于「记录」
      或有「罄」则「发生事故」授以「包标识」
      于(『没有包:』附(「标识」中「一」))
      或有「其他」则
        「发生事故」授以「包标识」于『目标包名不唯一,请用 --所有者 指定所有者』
也。

「确认可见包名」乃化「包记录」而「有」也。
「确认可见包名」者会「包值」而
  虑「可见」者
    「缀」授以「包标识」于(「包身份」于「包值」)于(「包值」中「三」)而
    虑「无」者
      「从左折叠」授以「包标识」授以(「列」于「字符串」)
      于(会「标识」而会「已有」而
        若「包内含名」于「已有」于(「标识」中「一」)
        则
          「发生事故」授以(「列」于「字符串」)
          于(『可见包名冲突:』附(「包全名」于「包值」)附『 中的「』附(「标识」中「一」)附
            『」;自身与直接依赖为:』附
            (「间合」于『,』于(「态射」授以「包标识」授以「字符串」于「可见」于「包标识表示」)))
        否则
          「缀」于(「标识」中「一」)于「已有」
      )于「罄」于「可见」
    而
    「元」
也。

「路径位于目录」乃化「字符串」而化「字符串」而「爻」也。
「路径位于目录」者会「路径」而会「目录」而
  「串开头是它吗」于(「路径合并」于「目录」于『』)于「路径」
也。

「目录包文件」乃化「字符串」而(「列」于「字符串」)也。
「目录包文件」者会「目录」而
  「滤」授以「字符串」
    于(会「名」而
      若「串结尾是它吗」于『。包。豫』于「名」则
        若「路径为链接」于(「路径合并」于「目录」于「名」)则
          「阴」
        否则
          「路径是普通文件」于(「路径合并」于「目录」于「名」)
      否则
        「阴」
    )
    于(「读文件夹」于「目录」)
也。

「:文言:隐目(以点起者,如 .git、.yybuild、.claude)与 _v0 之目皆不入包之搜求。汉语:以点开头的隐藏目录(如 .git、.yybuild、.claude 下的 worktree)与 _v0 目录都不参与包发现。:」
「忽略发现目录」乃化「字符串」而「爻」也。
「忽略发现目录」者会「名」而
  若「串开头是它吗」于『.』于「名」则
    「阳」
  否则
    「串结尾是它吗」于『_v0』于「名」
也。

「发现目录包」乃化「字符串」而化「字符串」而化「字符串」而「包索引」也。
「发现目录包」者会「目录」而会「所有者」而会「排除目录」而
  若「串相等」于「目录」于「排除目录」则
    「罄」授以「包记录」
  否则
    虑「本包」者鉴「目录包文件」于「目录」而
      有「罄」则「罄」授以「包记录」
      或有((「列」【「文件」】))则
        「列」【
          (「所有者」与(「包文件短名」于「文件」)与(「路径合并」于「目录」于「文件」)与(「罄」授以「包标识」)
            与『』)
        】
      或有「其他」则
        「发生事故」授以「包索引」于(『同一目录存在多个包描述文件:』附「目录」)
    而
    「附加」授以「包记录」
    于「本包」
    于(「串联」授以「包记录」
      于(「态射」授以「字符串」授以「包索引」
        于(「读文件夹」于「目录」)
        于(会「名」
          而
  虑「路径」者「路径合并」于「目录」于「名」而
  若「忽略发现目录」于「名」则
    「罄」授以「包记录」
  否则若「路径为链接」于「路径」则「罄」授以「包记录」
  否则若「路径是文件夹」于「路径」则「发现目录包」于「路径」于「所有者」于「排除目录」
  否则
    「罄」授以「包记录」
        )))
也。

「包名在前」乃化「包记录」而化「包记录」而「爻」也。
「包名在前」者会「甲」而会「乙」而
  虑「同主」者「串相等」于(「甲」中「零」)于(「乙」中「零」)而
  虑「甲名」者
    若「同主」则「甲」中「一」否则「甲」中「零」而
    虑「乙名」者
      若「同主」则「乙」中「一」否则「乙」中「零」而
    《《外调》》名『豫言_字符串按字节在前』传「甲名」与「乙名」
也。

「插入包索引」乃化「包记录」而化「包索引」而「包索引」也。
「插入包索引」者会「包值」而会「索引」而
  鉴「索引」而
    有「罄」则「列」【「包值」】
    或有(「缀」于「首」于「余」)则
      若「包标识相等」于(「包身份」于「包值」)于(「包身份」于「首」)
      则
        「发生事故」授以「包索引」于(『包名冲突:』附(「包全名」于「包值」)附『「:换行:」』附(「包值」中「二」)附
          『「:换行:」』附(「首」中「二」))
      否则若「包名在前」于「包值」于「首」则「缀」于「包值」于「索引」
      否则
        「缀」于「首」于(「插入包索引」于「包值」于「余」)
也。

「发现包」乃化「字符串」而化「字符串」而「包索引」也。
「发现包」者会「项目目录」而会「外部目录」而
  虑「项目根」者「真实路径」于「项目目录」而
  虑「外部根」者
    若「串相等」于「外部目录」于『』则『』否则「真实路径」于「外部目录」而
    虑「无」者
      若「串相等」于「外部根」于『』则
        「元」
      否则
        若「或者」
          于(「串相等」于「项目根」于「外部根」)
          于(「路径位于目录」于「项目根」于「外部根」)
        则
          「发生事故」授以「有」于『外部包集合目录不能等于或包含当前项目目录』
        否则
          「元」
    而
    虑「外包」者
      若「串相等」于「外部根」于『』则
        「罄」授以「包记录」
      否则
        「串联」授以「包记录」于(「态射」授以「字符串」授以「包索引」
          于(「读文件夹」于「外部根」)
          于(会「所有者」
  而
  虑「路径」者「路径合并」于「外部根」于「所有者」而
  若「路径为链接」于「路径」则
    「罄」授以「包记录」
  否则若「忽略发现目录」于「所有者」则「罄」授以「包记录」
  否则若「路径是文件夹」于「路径」则(虑「无」者「确认短包名」于「所有者」而「发现目录包」于「路径」于「所有者」于『』)
  否则若「串结尾是它吗」于『。包。豫』于「所有者」则「发生事故」授以「包索引」
  于『外部包必须位于第一层所有者名目录内』
  否则
    「罄」授以「包记录」))
    而
    「附加」授以「包记录」
    于(「发现目录包」于「项目根」于『』于「外部根」)
    于「外包」
也。

「所属包」乃化「包索引」而化「字符串」而「包记录」也。
「所属包」者会「索引」而会「文件」而
  虑「候选」者
    「滤」授以「包记录」
    于(会「包值」而「路径位于目录」于「文件」于(「包目录」于「包值」))
    于「索引」而
  鉴「候选」而
    有「罄」则「发生事故」授以「包记录」
    于(『文件不属于已发现的包:』附「文件」)
    或有(「缀」于「首」于「余」)则
      「从左折叠」授以「包记录」授以「包记录」
      于(会「候」而会「已选」而
        若「大于」
          于(「串长度」于(「包目录」于「候」))
          于(「串长度」于(「包目录」于「已选」))则「候」
        否则
          「已选」
      )于「首」于「余」
也。

「定位包内文件」乃
  化「包索引」而
  化「包记录」而
  化(「列」于「字符串」)而
  「字符串」
也。
「定位包内文件」者会「索引」而会「包值」而会「模块段」而
  鉴「模块段」而
    有「罄」则「发生事故」授以「字符串」于『未指定包内入口模块』
    或有「非空」则
      虑「无」者
        「态射」授以「字符串」授以「有」于「非空」于「确认名称段」而
        虑「路径」者
          (「路径合并」于(「包目录」于「包值」)于(「间合」于「路径分隔符」于「非空」))附『。豫』而
          虑「无」者
            若「串结尾是它吗」于『。包。豫』于「路径」则
              「发生事故」授以「有」于『包描述文件不能作为模块导入』
            否则
              「元」
          而
          虑「无」者
            若「路径存在」于「路径」则
              「元」
            否则
              「发生事故」授以「有」于(『包内模块不存在:』附(「包全名」于「包值」)附『之』附(「间合」
                于『之』于「非空」))
          而
          虑「实径」者「真实路径」于「路径」
          而
          虑「无」者
            若「串相等」于「实径」于「路径」则
              「元」
            否则
              「发生事故」授以「有」
              于『包内模块不能通过符号链接或非规范路径访问』
          而
          虑「归属」者「所属包」于「索引」于「实径」
          而
          若「包标识相等」于(「包身份」于「归属」)于(「包身份」于「包值」)
          则
            若「路径是普通文件」于「实径」则
              「实径」
            否则
              「发生事故」授以「字符串」
              于『模块必须是普通文件』
          否则
            「发生事故」授以「字符串」于(『模块跨越子包边界,应引用包:』附(「包全名」于「归属」))
也。

「:文言:子者,父名为此包之库类型包,同主。汉语:索引中登记在此包之下的库类型子包(父包名等于此包名且同所有者);可执行文件类型的子包不写父包名,故不在其中。:」
「子包们」乃化「包索引」而化「包记录」而(「列」于「包记录」)也。
「子包们」者会「索引」而会「包值」而
  「滤」授以「包记录」
    于(会「记录」而
      「且」
        于(「串相等」于(「记录」中「零」)于(「包值」中「零」))
        于(「串相等」于(「记录」中「四」)于(「包值」中「一」)))于「索引」
也。

「后代包们」乃化「包索引」而化「包记录」而(「列」于「包记录」)也。
「后代包们」者会「索引」而会「包值」而
  「串联」授以「包记录」于(「态射」授以「包记录」授以(「列」于「包记录」)
  于(「子包们」于「索引」于「包值」)
  于(会「子」而(「缀」于「子」于(「后代包们」于「索引」于「子」))))
也。

「:文言:父必在册,上溯有穷。汉语:检查记录的父包存在,并且沿父包上溯的步数有限(防止成环)。:」
「确认包含链有限」乃化「包索引」而化「包记录」而化「整数」而「有」也。
「确认包含链有限」者会「索引」而会「记录」而会「余步」而
  若「串相等」于(「记录」中「四」)于『』则
    「元」
  否则若「大于」于「余步」于「零」
  则
    「确认包含链有限」
      于「索引」
      于(「查包」于「索引」于((「记录」中「零」)与(「记录」中「四」)))
      于(「减」于「余步」于「一」)
  否则
    「发生事故」授以「有」于(『包含关系成环:』附(「包全名」于「记录」))
也。

「确认包含关系」乃化「包索引」而「有」也。
「确认包含关系」者会「索引」而
  虑「无」者
    「态射」授以「包记录」授以「有」
    于「索引」
    于(会「记录」而「确认包含链有限」于「索引」于「记录」于(「长度」授以「包记录」于「索引」))
  而
  「元」
也。

「:文言:子先于模块,逐段下钻。汉语:路径余段的首项若是当前包的登记(库类型)子包,就换成该子包并继续,否则停止;返回最终的包与剩余段。子包优先于模块。:」
「下钻子包」乃
  化「包索引」而
  化「包记录」而
  化(「列」于「字符串」)而
  (「包记录」合(「列」于「字符串」))
也。
「下钻子包」者会「索引」而会「包值」而会「余段」而
  鉴「余段」而
    有「罄」则「包值」与「余段」
    或有(「缀」于「首」于「尾」)则(
      鉴「滤」授以「包记录」
      于(会「记录」而「串相等」于(「记录」中「一」)于「首」)
      于(「子包们」于「索引」于「包值」)而
        有((「列」【「子」】))则
          「下钻子包」于「索引」于「子」于「尾」
        或有「其他」则「包值」与「余段」
    )
也。

「:文言:独书包名,则取其根之总集;不改所称之名。汉语:只在路径定位时补总集,保留语法中的包名与导入操作,不按当前目录搜索。首段之后可逐段下钻登记的子包(`父之子之模块`)。:」
「定位包导入」乃
  化「包索引」而
  化「包记录」而
  化(「列」于「字符串」)而
  「字符串」
也。
「定位包导入」者会「索引」而会「当前包」而会「名称段」而
  虑「无」者「确认可见包名」于「当前包」而鉴「名称段」而
    有「罄」则「发生事故」授以「字符串」
    于『导入缺少包名』
    或有(「缀」于「短名」于「余」)则
      虑「无」者「确认短包名」于「短名」而
      虑「可见」者
        「缀」授以「包标识」于(「包身份」于「当前包」)于(「当前包」中「三」)而
      鉴「滤」授以「包标识」
      于(会「标识」而「串相等」于(「标识」中「一」)于「短名」)于「可见」而

        有((「列」【「标识」】))则(
          虑「下钻」者
            「下钻子包」于「索引」于(「查包」于「索引」于「标识」)于「余」
          而
          「定位包内文件」
            于「索引」
            于(「下钻」中「零」)
            于(鉴(「下钻」中「一」)而
            有「罄」则「列」【『总集』】
            或有「模块段」则「模块段」)
        )
        或有「其他」则
          「发生事故」授以「字符串」于(『未声明直接依赖:』附(「包全名」于「当前包」)附『 → 』附「短名」)
也。

「收集包源码」乃化「字符串」而化「爻」而(「列」于「字符串」)也。
「收集包源码」者会「目录」而会「是根」而
  若「且」
    于(「非」于「是根」)
    于(「非」于(「等于」于(「长度」授以「字符串」于(「目录包文件」于「目录」))于「零」))
  则
    「罄」授以「字符串」
  否则
    「串联」授以「字符串」于(「态射」授以「字符串」授以(「列」于「字符串」)
    于(「读文件夹」于「目录」)
    于(会「名」而
    虑「路径」者「路径合并」于「目录」于「名」
    而
    若「路径为链接」于「路径」则
      「罄」授以「字符串」
    否则若「路径是文件夹」于「路径」则
      若「忽略发现目录」于「名」则「罄」授以「字符串」否则「收集包源码」
      于「路径」于「阴」
    否则若「且」于(「串结尾是它吗」于『。豫』于「名」)于(「非」于(「串结尾是它吗」于『。包。豫』于「名」))
    则
      「列」【「路径」】
    否则
      「罄」授以「字符串」
    ))
也。