豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 101 行 · 5128 字节 · UTF-8
§
寻观「编译器核心」之「编译数据」之「编译配置」之「阶段环境」之书。
寻观「标准库」之书。
寻观「构建基础」之「包上下文」之书。

。

寻观「标准库」之「操作系统」之「路径」之书。
寻观「标准库」之「操作系统」之「命令行参数」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「编译器核心」之「编译辅助工具」之「命令行」之「版本管理」之书。
寻观「编译器核心」之「编译数据」之「编译配置」之「全局配置」之书。

「当前路径」者「文件系统」之「获取当前路径」于「元」也。

「:需要跳过不合法的标识符:」
「标识符转义」乃化「字符串」而「字符串」也。
「标识符转义」者会「串」而
  「串组合并」于((「打表态射」授以「字符串」授以「字符串」)
  于(「获取字符」于「串」)
  于(会「字符」而
  鉴「字符」而
    有『-』则『_』
    或有『。』则『_』
    或有『.』则『_』
    或有『/』则『_』
    或有『*』则『_』
    或有『%』则『_』
    或有『+』则『_』
    或有「其他字符」则「其他字符」
  )
  )
也。

「当前编译器可执行文件标识」者((「标识符转义」于(「命令行参数」之「获取程序名」于「元」))附『+』附(「整数表示」
  于(「文件系统」之「获得文件修改时间」于(「命令行参数」之「获取程序名」于「元」)))
)也。

「编译器缓存目录名称」者『.yybuild/』附「当前编译器可执行文件标识」附『.nosync』也。

「去除路径结尾豫言拓展名」乃化「字符串」而「字符串」也。
「去除路径结尾豫言拓展名」者会「输入」而
  若(「串结尾是它吗」于『。豫』于「输入」)则(「去除串结尾」于『。豫』于「输入」)
  否则
    (「发生事故」于『路径结尾不认识:』附「输入」)
也。

「:输入文件的绝对路径,输出应当输出的文件路径prefix:」
「获取输出文件路径」乃
  化「字符串」 「:绝对输入路径:」而
  「字符串」
也。
「获取输出文件路径」者会「输入」而
  「:文言:独立后端诸文件皆从所授前缀。汉语:LLVM、位码和对象文件统一使用独立阶段的输出前缀,避免回读默认缓存路径。:」
  若「且」于(「读引用」于「独立阶段模式」)于(「串相等」于「输入」于(「读引用」于「独立阶段源文件」))
  则
    「读引用」于「独立阶段输出前缀」
  否则
    (
      虑「去除结尾后」者
        「去除路径结尾豫言拓展名」于「输入」
      而
      虑「去除开头后」者
        若(「串开头是它吗」于「当前路径」于「去除结尾后」)
        则
          (「去除串开头」于「当前路径」于「去除结尾后」)
        否则
          「去除结尾后」
      而
      虑「当前缓存目录名称」者
        「编译器缓存目录名称」附
          (若「已启用包上下文」于「元」则『/包上下文/』附(「读引用」授以「字符串」于「包上下文缓存号」)否则『』)附
            (若「读引用」于「底层模式」则『.lowlevel-anf-v2』否则『.wasmgc-anf-v2』)
      而
      (「路径合并」于(「路径合并」于「当前路径」于「当前缓存目录名称」)于「去除开头后」)
    )
也。

「获取输出代码文件路径」乃化「字符串」而「字符串」也。
「获取输出代码文件路径」者会「输入」而
  (「获取输出文件路径」于「输入」)附『.ll』
也。

「当前路径转模块全局名」乃化「字符串」而「字符串」也。
「当前路径转模块全局名」者会「路径」而
  『豫言模块_』附(「标识符转义」于「路径」)
也。

「文件定义转全局名」乃化「字符串」而化「字符串」而化「整数」而「字符串」也。
「文件定义转全局名」者会「路径」而会「定义名」而会「序数」而
  (「当前路径转模块全局名」于「路径」)附『_定义_』附(「标识符转义」于「定义名」)附『_』附(「整数表示」于「序数」)
也。

「文件定义转函数全局名」乃化「字符串」而化「字符串」而化「整数」而「字符串」也。
「文件定义转函数全局名」者会「路径」而会「定义名」而会「序数」而
  (「当前路径转模块全局名」于「路径」)附『_函数_』附(「标识符转义」于「定义名」)附『_』附(「整数表示」于「序数」)
也。

「当前路径转全局函数名」乃化「字符串」而「字符串」也。
「当前路径转全局函数名」者会「路径」而
  (「当前路径转模块全局名」于「路径」)附『_计算函数』
也。