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
「:
豫言源码树静态网站生成器。
用法:
yybs_源码树网站 构建 【输出目录】
默认输出目录是 dist/源码树浏览器。目录与全部页面标记由豫言在构建期生成,
豫言源码由编译器语法分析器生成语义标记 JSON,再由静态着色器读取标记范围着色。
浏览器只加载 HTML 与 CSS。生成后可直接交给
「工具/简易网页服务器/入口。豫」预览。
:」
寻观「标准库」之书。
寻观「标准库」之「语言核心」之「异常」之书。
寻观「标准库」之「数据结构」之「整数操作」之书。
寻观「标准库」之「数据结构」之「字符串术」之书。
寻观「标准库」之「数据结构」之「多态列」之书。
寻观「标准库」之「数据结构」之「特殊字符」之书。
寻观「标准库」之「操作系统」之「命令行参数」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「路径」之书。
寻观「标准库」之「输入输出」之「笔」之书。
寻观「拓展库」之「网页客户端」之「核心」之书。
寻观「拓展库」之「网页客户端」之「文档组件」之书。
寻观「编译器核心」之「编译数据」之「语义标记信息」之书。
寻观「编译器核心」之「编译数据」之「操作符」之「操作符数据结构」之书。
寻观「编译器核心」之「编译步骤」之「语法分析」之「词法解析」之书。
寻观「编译器核心」之「编译步骤」之「语法分析」之「抽象语法分析」之书。
「站点片段」即
「字符串」「:目录标记:」合
(「列」于「字符串」)「:文档标记们:」合
「整数」「:文件数量:」
也。
「合并站点片段」乃化「站点片段」而化「站点片段」而「站点片段」也。
「合并站点片段」者会「甲」而会「乙」而
((「甲」中「零」)附(「乙」中「零」))与
(「附加」授以「字符串」于(「甲」中「一」)于(「乙」中「一」))与
(「加」于(「甲」中「二」)于(「乙」中「二」))
也。
「源码后缀们」乃「列」于「字符串」也。
「源码后缀们」者(「列」【『。豫』,『.yuyan』】)也。
「结尾属于」乃化「字符串」而化(「列」于「字符串」)而「爻」也。
「结尾属于」者会「名称」而会「后缀们」而
鉴「后缀们」而
有「罄」则「阴」
或有(「缀」于「后缀」于「余下」)则若「串结尾是它吗」于「后缀」于「名称」则「阳」否则「结尾属于」于「名称」于「余下」
也。
「可阅读文件」乃化「字符串」而「爻」也。
「可阅读文件」者会「名称」而
「结尾属于」于「名称」于「源码后缀们」
也。
「忽略目录」乃化「字符串」而「爻」也。
「忽略目录」者会「名称」而
「或者」于(「字符串相等吗」于「名称」于『.』)于
(「或者」于(「字符串相等吗」于「名称」于『..』)于
(「或者」于(「串结尾是它吗」于『_v0』于「名称」)于
(「或者」于(「字符串相等吗」于「名称」于『.git』)于
(「或者」于(「字符串相等吗」于「名称」于『.codex』)于
(「或者」于(「字符串相等吗」于「名称」于『.agents』)于
(「或者」于(「字符串相等吗」于「名称」于『.yybuild』)于
(「或者」于(「字符串相等吗」于「名称」于『node_modules』)于
(「或者」于(「字符串相等吗」于「名称」于『__pycache__』)于
(「字符串相等吗」于「名称」于『dist』)))))))))
也。
「语言名称」乃化「字符串」而「字符串」也。
「语言名称」者会「忽略名称」而『yuyan』
也。
「数新行」乃化(「列」于「字符串」)而「整数」也。
「数新行」者会「字符们」而
鉴「字符们」而
有「罄」则「零」
或有(「缀」于「当前」于「余下」)则「加」于(若「字符串相等吗」于「当前」于「新行」则「一」否则「零」)于(「数新行」于「余下」)
也。
「源码行数」乃化「字符串」而「整数」也。
「源码行数」者会「内容」而
若「字符串相等吗」于「内容」于『』则「一」否则
虑「换行数」者「数新行」于(「获取字符」于「内容」)而
若「串结尾是它吗」于「新行」于「内容」则「换行数」否则「加」于「换行数」于「一」
也。
「构建行号」乃化「整数」而化「整数」而化(「列」于「字符串」)而「字符串」也。
「构建行号」者会「当前」而会「总数」而会「倒序行号」而
若「大于」于「当前」于「总数」则「串组合并」于((「反转」授以「字符串」)于「倒序行号」)
否则「构建行号」于(「加」于「当前」于「一」)于「总数」于(「缀」于((「整数表示」于「当前」)附「新行」)于「倒序行号」)
也。
「默认文件吗」乃化「字符串」而化「字符串」而化「整数」而「爻」也。
「默认文件吗」者会「相对路径」而会「首选路径」而会「序数」而
「或者」于(「字符串相等吗」于「相对路径」于「首选路径」)于
(「且」于(「字符串相等吗」于「首选路径」于『』)于(「等于」于「序数」于「一」))
也。
「语义标记样式」乃化「语义标记种类」而「字符串」也。
「语义标记样式」者会「种类」而
鉴「种类」而
有「结构操作符标记」则『tok-structure』
或有「类型操作符标记」则『tok-type』
或有「控制操作符标记」则『tok-control』
或有「普通操作符标记」则『tok-operator』
或有「内建类型标记」则『tok-builtin-type』
或有「内建函数标记」则『tok-builtin-function』
或有「内建常量标记」则『tok-builtin-constant』
或有「绑定标识符标记」则『tok-binder』
或有「引用标识符标记」则『tok-identifier』
或有「数值标记」则『tok-number』
或有「字符串标记」则『tok-string』
或有「注释标记」则『tok-comment』
或有「结构终止符标记」则『tok-structure-terminator』
也。
「按语义标记着色」乃化「字符串」而化「字符串」而「字符串」也。
「按语义标记着色」者会「源码」而会「语义JSON」而
虑「标记们」者(「语义标记信息自JSON」于「语义JSON」)中「一」而
递归虑「着色」其化「整数」而化(「列」于「语义标记」)而化(「列」于「字符串」)而「字符串」者
会「当前偏移」而会「余下标记」而会「反片段」而
鉴「余下标记」而
有「罄」则
「串组合并」于(「反转」于(「缀」于(「转义网页文字」于(「获取子字符串」于「当前偏移」于(「串长度」于「源码」)于「源码」))于「反片段」))
或有(「缀」于(「构造语义标记」于「种类」于「开始」于「结束」于「忽略开始行」于「忽略开始列」于「忽略结束行」于「忽略结束列」)于「标记尾」)则
若「大于」于「当前偏移」于「开始」则「发生事故」于『语义标记范围重叠或未排序』否则
虑「原文前缀」者「转义网页文字」于(「获取子字符串」于「当前偏移」于「开始」于「源码」)而
虑「标记原文」者「转义网页文字」于(「获取子字符串」于「开始」于「结束」于「源码」)而
虑「着色片段」者『<span class="』附(「语义标记样式」于「种类」)附『">』附「标记原文」附『</span>』而
「着色」于「结束」于「标记尾」于(「缀」于「着色片段」于(「缀」于「原文前缀」于「反片段」))
而「着色」于「零」于「标记们」于「罄」
也。
「构建豫言源码高亮」乃化「字符串」而化「字符串」而化「字符串」而化「字符串」而「字符串」也。
「构建豫言源码高亮」者会「输出目录」而会「实际路径」而会「相对路径」而会「源码」而
(「尝试运行」授以「字符串」)于(会「无」而
虑「解析结果」者「抽象语法解析编译单元顶层及语义标记」于「实际路径」于(「词法解析顶层」于「源码」)而
虑「标记们」者「定位语义标记」于「源码」于(「解析结果」中「一」)而
虑「语义JSON」者「语义标记信息转JSON」于「相对路径」于「标记们」而
虑「无」者「写文件」于(「路径合并」于「输出目录」于(『语义标记/』附「相对路径」附『.json』))于「语义JSON」而
「按语义标记着色」于「源码」于「语义JSON」
)于(会「错误」而
虑「无」者「标准错误打印行」于(『语义标记生成失败,改用纯文本:』附「相对路径」附『:』附「错误」)而
虑「空JSON」者「语义标记信息转JSON」于「相对路径」于「罄」而
虑「无」者「写文件」于(「路径合并」于「输出目录」于(『语义标记/』附「相对路径」附『.json』))于「空JSON」而
「转义网页文字」于「源码」
)
也。
「构建文件文档」乃化「字符串」而化「字符串」而化「字符串」而化「字符串」而化「整数」而化「字符串」而「站点片段」也。
「构建文件文档」者会「输出目录」而会「实际路径」而会「相对路径」而会「名称」而会「序数」而会「首选路径」而
虑「锚点」者『源码-』附(「整数表示」于「序数」)而
虑「语言」者「语言名称」于「名称」而
虑「内容」者「读文件」于「实际路径」而
虑「高亮内容」者「构建豫言源码高亮」于「输出目录」于「实际路径」于「相对路径」于「内容」而
虑「行数」者「源码行数」于「内容」而
虑「默认」者「默认文件吗」于「相对路径」于「首选路径」于「序数」而
虑「目录类」者若「默认」则『tree-link is-default』否则『tree-link』而
虑「文档类」者若「默认」则『source-document is-default』否则『source-document』而
虑「目录标记」者
『<li class="tree-item file-item"><a class="』附「目录类」附『" href="#』附「锚点」附『"><span class="node-icon file" aria-hidden="true"></span><span class="tree-name">』附(「转义网页文字」于「名称」)附『</span></a></li>』
而
虑「文档标记」者
『<article id="』附「锚点」附『" class="』附「文档类」附『"><header class="reader-head"><div class="path-block"><div class="breadcrumb">』附(「转义网页文字」于「相对路径」)附『</div><div class="file-meta">』附(「转义网页文字」于「语言」)附『 · 』附(「整数表示」于「行数」)附『 行 · 』附(「整数表示」于(「字节长度」于「内容」))附『 字节 · UTF-8</div></div><a class="source-link" href="#』附「锚点」附『" aria-label="此文件的永久链接">§</a></header><div class="code-viewport"><div class="code-layout"><pre class="line-numbers" aria-hidden="true">』附(「构建行号」于「一」于「行数」于「罄」)附『</pre><pre class="source-code"><code data-language="』附(「转义网页文字」于「语言」)附『">』附「高亮内容」附『</code></pre></div></div></article>』
而「目录标记」与((「列」【「文档标记」】))与「一」
也。
「构建源码列表」乃化「字符串」而化「字符串」而化「字符串」而化(「列」于「字符串」)而化「整数」而化「字符串」而「站点片段」也。
「构建源码列表」者会「根目录」而会「输出目录」而会「相对目录」而会「名称们」而会「序数」而会「首选路径」而
鉴「名称们」而
有「罄」则『』与「罄」与「零」
或有(「缀」于「名称」于「余下」)则
虑「相对路径」者若「字符串相等吗」于「相对目录」于『』则「名称」否则「相对目录」附『/』附「名称」而
虑「实际路径」者「路径合并」于「根目录」于「相对路径」而
虑「当前结果」者
若「路径是文件夹」于「实际路径」则
若「忽略目录」于「名称」则『』与「罄」与「零」否则
虑「子结果」者「构建源码列表」于「根目录」于「输出目录」于「相对路径」于(「读文件夹」于「实际路径」)于「序数」于「首选路径」而
若「等于」于(「子结果」中「二」)于「零」则『』与「罄」与「零」否则
(『<li class="tree-item directory-item"><details><summary class="tree-summary"><span class="node-icon folder" aria-hidden="true"></span><span class="tree-name">』附(「转义网页文字」于「名称」)附『</span></summary><ul>』附(「子结果」中「零」)附『</ul></details></li>』)与(「子结果」中「一」)与(「子结果」中「二」)
否则若「且」于(「路径是普通文件」于「实际路径」)于(「可阅读文件」于「名称」)
则「构建文件文档」于「输出目录」于「实际路径」于「相对路径」于「名称」于「序数」于「首选路径」
否则『』与「罄」与「零」
而
虑「余下结果」者「构建源码列表」于「根目录」于「输出目录」于「相对目录」于「余下」于(「加」于「序数」于(「当前结果」中「二」))于「首选路径」而
「合并站点片段」于「当前结果」于「余下结果」
也。
「节点列一」乃化「网页节点」而(「列」于「网页节点」)也。
「节点列一」者会「甲」而(「列」【「甲」】)也。
「节点列三」乃化「网页节点」而化「网页节点」而化「网页节点」而(「列」于「网页节点」)也。
「节点列三」者会「甲」而会「乙」而会「丙」而(「列」【「甲」,「乙」,「丙」】)也。
「节点列四」乃化「网页节点」而化「网页节点」而化「网页节点」而化「网页节点」而(「列」于「网页节点」)也。
「节点列四」者会「甲」而会「乙」而会「丙」而会「丁」而(「列」【「甲」,「乙」,「丙」,「丁」】)也。
「属性列一」乃化「网页属性」而(「列」于「网页属性」)也。
「属性列一」者会「甲」而(「列」【「甲」】)也。
「属性列二」乃化「网页属性」而化「网页属性」而(「列」于「网页属性」)也。
「属性列二」者会「甲」而会「乙」而(「列」【「甲」,「乙」】)也。
「编制网页」乃化「字符串」而化「站点片段」而「字符串」也。
「编制网页」者会「根名称」而会「站点」而
虑「头部」者「文档头」于(「节点列四」于
(「元信息」于(「属性列一」于(「属性」于『charset』于『utf-8』)))
于(「元信息」于(「属性列二」于(「属性」于『name』于『viewport』)于(「属性」于『content』于『width=device-width, initial-scale=1』)))
于(「网页标题」于『豫言源码浏览器』)
于(「元素」于『link』于(「属性列二」于(「属性」于『rel』于『stylesheet』)于(「属性」于『href』于『界面.css』))于「罄」))
而
虑「正文标记」者
『<link rel="stylesheet" href="主题.css"><script defer src="通用.js"></script><div data-yuyan-site="source" data-home="index.html"></div><input class="state-toggle" id="writing-toggle" type="checkbox" checked><div class="shell"><header class="masthead"><div class="identity"><div class="seal" aria-hidden="true">豫</div><div class="title-group"><h1>豫言源码浏览器 <span>/ Source Browser</span></h1><p class="subtitle">浏览项目文件与源码</p></div></div><nav class="toolbar" aria-label="阅读设置"><label class="tool-button writing-button" for="writing-toggle" aria-label="切换排版方向"><span class="tool-icon">排</span><span class="horizontal-label">竖排</span><span class="vertical-label">横排</span></label></nav></header><main class="workspace"><aside class="sidebar" aria-label="源码树"><div class="sidebar-head"><p class="section-label">文件</p><p class="sidebar-note">选择文件查看源码</p></div><nav class="tree" aria-label="文件目录"><ul class="tree-list">』附(「站点」中「零」)附『</ul></nav><div class="sidebar-foot"><span>』附(「转义网页文字」于「根名称」)附『</span><span>』附(「整数表示」于(「站点」中「二」))附『 个文件</span></div></aside><section class="reader" aria-label="源码阅读器"><div class="source-stack">』附(「串组合并」于(「站点」中「一」))附『</div></section></main></div>』
而「网页文档」于『zh-CN』于「头部」于(「文档体」于「罄」于(「节点列一」于(「可信原文」于「正文标记」)))
也。
「默认输出目录」乃「字符串」也。
「默认输出目录」者『dist/源码树浏览器』也。
「构建静态站以资源」乃化「字符串」而化「字符串」而化「字符串」而「有」也。
「构建静态站以资源」者会「源码根目录」而会「输出目录」而会「资源根」而
虑「无」者「标准错误打印行」于(『正在扫描源码:』附「源码根目录」)而
虑「首选候选」者『豫言编译器/入口。豫』而
虑「首选路径」者若「路径存在」于(「路径合并」于「源码根目录」于「首选候选」)则「首选候选」否则『』而
虑「站点」者「构建源码列表」于「源码根目录」于「输出目录」于『』于(「读文件夹」于「源码根目录」)于「一」于「首选路径」而
虑「无」者「标准错误打印行」于『源码扫描完成』而
若「等于」于(「站点」中「二」)于「零」则「发生事故」于『没有找到可阅读的源码文件』否则
「:古曰:诸站同章。今释:源码文本保持原样,仅共用界面与语言偏好。:」
虑「无」者「写文件」于(「路径合并」于「输出目录」于『主题.css』)于(「读文件」于(「路径合并」于「资源根」于『网站/共用/主题.css』))而
虑「无」者「写文件」于(「路径合并」于「输出目录」于『通用.js』)于(「读文件」于(「路径合并」于「资源根」于『网站/共用/界面.js』))而
虑「资源目录」者「路径合并」于「资源根」于『工具/源码树浏览器/资源』而
虑「索引路径」者「路径合并」于「输出目录」于『index.html』而
虑「无」者「写文件」于「索引路径」于(「编制网页」于(「获取文件名」于「源码根目录」)于「站点」)而
虑「无」者「写文件」于(「路径合并」于「输出目录」于『界面.css』)于(「读文件」于(「路径合并」于「资源目录」于『界面.css』))而
虑「无」者「写文件」于(「路径合并」于「输出目录」于『.nojekyll』)于『』而
「打印行」于(『静态站已生成:』附「输出目录」附『(』附(「整数表示」于(「站点」中「二」))附『 个文件)』)
也。
「构建静态站」乃化「字符串」而化「字符串」而「有」也。
「构建静态站」者会「根」而会「输出」而「构建静态站以资源」于「根」于「输出」于「根」也。
「:文言:源与饰分置,惟览所命之根。汉语:显式源码根用于发布暂存副本,界面资源仍从调用目录读取,不扫描依赖树。:」
虑「源码根目录」者「获取当前路径」于「元」而
鉴「获取参数」于「元」而
有「罄」则「构建静态站」于「源码根目录」于「默认输出目录」
或有((「列」【『构建』】))则「构建静态站」于「源码根目录」于「默认输出目录」
或有((「列」【『构建』,「输出目录」】))则「构建静态站」于「源码根目录」于「输出目录」
或有((「列」【『构建源码』,「输入目录」,「输出目录」】))则「构建静态站以资源」于「输入目录」于「输出目录」于「源码根目录」
或有「其他」则「发生事故」于『用法:yy源码树浏览器 构建 【输出目录】;构建源码 源码目录 输出目录』
。