豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 8 行 · 680 字节 · UTF-8
§
「名称」者『豫言编译器』也。
「所有者」者『豫言』也。
「版本」者『0.1.0』也。
「类型」者「典」【「种类」者『可执行文件』也,「入口」者『入口』也,「文件名」者『yy』也,】也。
「简介」者『解析、检查并编译豫言程序。』也。
「说明」者「典」【「汉语」者『包说明.汉语.md』也,「文言」者『包说明.文言.md』也,】也。
「:文言:包以文件为名,所依明列。汉语:声明直接依赖,模块使用包名和包内路径导入。:」
「依赖」者「列」【『编译器核心』,『构建基础』,『标准库』】也。
yuyan · 95 行 · 7347 字节 · UTF-8
§
「:入口程序:」

寻观「标准库」之书。
寻观「构建基础」之「包上下文」之书。
寻观「构建基础」之「包定位」之书。
寻观「构建基础」之「并行编译」之书。
寻观「标准库」之「操作系统」之「异步子进程」之书。
寻观「编译器核心」之「编译步骤」之「总体过程」之「编译过程」之书。
寻观「编译器核心」之「编译步骤」之「总体过程」之「单一编译工作」之书。
寻观「编译器核心」之「编译步骤」之「代码生成」之「代码生成入口」之书。
寻观「编译器核心」之「编译数据」之「编译配置」之「全局配置」之书。

寻观「编译器核心」之「编译辅助工具」之「命令行」之「命令行参数处理」之书。
寻观「编译器核心」之「编译辅助工具」之「调试工具」之「调试入口」之书。
寻观「编译器核心」之「编译辅助工具」之「命令行」之「可打印文档」之书。
寻观「编译器核心」之「编译辅助工具」之「命令行」之「版本管理」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「路径」之书。
寻观「编译器核心」之「编译数据」之「编译配置」之「编译期输出」之书。
寻观「编译器核心」之「编译步骤」之「代码生成」之「主程序生成入口」之书。
寻观「编译器核心」之「编译步骤」之「代码生成」之「低级虚拟机」之「可移植自举包」之书。

「参数」者(「命令行参数」之「获取参数」于「元」)也。
「参数长度」者「长度」于「参数」也。

「输入文件路径处理」乃化「字符串」而「字符串」也。
「输入文件路径处理」者会「串」而
  若「路径名是绝对路径」于「串」
  则
    「串」
  否则
    (「路径合并」于(「获取当前路径」于「元」)于「串」)也。

「:文言:直呼编译器,亦委豫构,不复旧搜索。汉语:保留文件式命令入口,但无上下文的普通编译统一交给包构建系统;工作进程不得回退。:」
「委托包构建」乃化「字符串」而「整数」也。
「委托包构建」者会「文件」而
  虑「自己」者「真实路径」于(「命令行参数」之「获取程序名」于「元」)而
  虑「目录」者「获取文件夹名」于「自己」而
  虑「正式」者「路径合并」于「目录」于『yy豫构』而
  虑「工具」者若「路径存在」于「正式」则「正式」否则「路径合并」于「目录」于『yy豫构_stable』而
  若「非」于(「路径存在」于「工具」)则「发生事故」授以「整数」于『请安装与编译器配套的 yy豫构 或 yy豫构_stable』否则
  「操作系统」之「子进程」之「运行并传递输出」于「工具」于
    (「附加」授以「字符串」于(「列」【『文件』,「文件」,『--编译器』,「自己」,『--』】)于
      (「过滤编译输入」于(「第N个」授以「字符串」于「零」于(「读引用」授以(「列」于「字符串」)于「要编译的文件」))于「参数」))也。

鉴「参数」而
  有「缀」于『debug』于「调试参数」则(「进行调试」于「调试参数」)
  或有「其他」则(「处理命令行参数」于「参数」;
    (若(「读引用」于「需要显式帮助」)
    则
      (「打印行」于「帮助文本」)
    否则
      (若(「读引用」于「需要显式版本」)
      则
        (「打印行」于「当前豫言版本」)
      否则
        (若(「读引用」于「需要显式关于」)
        则
          (「打印行」于「AGPL版权声明」)
        否则
          (虑「无」者「非常粗略调试打印行」于(会「无」而『当前路径:』附((「获取当前路径」于「元」)))
            而
            虑「所有输入文件」者((「态射」)于((「读引用」授以(「列」于「字符串」))于「要编译的文件」)于
                「输入文件路径处理」
            )而
            鉴「所有输入文件」而
              有((「列」【「文件名」】))则(
                虑「无」者(若「且」于(「非」于(「已启用包上下文」于「元」))于(「串相等」于(「读引用」于「当前模式」)于『regular』)
                  则「进程」之「退出」于(「委托包构建」于「文件名」)否则「元」)而
                虑「无」者「确认包上下文输入」于「文件名」而鉴(「读引用」于「当前模式」)而
                有『regular』则
                  若「读引用」于「使用并行编译」
                  则「进程」之「退出」于(「并行编译」于
                    (「命令行参数」之「获取程序名」于「元」)于「文件名」于
                    (「过滤调度参数」于(「过滤编译输入」于
                      (「第N个」授以「字符串」于「零」于(「读引用」授以(「列」于「字符串」)于「要编译的文件」))于「参数」))于
                    (若「等于」于(「读引用」于「并行编译上限」)于「零」则「在线处理器数量」于「元」否则「读引用」于「并行编译上限」)于
                    (「读引用」于「仅执行类型检查」))
                  否则
                    (「所有依赖分析」于「文件名」;
                      (「列」于「有」也(「态射」)
                          于((「读引用」授以(「列」于「字符串」))于「文件编译顺序」)
                          于(「进行编译」));
                      (虑「退出状态」者「条件生成可执行程序并执行」于「文件名」而「进程」之「退出」于(「退出状态」)))
                或有『worker』则(鉴「读引用」于
                    「单一工作模式任务」而
                  有『exec-gen』则((「写引用」授以(「列」于「字符串」))于「文件编译顺序」
                    于((「附加」授以「字符串」)
                      于((「读引用」授以(「列」于「字符串」))于「文件编译顺序」)
                      于(((「列」于「字符串」)也((「列」【「文件名」】)))));
                    「进程」之「退出」于(「条件生成可执行程序并执行」于「文件名」))
                  或有「其他工作」则(「执行单一工作」于「文件名」))
                或有「其他模式」
                则(「发生事故」于『不识别的模式:』附(「其他模式」)))
              或有「其他输入文件」则「发生事故」于『期待单一文件名,所有文件』附(「串列表示」于「其他输入文件」))))))。