入口。豫
yuyan · 172 行 · 10275 字节 · UTF-8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
寻观「编译器核心」之「编译步骤」之「总体过程」之「中间阶段工具」之书。
「:入口程序:」
寻观「标准库」之书。
寻观「构建基础」之「包上下文」之书。
寻观「构建基础」之「包定位」之书。
寻观「构建基础」之「并行编译」之书。
寻观「标准库」之「操作系统」之「异步子进程」之书。
寻观「编译器核心」之「编译步骤」之「总体过程」之「编译过程」之书。
寻观「编译器核心」之「编译步骤」之「总体过程」之「单一编译工作」之书。
寻观「编译器核心」之「编译数据」之「编译配置」之「全局配置」之书。
寻观「编译器核心」之「编译辅助工具」之「命令行」之「命令行参数处理」之书。
寻观「编译器核心」之「编译辅助工具」之「调试工具」之「调试入口」之书。
寻观「编译器核心」之「编译辅助工具」之「命令行」之「可打印文档」之书。
寻观「编译器核心」之「编译辅助工具」之「命令行」之「版本管理」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「路径」之书。
寻观「编译器核心」之「编译数据」之「编译配置」之「编译期输出」之书。
寻观「编译器核心」之「编译步骤」之「代码生成」之「主程序生成入口」之书。
「参数」者(「命令行参数」之「获取参数」于「元」)也。
「参数长度」者「长度」于「参数」也。
「输入文件路径处理」乃化「字符串」而「字符串」也。
「输入文件路径处理」者会「串」而
若「路径名是绝对路径」于「串」
则
「串」
否则
(「路径合并」于(「获取当前路径」于「元」)于「串」)
也。
「:文言:直呼编译器,亦委豫构,不复旧搜索。汉语:保留文件式命令入口,但无上下文的普通编译统一交给包构建系统;工作进程不得回退。:」
「委托包构建」乃化「字符串」而「整数」也。
「委托包构建」者会「文件」而
虑「自己」者「真实路径」于(「命令行参数」之「获取程序名」于「元」)而
虑「目录」者「获取文件夹名」于「自己」而
「:文言:豫构或为网页汇编之模,依次寻之。汉语:依次找同目录的 yy豫构.wasm、yy豫构、yy豫构_stable.wasm、yy豫构_stable;.wasm 由 Node 宿主运行。:」
虑「候选们」者
「态射」授以「字符串」授以「字符串」
于(「列」【『yy豫构.wasm』,『yy豫构』,『yy豫构_stable.wasm』,『yy豫构_stable』】)
于(会「名」而「路径合并」于「目录」于「名」)而
虑「找到」者
「滤」授以「字符串」于(会「径」而「路径存在」于「径」)于「候选们」而
虑「工具」者
鉴「找到」而
有(「缀」于「首」于「余」)则「首」
或有「其他」则
『』
而
若「串相等」于「工具」于『』则
「发生事故」授以「整数」
于『请安装与编译器配套的 yy豫构.wasm 或 yy豫构_stable.wasm』
否则
「操作系统」之「子进程」之「运行并传递输出」
于「工具」
于(「附加」授以「字符串」
于(「列」【『文件』,「文件」,『--编译器』,「自己」,『--』】)
于(「过滤编译输入」
于(「第N个」授以「字符串」于「零」于(「读引用」授以(「列」于「字符串」)于「要编译的文件」))
于「参数」))
也。
鉴「参数」而
有「缀」于『stage』于「阶段参数」则
「执行中间阶段命令」于「阶段参数」
或有「缀」于『debug』于「调试参数」则(「进行调试」于「调试参数」)
或有「其他」则
(「处理命令行参数」于「参数」;
(
若(「读引用」于「需要显式帮助」)
则
(「打印行」于「帮助文本」)
否则
(
若(「读引用」于「需要显式版本」)
则
(「打印行」于「当前豫言版本」)
否则
(
若(「读引用」于「需要显式关于」)
则
(「打印行」于「AGPL版权声明」)
否则
(
虑「无」者
「非常粗略调试打印行」
于(会「无」而『当前路径:』附((「获取当前路径」于「元」)))
而
虑「所有输入文件」者
((「态射」)
于((「读引用」授以(「列」于「字符串」))于「要编译的文件」)
于
「输入文件路径处理」
)而
鉴「所有输入文件」而
有((「列」【「文件名」】))则(
虑「无」者
(
若「且」
于(「非」于(「已启用包上下文」于「元」))
于(「串相等」于(「读引用」于「当前模式」)于『regular』)
则
「进程」之「退出」于(「委托包构建」于「文件名」)
否则
「元」
)
而
虑「无」者「确认包上下文输入」于「文件名」
而
虑「无」者
「写引用」
于「底层模式」
于(「上下文文件属底层」于「文件名」)而鉴(「读引用」于「当前模式」)而
有『regular』则
若「读引用」于「使用并行编译」
则
「进程」之「退出」
于(「并行编译」
于(「命令行参数」之「获取程序名」于「元」)
于「文件名」
于(「过滤调度参数」
于(「过滤编译输入」
于(「第N个」授以「字符串」
于「零」
于(「读引用」授以(「列」于「字符串」)于「要编译的文件」))
于「参数」))
于(
若「等于」
于(「读引用」于「并行编译上限」)
于「零」则
「在线处理器数量」于「元」
否则
「读引用」于「并行编译上限」)
于(「读引用」于「仅执行类型检查」))
否则
(「所有依赖分析」于「文件名」;
(「列」于「有」也(「态射」)
于((「读引用」授以(「列」于「字符串」))于「文件编译顺序」)
于(「进行编译」));
(
虑「退出状态」者
「条件生成可执行程序并执行」于「文件名」
而
「进程」之「退出」于(「退出状态」)
))
或有『worker』则(
鉴「读引用」于
「单一工作模式任务」而
有『exec-gen』则
((「写引用」授以(「列」于「字符串」))
于「文件编译顺序」
于((「附加」授以「字符串」)
于((「读引用」授以(「列」于「字符串」))于「文件编译顺序」)
于(((「列」于「字符串」)也((「列」【「文件名」】)))));
「进程」之「退出」
于(「条件生成可执行程序并执行」于「文件名」))
或有「其他工作」则(「执行单一工作」于「文件名」)
)
或有「其他模式」
则(「发生事故」于『不识别的模式:』附(「其他模式」))
)
或有「其他输入文件」则
「发生事故」
于『期待单一文件名,所有文件』附(「串列表示」于「其他输入文件」)
)
)
)
))。