配置解析。豫
yuyan · 333 行 · 25652 字节 · 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 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333
寻观「标准库」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「总集」之书。
寻观「编译器核心」之「编译步骤」之「语法分析」之「词法解析」之书。
寻观「编译器核心」之「编译步骤」之「语法分析」之「抽象语法分析」之书。
寻观「包配置」之「配置数据」之书。
寻观「构建基础」之「包定位」之书。
「配置值类名」乃化「配置值」而「字符串」也。
「配置值类名」者会「值」而鉴「值」而
有「配置空」则『空』
或有(「配置爻」于「忽略」)则『爻』
或有(「配置整数」于「忽略」)则『整数』
或有(「配置小数」于「忽略」)则『小数』
或有(「配置字符串」于「忽略」)则『字符串』
或有(「配置符号」于「忽略」)则『符号』
或有(「配置列」于「忽略」)则『列』
或有(「配置典」于「忽略」)则『典』
也。
「配置典含字段」乃化「配置根典」而化「字符串」而「爻」也。
「配置典含字段」者会「典」而会「字段名」而
鉴「典」而
有「罄」则「阴」
或有(「缀」于(「当前名」与「忽略值」)于「尾」)则
若(「串相等」于「当前名」于「字段名」)则「阳」否则「配置典含字段」于「尾」于「字段名」
也。
「配置典加字段」乃化「字符串」而化「配置值」而化「配置根典」而「配置根典」也。
「配置典加字段」者会「字段名」而会「值」而会「尾」而
若(「配置典含字段」于「尾」于「字段名」)
则「发生事故」于(『豫构配置含重复字段「』附「字段名」附『」』)
否则「缀」于(「字段名」与「值」)于「尾」
也。
「配置典取字段」乃化「配置根典」而化「字符串」而「或可有」于「配置值」也。
「配置典取字段」者会「典」而会「字段名」而
鉴「典」而
有「罄」则「可无」
或有(「缀」于(「当前名」与「值」)于「尾」)则
若(「串相等」于「当前名」于「字段名」)则「可有」于「值」否则「配置典取字段」于「尾」于「字段名」
也。
「是近似类型占位式」乃化「表达式」而「爻」也。
「是近似类型占位式」者会「式」而鉴「式」而
有(「式节点」于「近似类型占位节点」于「罄」)则「阳」
或有「其他」则「阴」
也。
「解码配置列表达式」乃化(化「表达式」而「配置值」)而化「表达式」而「列」于「配置值」也。
「解码配置列表达式」者会「解值」而会「式」而
鉴「式」而
有(「自由变量」于『罄』)则「罄」
或有(「式节点」于「函数调用」于
((「列」【(「自由变量」于『缀』),(「式节点」于(「参数节点」于「显式」)于((「列」【「首式」】))),(「式节点」于(「参数节点」于「显式」)于((「列」【「尾式」】)))】)))则
「缀」于(「解值」于「首式」)于(「解码配置列表达式」于「解值」于「尾式」)
或有「其他」则「发生事故」于(『豫构配置只允许由「列」【……】产生的静态列,得到:』附(「表达式表示」于「其他」))
也。
「解码内层典项」乃化(化「表达式」而「配置值」)而化「表达式」而(「字符串」合「配置值」)也。
「解码内层典项」者会「解值」而会「式」而
鉴「式」而
有(「式节点」于(「定义声明近似类型节点」于「定义不透明」)于
((「列」【(「自由变量」于「字段名」),「类」,「值式」】)))则
若(「是近似类型占位式」于「类」)
则「字段名」与(「解值」于「值式」)
否则「发生事故」于(『内层字段「』附「字段名」附『」不得声明类型』)
或有「其他」则「发生事故」于(『「典」【……】内只允许“名称者值也”,得到:』附(「表达式表示」于「其他」))
也。
「解码内层典项们」乃化(化「表达式」而「配置值」)而化(「列」于「表达式」)而「配置根典」也。
「解码内层典项们」者会「解值」而会「式们」而
鉴「式们」而
有「罄」则「罄」
或有(「缀」于「首式」于「尾式们」)则
虑「首项」者「解码内层典项」于「解值」于「首式」而
「配置典加字段」于(「首项」中「零」)于(「首项」中「一」)于(「解码内层典项们」于「解值」于「尾式们」)
也。
「解码配置表达式」乃化「表达式」而「配置值」也。
「解码配置表达式」者会「式」而
鉴「式」而
有(「式节点」于(「字符串节点」于「串」)于「罄」)则「配置字符串」于「串」
或有(「式节点」于(「整数节点」于「数」)于「罄」)则「配置整数」于「数」
或有(「式节点」于(「小数节点」于「数」于「忽略字面」)于「罄」)则「配置小数」于「数」
或有(「式节点」于(「内建节点」于「内建爻阳」)于「罄」)则「配置爻」于「阳」
或有(「式节点」于(「内建节点」于「内建爻阴」)于「罄」)则「配置爻」于「阴」
或有(「式节点」于(「内建节点」于「内建有元」)于「罄」)则「配置空」
或有(「自由变量」于「符号」)则
若(「串相等」于「符号」于『罄』)
则「配置列」于「罄」
否则「配置符号」于「符号」
或有(「式节点」于「通用序列节点」于(「缀」于(「自由变量」于『典』)于「项式们」))则
「配置典」于(「解码内层典项们」于「解码配置表达式」于「项式们」)
或有(「式节点」于「函数调用」于「忽略参数」)则「配置列」于(「解码配置列表达式」于「解码配置表达式」于「式」)
或有「其他」则「发生事故」于(『豫构配置不支持此表达式:』附(「表达式表示」于「其他」))
也。
「解码顶层定义」乃化(「字符串」合「爻」合「表达式」)而(「字符串」合「配置值」)也。
「解码顶层定义」者会「定义项」而
虑「字段名」者「定义项」中「零」而
鉴(「定义项」中「二」)而
有(「式节点」于(「定义声明近似类型节点」于「定义不透明」)于
((「列」【「类」,「值式」】)))则
若(「是近似类型占位式」于「类」)
则「字段名」与(「解码配置表达式」于「值式」)
否则「发生事故」于(『顶层字段「』附「字段名」附『」不得声明类型』)
或有「其他」则「发生事故」于(『豫构文件顶层只允许“名称者值也。”,字段「』附「字段名」附『」不合法』)
也。
「解码顶层定义们」乃化「文件定义列」而「配置根典」也。
「解码顶层定义们」者会「定义们」而
鉴「定义们」而
有「罄」则「罄」
或有(「缀」于「首定义」于「尾定义」)则
虑「首项」者「解码顶层定义」于「首定义」而
「配置典加字段」于(「首项」中「零」)于(「首项」中「一」)于(「解码顶层定义们」于「尾定义」)
也。
「解析配置文本」乃化「字符串」而化「字符串」而「配置根典」也。
「解析配置文本」者会「文件名」而会「内容」而
「:惟调词法与抽象语法解析,不行名称解析、类型检查及求值。现代汉语:这里只调用 parser,不调用编译器流程。:」
虑「词法」者「词法解析顶层」于「内容」而
虑「定义们」者「抽象语法解析编译单元顶层」于「文件名」于「词法」而
「解码顶层定义们」于「定义们」
也。
「解析配置文件」乃化「字符串」而「配置根典」也。
「解析配置文件」者会「文件名」而
「解析配置文本」于「文件名」于(「读文件」于「文件名」)
也。
「必取配置字段」乃化「配置根典」而化「字符串」而「配置值」也。
「必取配置字段」者会「典」而会「字段名」而
鉴(「配置典取字段」于「典」于「字段名」)而
有(「可有」于「值」)则「值」
或有「可无」则「发生事故」于(『豫构配置缺少必需字段「』附「字段名」附『」』)
也。
「配置值取字符串」乃化「字符串」而化「配置值」而「字符串」也。
「配置值取字符串」者会「所在」而会「值」而鉴「值」而
有(「配置字符串」于「串」)则「串」
或有「其他」则「发生事故」于(「所在」附『应为字符串,实为』附(「配置值类名」于「其他」))
也。
「配置值取名称」乃化「字符串」而化「配置值」而「字符串」也。
「配置值取名称」者会「所在」而会「值」而鉴「值」而
有(「配置字符串」于「串」)则「串」
或有(「配置符号」于「符号」)则「符号」
或有「其他」则「发生事故」于(「所在」附『应为字符串或符号,实为』附(「配置值类名」于「其他」))
也。
「配置列取字符串们」乃化「字符串」而化「爻」而化(「列」于「配置值」)而「列」于「字符串」也。
「配置列取字符串们」者会「所在」而会「可用符号」而会「值们」而
鉴「值们」而
有「罄」则「罄」
或有(「缀」于「首值」于「尾值」)则
「缀」于(若「可用符号」则「配置值取名称」于「所在」于「首值」否则「配置值取字符串」于「所在」于「首值」)
于(「配置列取字符串们」于「所在」于「可用符号」于「尾值」)
也。
「配置值取字符串列」乃化「字符串」而化「爻」而化「配置值」而「列」于「字符串」也。
「配置值取字符串列」者会「所在」而会「可用符号」而会「值」而鉴「值」而
有(「配置列」于「值们」)则「配置列取字符串们」于「所在」于「可用符号」于「值们」
或有(「配置字符串」于「串」)则(「列」【「串」】)
或有(「配置符号」于「符号」)则若「可用符号」则(「列」【「符号」】)否则「发生事故」于(「所在」附『不接受符号』)
或有「其他」则「发生事故」于(「所在」附『应为列,实为』附(「配置值类名」于「其他」))
也。
「字段名可用」乃化(「列」于「字符串」)而化「字符串」而「爻」也。
「字段名可用」者会「可用名们」而会「字段名」而
鉴「可用名们」而
有「罄」则「阴」
或有(「缀」于「可用名」于「尾」)则
若(「串相等」于「可用名」于「字段名」)则「阳」否则「字段名可用」于「尾」于「字段名」
也。
「确认无未知字段」乃化「字符串」而化(「列」于「字符串」)而化「配置根典」而「有」也。
「确认无未知字段」者会「所在」而会「可用名们」而会「典」而
鉴「典」而
有「罄」则「元」
或有(「缀」于(「字段名」与「忽略值」)于「尾」)则
若(「字段名可用」于「可用名们」于「字段名」)
则「确认无未知字段」于「所在」于「可用名们」于「尾」
否则「发生事故」于(「所在」附『含未知字段「』附「字段名」附『」』)
也。
「解码包引用」乃化「配置值」而「包引用」也。
「解码包引用」者会「值」而鉴「值」而
有(「配置字符串」于「名」)则(
虑「无」者「确认短包名」于「名」而(「可无」授以「字符串」)与「名」)
或有(「配置典」于「字段」)则(
虑「无」者「确认无未知字段」于『依赖典』于(「列」【『所有者』,『包』】)于「字段」而
虑「所有者」者「配置值取字符串」于『依赖典的所有者』于(「必取配置字段」于「字段」于『所有者』)而
虑「名」者「配置值取字符串」于『依赖典的包』于(「必取配置字段」于「字段」于『包』)而
虑「无」者「确认短包名」于「所有者」而
虑「无」者「确认短包名」于「名」而(「可有」于「所有者」)与「名」)
或有「其他」则「发生事故」授以「包引用」于『依赖列表的每项必须是包名字符串或含所有者、包字段的典』也。
「解码依赖列表」乃化「配置值」而(「列」于「包引用」)也。
「解码依赖列表」者会「值」而鉴「值」而
有(「配置列」于「项们」)则「态射」授以「配置值」授以「包引用」于「项们」于「解码包引用」
或有「其他」则「发生事故」授以(「列」于「包引用」)于『依赖字段必须是列』也。
「:文言:原生路径唯在包中,源文须明列。汉语:这里只解码相对路径;存在性和子包边界由构建阶段检查。:」
「确认原生路径」乃化「字符串」而「有」也。
「确认原生路径」者会「路径」而
虑「无」者「态射」授以「字符串」授以「有」于(「按字符分段」于『/』于「路径」)于「确认名称段」而「元」也。
「解码原生路径列」乃化「配置根典」而化「字符串」而(「列」于「字符串」)也。
「解码原生路径列」者会「字段」而会「名」而
虑「项们」者鉴「配置典取字段」于「字段」于「名」而
有「可无」则「罄」授以「字符串」
或有(「可有」于(「配置列」于「值们」))则「态射」授以「配置值」授以「字符串」于「值们」于(会「项值」而「配置值取字符串」于「名」于「项值」)
或有「其他」则「发生事故」授以(「列」于「字符串」)于(「名」附『必须是字符串列』)
而虑「无」者「从左折叠」授以「字符串」授以(「列」于「字符串」)于(会「项」而会「已有」而
虑「无」者「确认原生路径」于「项」而
若「包内含名」于「已有」于「项」则「发生事故」授以(「列」于「字符串」)于(『原生路径重复:』附「项」)
否则「缀」于「项」于「已有」)于「罄」于「项们」而「项们」也。
「解码原生配置」乃化「配置值」而「原生配置」也。
「解码原生配置」者会「值」而鉴「值」而
有(「配置典」于「字段」)则(
虑「无」者「确认无未知字段」于『原生』于(「列」【『源文件』,『包含目录』,『系统依赖』】)于「字段」而
虑「源」者「解码原生路径列」于「字段」于『源文件』而
虑「无」者「态射」授以「字符串」授以「有」于「源」于(会「文件」而
若「串结尾是它吗」于『.c』于「文件」则「元」否则「发生事故」授以「有」于『原生源文件必须以 .c 结尾』)而
「源」与(「解码原生路径列」于「字段」于『包含目录』))
或有「其他」则「发生事故」授以「原生配置」于『原生字段必须是典』也。
「必取非空串」乃化「配置根典」而化「字符串」而「字符串」也。
「必取非空串」者会「典」而会「键」而
虑「串」者「配置值取字符串」于「键」于(「必取配置字段」于「典」于「键」)而
若「串相等」于「串」于『』则「发生事故」授以「字符串」于(「键」附『不可为空』)否则「串」也。
「:文言:版本三数,不以其文行求解。汉语:首版仅接受主次修订三个无前导零的十进制整数,不承诺版本范围或多版本求解。:」
「确认包版本」乃化「字符串」而「有」也。
「确认包版本」者会「版本」而
虑「段们」者「按字符分段」于『.』于「版本」而
虑「无」者若「等于」于(「长度」授以「字符串」于「段们」)于「三」则「元」否则「发生事故」授以「有」于『版本应为三个十进制整数,如 0.1.0』而
虑「无」者「态射」授以「字符串」授以「有」于「段们」于(会「段」而
虑「无」者若「串相等」于「段」于『』则「发生事故」授以「有」于『版本段不可为空』否则「元」而
虑「无」者「态射」授以「字符串」授以「有」于(「获取字符」于「段」)于(会「字」而
若「包内含名」于(「列」【『0』,『1』,『2』,『3』,『4』,『5』,『6』,『7』,『8』,『9』】)于「字」则「元」否则「发生事故」授以「有」于『版本只接受十进制数字』)而
若「且」于(「大于」于(「串长度」于「段」)于「一」)于(「串开头是它吗」于『0』于「段」)则「发生事故」授以「有」于『版本段不可有前导零』否则「元」)而「元」也。
「解码系统依赖」乃化「配置根典」而(「列」于「字符串」)也。
「解码系统依赖」者会「典」而鉴「配置典取字段」于「典」于『原生』而
有(「可有」于(「配置典」于「原生」))则(鉴「配置典取字段」于「原生」于『系统依赖』而
有「可无」则「罄」
或有(「可有」于(「配置列」于「项们」))则「态射」授以「配置值」授以「字符串」于「项们」于(会「项」而
虑「名」者「配置值取字符串」于『系统依赖』于「项」而
虑「无」者「确认名称段」于「名」而
虑「无」者「态射」授以「字符串」授以「有」于(「获取字符」于「名」)于(会「字」而
若「是子字符串吗」于「字」于『abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_+-.』则「元」否则「发生事故」授以「有」于『系统库名只接受 ASCII 字母、数字及 _ + - .』)而「名」)
或有「其他」则「发生事故」授以(「列」于「字符串」)于『系统依赖必须为库名字符串列』)
或有「其他」则「罄」也。
「:文言:典载标签,分支各具其项。汉语:数据只用对象和字符串表达;解码后为带数据枚举,不放宽通用 parser 的序列头。:」
「解码包类型」乃化「配置值」而「包类型」也。
「解码包类型」者会「值」而鉴「值」而
有(「配置典」于「字段」)则(
虑「种类」者「配置值取名称」于『种类』于(「必取配置字段」于「字段」于『种类』)而
若「串相等」于「种类」于『库』则(
虑「无」者「确认无未知字段」于『库类型』于(「列」【『种类』】)于「字段」而「库类型」)
否则若「串相等」于「种类」于『可执行文件』则(
虑「无」者「确认无未知字段」于『可执行文件类型』于(「列」【『种类』,『入口』,『文件名』】)于「字段」而
虑「入口」者「配置值取字符串列」于『入口』于「阴」于(「必取配置字段」于「字段」于『入口』)而
虑「无」者若「等于」于(「长度」授以「字符串」于「入口」)于「零」则「发生事故」授以「有」于『可执行文件入口不可为空』否则「元」而
虑「无」者「态射」授以「字符串」授以「有」于「入口」于「确认名称段」而
虑「文件名」者「必取非空串」于「字段」于『文件名』而
虑「无」者「确认名称段」于「文件名」而
虑「无」者若「或者」于(「串开头是它吗」于『yy』于「文件名」)于(「串结尾是它吗」于『.exe』于「文件名」)则「元」否则「发生事故」授以「有」于『可执行文件名必须以 yy 开头或以 .exe 结尾』而
「可执行文件类型」于「入口」于「文件名」)
否则「发生事故」授以「包类型」于(『未知包类型:』附「种类」))
或有「其他」则「发生事故」授以「包类型」于『类型必须是含种类的典』也。
「解码包资料」乃化「字符串」而化「配置根典」而「包元数据」也。
「解码包资料」者会「名」而会「典」而
虑「声明名」者「必取非空串」于「典」于『名称』而
虑「无」者若「串相等」于「名」于「声明名」则「元」否则「发生事故」授以「有」于『名称必须与包文件名一致』而
虑「所有者」者「必取非空串」于「典」于『所有者』而
虑「无」者「确认名称段」于「所有者」而
虑「版本」者「必取非空串」于「典」于『版本』而
虑「无」者「确认包版本」于「版本」而
虑「简介」者「必取非空串」于「典」于『简介』而
虑「说明」者鉴「必取配置字段」于「典」于『说明』而
有(「配置典」于「字段」)则(
虑「无」者「确认无未知字段」于『说明』于(「列」【『汉语』,『文言』】)于「字段」而
「态射」授以「字符串」授以「字符串」于(「列」【『汉语』,『文言』】)于(会「语」而
虑「路径」者「必取非空串」于「字段」于「语」而
虑「无」者「确认原生路径」于「路径」而
若「串结尾是它吗」于(『.』附「语」附『.md』)于「路径」则「路径」否则「发生事故」授以「字符串」于『说明文件必须使用对应的 .汉语.md 或 .文言.md 后缀』))
或有「其他」则「发生事故」授以(「列」于「字符串」)于『说明必须为双语路径典』
而「所有者」与「版本」与「简介」与「说明」与(「解码系统依赖」于「典」)也。
「配置典解码为包」乃化「字符串」而化「配置根典」而「包」也。
「配置典解码为包」者会「文件」而会「典」而
虑「名」者「包文件短名」于「文件」而
虑「无」者「确认无未知字段」于(『包配置:』附「文件」)于(「列」【『名称』,『所有者』,『版本』,『简介』,『说明』,『类型』,『依赖』,『原生』】)于「典」而
虑「依赖」者鉴「配置典取字段」于「典」于『依赖』而
有「可无」则「罄」授以「包引用」
或有(「可有」于「值」)则「解码依赖列表」于「值」
而虑「种类值」者「解码包类型」于(「必取配置字段」于「典」于『类型』)而
虑「原生」者鉴「配置典取字段」于「典」于『原生』而
有「可无」则(「罄」授以「字符串」)与(「罄」授以「字符串」)
或有(「可有」于「值」)则「解码原生配置」于「值」
而「构造包」于「名」于「依赖」于「种类值」于「原生」于(「解码包资料」于「名」于「典」)
也。
「解析包文本」乃化「字符串」而化「字符串」而「包」也。
「解析包文本」者会「文件名」而会「内容」而
「配置典解码为包」于「文件名」于(「解析配置文本」于「文件名」于「内容」)
也。
「解析包文件」乃化「字符串」而「包」也。
「解析包文件」者会「文件名」而「解析包文本」于「文件名」于(「读文件」于「文件名」)也。
「尝试解析包文本」乃化「字符串」而化「字符串」而「包解析结果」也。
「尝试解析包文本」者会「文件名」而会「内容」而
(「尝试运行」授以「包解析结果」)
于(会「无」而「包解析成功」于(「解析包文本」于「文件名」于「内容」))
于(会「错误」而「包解析失败」于「错误」)
也。
「尝试解析包文件」乃化「字符串」而「包解析结果」也。
「尝试解析包文件」者会「文件名」而
(「尝试运行」授以「包解析结果」)
于(会「无」而「包解析成功」于(「解析包文件」于「文件名」))
于(会「错误」而「包解析失败」于「错误」)
也。