自动参数。豫
yuyan · 254 行 · 13818 字节 · 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 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「特殊字符」之书。
寻观「双宿主构建」之「宿主构建」之书。
「:文言:此篇纯函数,析自动模式之命令行,不涉磁盘。汉语:自动模式命令行解析:用法 yy双宿主构建 --自动 云工|浏览器|节点 应用目录 输出目录,并可跟若干选项;选项可以出现在位置参数之间或之后。所有校验(宿主模式、重复选项、缺少选项参数、命名入口只用于云工、浏览器与节点不用许可)都在这里完成,错误信息一律中文。:」
「自动用法」者
『用法:yy双宿主构建 --自动 云工|浏览器|节点 应用目录 输出目录 [--包根 目录]… [--许可 文件|-] [--命名入口 名] [--编译器 路径] [--类型检查]』
也。
「:文言:解出之选:宿主模式、应用目录、输出目录、包根列、许可(空为未指定)、命名入口(-为无)、编译器、验类否。汉语:自动模式的选项:宿主模式、应用目录、输出目录、包根列表、许可文件(空串表示未指定,- 表示不用)、命名入口(- 表示无)、编译器路径、是否只做类型检查。:」
「自动选项」即
「字符串」
合「字符串」
合「字符串」
合(「列」于「字符串」)
合「字符串」
合「字符串」
合「字符串」
合「爻」
也。
「选项模式」乃化「自动选项」而「字符串」也。
「选项模式」者会「选项」而
「选项」中「零」
也。
「选项应用目录」乃化「自动选项」而「字符串」也。
「选项应用目录」者会「选项」而
「选项」中「一」
也。
「选项输出目录」乃化「自动选项」而「字符串」也。
「选项输出目录」者会「选项」而
「选项」中「二」
也。
「选项包根们」乃化「自动选项」而(「列」于「字符串」)也。
「选项包根们」者会「选项」而
「选项」中「三」
也。
「选项许可」乃化「自动选项」而「字符串」也。
「选项许可」者会「选项」而
「选项」中「四」
也。
「选项命名入口」乃化「自动选项」而「字符串」也。
「选项命名入口」者会「选项」而
「选项」中「五」
也。
「选项编译器」乃化「自动选项」而「字符串」也。
「选项编译器」者会「选项」而
「选项」中「六」
也。
「选项类型检查」乃化「自动选项」而「爻」也。
「选项类型检查」者会「选项」而
「选项」中「七」
也。
「:文言:扫描之态:位置参数(逆)、包根(逆)、许可、命名入口、编译器、验类。汉语:扫描过程中的状态:位置参数逆序列表、包根逆序列表、许可、命名入口、编译器、是否类型检查。:」
「参数状态」即
(「列」于「字符串」)
合(「列」于「字符串」)
合「字符串」
合「字符串」
合「字符串」
合「爻」
也。
「加位置参数」乃化「参数状态」而化「字符串」而「参数状态」也。
「加位置参数」者会「状态」而会「值」而
(「缀」于「值」于(「状态」中「零」))与(「状态」中「一」)与(「状态」中「二」)与(「状态」中「三」)
与(「状态」中「四」)与(「状态」中「五」)
也。
「加包根」乃化「参数状态」而化「字符串」而「参数状态」也。
「加包根」者会「状态」而会「值」而
(「状态」中「零」)与(「缀」于「值」于(「状态」中「一」))与(「状态」中「二」)与(「状态」中「三」)
与(「状态」中「四」)与(「状态」中「五」)
也。
「设许可」乃化「参数状态」而化「字符串」而「参数状态」也。
「设许可」者会「状态」而会「值」而
(「状态」中「零」)与(「状态」中「一」)与「值」与(「状态」中「三」)与(「状态」中「四」)与(「状态」中「五」)
也。
「设命名入口」乃化「参数状态」而化「字符串」而「参数状态」也。
「设命名入口」者会「状态」而会「值」而
(「状态」中「零」)与(「状态」中「一」)与(「状态」中「二」)与「值」与(「状态」中「四」)与(「状态」中「五」)
也。
「设编译器」乃化「参数状态」而化「字符串」而「参数状态」也。
「设编译器」者会「状态」而会「值」而
(「状态」中「零」)与(「状态」中「一」)与(「状态」中「二」)与(「状态」中「三」)与「值」与(「状态」中「五」)
也。
「设类型检查」乃化「参数状态」而「参数状态」也。
「设类型检查」者会「状态」而
(「状态」中「零」)与(「状态」中「一」)与(「状态」中「二」)与(「状态」中「三」)与(「状态」中「四」)与「阳」
也。
「取值选项吗」乃化「字符串」而「爻」也。
「取值选项吗」者会「名」而
「或者」
于(「字符串相等吗」于「名」于『--包根』)
于(「或者」
于(「字符串相等吗」于「名」于『--许可』)
于(「或者」于(「字符串相等吗」于「名」于『--命名入口』)于(「字符串相等吗」于「名」于『--编译器』)))
也。
「:文言:取选项之值;无值,或值又似选项,则拒之(唯单一连字符可作值)。汉语:取选项后面的参数值,返回(值,剩余参数);缺少参数或后面紧跟另一个选项时抛出中文事故,单独一个 - 允许作为值。:」
「取选项值」乃
化「字符串」而
化(「列」于「字符串」)而
(「字符串」合(「列」于「字符串」))
也。
「取选项值」者会「选项」而会「尾」而
鉴「尾」而
有(「缀」于「值」于「余」)则
若「且」于(「串开头是它吗」于『--』于「值」)于(「非」于(「字符串相等吗」于「值」于『-』))
则
「发生事故」于(『选项 』附「选项」附『 缺少参数(后面紧跟的是另一个选项 』附「值」附『)』)
否则
「值」与「余」
或有「罄」则「发生事故」于(『选项 』附「选项」附『 缺少参数』)
也。
「:文言:一次之选只可设一回。汉语:单值选项不允许重复出现:当前值不是初始哨兵值时说明已设置过。:」
「须未设」乃化「字符串」而化「字符串」而化「字符串」而「有」也。
「须未设」者会「选项」而会「当前」而会「哨兵」而
若「字符串相等吗」于「当前」于「哨兵」则
「元」
否则
「发生事故」于(『选项 』附「选项」附『 重复出现』)
也。
「:文言:依选项之名,纳其值于态。汉语:把一个带值选项的值记入状态;许可、命名入口、编译器三者不许重复。:」
「纳取值选项」乃化「字符串」而化「字符串」而化「参数状态」而「参数状态」也。
「纳取值选项」者会「选项」而会「值」而会「状态」而
若「字符串相等吗」于「选项」于『--包根』则
「加包根」于「状态」于「值」
否则若「字符串相等吗」于「选项」于『--许可』
则
(虑「无」者「须未设」于「选项」于(「状态」中「二」)于『』而「设许可」于「状态」于「值」)
否则若「字符串相等吗」于「选项」于『--命名入口』
则
(虑「无」者「须未设」于「选项」于(「状态」中「三」)于『-』而「设命名入口」于「状态」于「值」)
否则
(虑「无」者「须未设」于「选项」于(「状态」中「四」)于『』而「设编译器」于「状态」于「值」)
也。
「:文言:自左而右扫之。汉语:从左到右扫描参数:--类型检查 是开关,四个取值选项各带一个参数,其余以 -- 开头的是未知选项,剩下的是位置参数。:」
「扫描自动参数」乃化(「列」于「字符串」)而化「参数状态」而「参数状态」也。
「扫描自动参数」者会「参数们」而会「状态」而
鉴「参数们」而
有「罄」则「状态」
或有(「缀」于「首」于「尾」)则
若「字符串相等吗」于「首」于『--类型检查』则
「扫描自动参数」于「尾」于(「设类型检查」于「状态」)
否则若「取值选项吗」于「首」
则
(
虑「取」者「取选项值」于「首」于「尾」而
「扫描自动参数」
于(「取」中「一」)
于(「纳取值选项」于「首」于(「取」中「零」)于「状态」)
)
否则若「串开头是它吗」于『--』于「首」
则
「发生事故」于(『未知选项:』附「首」附『。可用选项:--包根 --许可 --命名入口 --编译器 --类型检查』)
否则
「扫描自动参数」于「尾」于(「加位置参数」于「状态」于「首」)
也。
「:文言:验模式、命名入口与许可,补编译器之默认。汉语:校验并组装选项:宿主模式必须是云工、浏览器或节点;命名入口只用于云工且须为 ASCII 标识符;浏览器与节点模式不使用许可文件(节点的运行授权在启动时由宿主选项给出);应用目录与输出目录不能为空;编译器默认 ./yy3_bs,不含斜杠的路径补 ./ 前缀。:」
「组装选项」乃
化「字符串」而
化「字符串」而
化「字符串」而
化「参数状态」而
「自动选项」
也。
「组装选项」者会「模式」而会「应用」而会「输出」而会「状态」而
虑「云工乎」者「字符串相等吗」于「模式」于『云工』而
虑「浏览器乎」者「字符串相等吗」于「模式」于『浏览器』而
虑「节点乎」者「字符串相等吗」于「模式」于『节点』而
虑「无」者
(
若「或者」于「云工乎」于(「或者」于「浏览器乎」于「节点乎」)则
「元」
否则
「发生事故」于(『宿主模式须为「云工」「浏览器」或「节点」,得到:』附「模式」)
)而
虑「无」者
(
若「或者」于(「字符串相等吗」于「应用」于『』)于(「字符串相等吗」于「输出」于『』)则
「发生事故」于『应用目录与输出目录都不能为空』
否则
「元」
)
而
虑「许可」者「状态」中「二」而
虑「入口」者「状态」中「三」而
虑「无」者
(
若「且」于(「非」于「云工乎」)于(「非」于(「字符串相等吗」于「入口」于『-』))则
「发生事故」于『命名入口只用于云工模式』
否则
「元」
)
而
虑「无」者
(
若「或者」于(「字符串相等吗」于「入口」于『-』)于(「入口名合法」于「入口」)则
「元」
否则
「发生事故」于(『命名入口须为 ASCII 标识符:』附「入口」)
)
而
虑「无」者
(
若「且」
于(「或者」于「浏览器乎」于「节点乎」)
于(「非」于(「或者」于(「字符串相等吗」于「许可」于『』)于(「字符串相等吗」于「许可」于『-』)))则
「发生事故」于(「模式」附『模式不使用许可文件,请去掉 --许可』)
否则
「元」
)
而
虑「原编译器」者「状态」中「四」而
虑「编译器」者
若「字符串相等吗」于「原编译器」于『』则
『./yy4_bs.wasm』
否则
(若「是子字符串吗」于『/』于「原编译器」则「原编译器」否则『./』附「原编译器」)
而
「模式」与「应用」与「输出」与(「反转」授以「字符串」于(「状态」中「一」))与「许可」与「入口」与「编译器」
与(「状态」中「五」)
也。
「:文言:析自动模式之命令行(不含 --自动 本身)。汉语:解析 --自动 之后的全部参数,返回自动选项;参数个数不对时抛出带用法的中文事故。:」
「解析自动参数」乃化(「列」于「字符串」)而「自动选项」也。
「解析自动参数」者会「参数们」而
虑「末」者
「扫描自动参数」于「参数们」于((「罄」授以「字符串」)与(「罄」授以「字符串」)与『』与『-』与『』与「阴」)而
鉴(「反转」授以「字符串」于(「末」中「零」))而
有(「缀」于「模式」于(「缀」于「应用」于(「缀」于「输出」于「罄」)))则「组装选项」
于「模式」于「应用」于「输出」于「末」
或有「其他」则
「发生事故」于(『自动模式需要恰好三个位置参数(宿主模式、应用目录、输出目录)。』附「新行」附「自动用法」)
也。