编译数据/语义标记信息。豫
yuyan · 291 行 · 17945 字节 · 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
寻观「标准库」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「癸象工具」之「总集」之书。
寻观「编译器核心」之「编译数据」之「操作符」之「操作符数据结构」之书。
「:
语义标记由语法分析器在实际规约操作符时产生,不再由网页端猜测关键词。
解析器先产出保持源码顺序的标记草稿;本文件再以单调游标把草稿对齐到原始源码,
同时补入词法阶段略去的注释与顶层句号。所有偏移、行列均从零开始,区间为左闭右开。
JSON 是编译器与着色器之间的稳定边界,网页端只消费标记范围和种类。
:」
「语义标记」立「元类型」也。
「构造语义标记」立化「语义标记种类」而化「整数」而化「整数」而
化「整数」而化「整数」而化「整数」而化「整数」而「语义标记」也。
「语义源码状态」即(「列」于「字符串」)合「整数」合「整数」合「整数」也。
「语义状态剩余」乃化「语义源码状态」而(「列」于「字符串」)也。
「语义状态剩余」者会「状态」而「状态」中「零」也。
「语义状态偏移」乃化「语义源码状态」而「整数」也。
「语义状态偏移」者会「状态」而「状态」中「一」也。
「语义状态行」乃化「语义源码状态」而「整数」也。
「语义状态行」者会「状态」而「状态」中「二」也。
「语义状态列」乃化「语义源码状态」而「整数」也。
「语义状态列」者会「状态」而「状态」中「三」也。
「语义状态以串开头」乃化「语义源码状态」而化「字符串」而「爻」也。
「语义状态以串开头」者会「状态」而会「串」而
(「以起否」授以「字符串」)于「串相等」于(「获取字符」于「串」)
于(「语义状态剩余」于「状态」)也。
「语义状态前进一字」乃化「语义源码状态」而「语义源码状态」也。
「语义状态前进一字」者会「状态」而
鉴(「语义状态剩余」于「状态」)而
有「罄」则「状态」
或有(「缀」于「字」于「尾」)则
若「串相等」于「字」于『「:换行:」』
则
「尾」与(「加」于(「语义状态偏移」于「状态」)于「一」)与
(「加」于(「语义状态行」于「状态」)于「一」)与「零」
否则
「尾」与(「加」于(「语义状态偏移」于「状态」)于「一」)与
(「语义状态行」于「状态」)与(「加」于(「语义状态列」于「状态」)于「一」)
也。
「语义状态前进」乃化「语义源码状态」而化「整数」而「语义源码状态」也。
「语义状态前进」者会「状态」而会「个数」而
若「等」于「个数」于「零」则「状态」
否则
「语义状态前进」于(「语义状态前进一字」于「状态」)于(「减」于「个数」于「一」)也。
「语义状态是注释开头」乃化「语义源码状态」而「爻」也。
「语义状态是注释开头」者会「状态」而
鉴(「语义状态剩余」于「状态」)而
有(「缀」于『「』于(「缀」于『:』于「忽略尾」))则「阳」
或有「其他」则「阴」也。
「语义状态是注释结尾」乃化「语义源码状态」而「爻」也。
「语义状态是注释结尾」者会「状态」而
鉴(「语义状态剩余」于「状态」)而
有(「缀」于『:』于(「缀」于『」』于「忽略尾」))则「阳」
或有「其他」则「阴」也。
「语义跳过注释」乃化「语义源码状态」而化「整数」而「语义源码状态」也。
「语义跳过注释」者会「状态」而会「深度」而
鉴(「语义状态剩余」于「状态」)而
有「罄」则「发生事故」于『未关闭的源码注释』
或有「其他」则
若「语义状态是注释开头」于「状态」
则
「语义跳过注释」于(「语义状态前进」于「状态」于「二」)
于(「加」于「深度」于「一」)
否则若「语义状态是注释结尾」于「状态」
则
(若「等」于「深度」于「一」
则
「语义状态前进」于「状态」于「二」
否则
「语义跳过注释」于(「语义状态前进」于「状态」于「二」)
于(「减」于「深度」于「一」))
否则
「语义跳过注释」于(「语义状态前进一字」于「状态」)于「深度」
也。
「语义跳过字符串转义」乃化「语义源码状态」而「语义源码状态」也。
「语义跳过字符串转义」者会「状态」而
鉴(「语义状态剩余」于「状态」)而
有「罄」则「发生事故」于『未关闭的字符串转义序列』
或有「其他」则
若「语义状态是注释结尾」于「状态」
则
「语义状态前进」于「状态」于「二」
否则
「语义跳过字符串转义」于(「语义状态前进一字」于「状态」)
也。
「语义跳过字符串」乃化「语义源码状态」而「语义源码状态」也。
「语义跳过字符串」者会「状态」而
鉴(「语义状态剩余」于「状态」)而
有「罄」则「发生事故」于『未关闭的字符串』
或有「其他」则
若「语义状态以串开头」于「状态」于『「:』:」』
则
「语义状态前进一字」于「状态」
否则若「语义状态是注释开头」于「状态」
则
「语义跳过字符串」于(「语义跳过字符串转义」于(「语义状态前进」于「状态」于「二」))
否则
「语义跳过字符串」于(「语义状态前进一字」于「状态」)
也。
「语义跳过标识符」乃化「语义源码状态」而「语义源码状态」也。
「语义跳过标识符」者会「状态」而
鉴(「语义状态剩余」于「状态」)而
有「罄」则「发生事故」于『未关闭的标识符』
或有(「缀」于「字」于「忽略尾」)则
若「串相等」于「字」于『」』
则
「语义状态前进一字」于「状态」
否则
「语义跳过标识符」于(「语义状态前进一字」于「状态」)
也。
「以状态范围构造语义标记」乃化「语义标记种类」而化「语义源码状态」而化「语义源码状态」而「语义标记」也。
「以状态范围构造语义标记」者会「种类」而会「开始」而会「结束」而
「构造语义标记」于「种类」于(「语义状态偏移」于「开始」)于(「语义状态偏移」于「结束」)
于(「语义状态行」于「开始」)于(「语义状态列」于「开始」)
于(「语义状态行」于「结束」)于(「语义状态列」于「结束」)也。
「语义空白」乃化「字符串」而「爻」也。
「语义空白」者会「字」而
「或者」于(「串相等」于「字」于『 』)于(「或者」于(「串相等」于「字」于『「:制表:」』)
于(「串相等」于「字」于『「:换行:」』))也。
「语义标记未对齐信息」乃化「语义源码状态」而化「字符串」而「字符串」也。
「语义标记未对齐信息」者会「状态」而会「文字」而
『语义标记未对齐源码:』附「文字」附『,位置 』附(「整数表示」于(「语义状态行」于「状态」))附『:』附(「整数表示」
于(「语义状态列」于「状态」))
也。
「定位语义标记」乃化「字符串」而化(「列」于「语义标记草稿」)而「列」于「语义标记」也。
「定位语义标记」者会「源码」而会「草稿们」而
递归虑「定位」其化「语义源码状态」而化(「列」于「语义标记草稿」)而化(「列」于「语义标记」)而「列」于「语义标记」
者
会「状态」而会「余稿」而会「反标记」而
鉴(「语义状态剩余」于「状态」)而
有「罄」则
若「等」于(「长度」于「余稿」)于「零」则「反转」于「反标记」
否则
「发生事故」于『源码结束时仍有未定位的语义标记』
或有(「缀」于「当前字」于「忽略尾」)则
若「语义状态是注释开头」于「状态」
则
(虑「结束」者「语义跳过注释」于(「语义状态前进」于「状态」于「二」)于「一」而
「定位」于「结束」于「余稿」于(「缀」于(「以状态范围构造语义标记」于「注释标记」于「状态」于「结束」)于
「反标记」))
否则若「串相等」于「当前字」于『。』
则
(虑「结束」者「语义状态前进一字」于「状态」而
「定位」于「结束」于「余稿」于(「缀」于(「以状态范围构造语义标记」于「结构终止符标记」于「状态」于
「结束」)于
「反标记」))
否则若「语义空白」于「当前字」则「定位」于(「语义状态前进一字」于「状态」)于「余稿」于「反标记」
否则
鉴「余稿」而
有「罄」则「定位」于(「语义状态前进一字」于「状态」)于「罄」于「反标记」
或有(「缀」于(「构造语义标记草稿」于「种类」于「文字」)于「稿尾」)
则(虑「结束」者
鉴「种类」而
有「字符串标记」则若「串相等」于「当前字」于『『』则
「语义跳过字符串」于(「语义状态前进一字」于「状态」)
否则
「发生事故」于(「语义标记未对齐信息」于「状态」于『字符串』)
或有「引用标识符标记」则若「串相等」于「当前字」于『「』则
「语义跳过标识符」于(「语义状态前进一字」于「状态」)
否则
「发生事故」于(「语义标记未对齐信息」于「状态」于「文字」)
或有「绑定标识符标记」则若「串相等」于「当前字」于『「』则
「语义跳过标识符」于(「语义状态前进一字」于「状态」)
否则
「发生事故」于(「语义标记未对齐信息」于「状态」于「文字」)
或有「其他种类」则若「语义状态以串开头」于「状态」于「文字」
则
「语义状态前进」于「状态」于(「串长度」于「文字」)
否则
虑「引号文字」者『「』附「文字」附『」』而若
「语义状态以串开头」于「状态」于「引号文字」则
「语义状态前进」于「状态」于(「串长度」于「引号文字」)
否则
「发生事故」于(「语义标记未对齐信息」于「状态」于「文字」)
而
「定位」于「结束」于「稿尾」于(「缀」于(「以状态范围构造语义标记」于「种类」于「状态」于「结束」)于
「反标记」))
而
「定位」于((「获取字符」于「源码」)与「零」与「零」与「零」)于「草稿们」于「罄」
也。
「语义标记种类文字」乃化「语义标记种类」而「字符串」也。
「语义标记种类文字」者会「种类」而
鉴「种类」而
有「结构操作符标记」则『结构操作符』
或有「类型操作符标记」则『类型操作符』
或有「控制操作符标记」则『控制操作符』
或有「普通操作符标记」则『普通操作符』
或有「内建类型标记」则『内建类型』
或有「内建函数标记」则『内建函数』
或有「内建常量标记」则『内建常量』
或有「绑定标识符标记」则『绑定标识符』
或有「引用标识符标记」则『引用标识符』
或有「数值标记」则『数值』
或有「字符串标记」则『字符串』
或有「注释标记」则『注释』
或有「结构终止符标记」则『结构终止符』
也。
「文字转语义标记种类」乃化「字符串」而「语义标记种类」也。
「文字转语义标记种类」者会「文字」而
鉴「文字」而
有『结构操作符』则「结构操作符标记」
或有『类型操作符』则「类型操作符标记」
或有『控制操作符』则「控制操作符标记」
或有『普通操作符』则「普通操作符标记」
或有『内建类型』则「内建类型标记」
或有『内建函数』则「内建函数标记」
或有『内建常量』则「内建常量标记」
或有『绑定标识符』则「绑定标识符标记」
或有『引用标识符』则「引用标识符标记」
或有『数值』则「数值标记」
或有『字符串』则「字符串标记」
或有『注释』则「注释标记」
或有『结构终止符』则「结构终止符标记」
或有「其他」则「发生事故」于『不识别的语义标记种类:』附「文字」
也。
「语义标记转癸象」乃化「语义标记」而「癸象」也。
「语义标记转癸象」者会「标记」而
鉴「标记」而有(「构造语义标记」于「种类」于「开始」于「结束」于「开始行」于「开始列」于「结束行」于「结束列」)则
「癸象对象」于(「列」【
『种类』与(「癸象字符串」于(「语义标记种类文字」于「种类」)),
『开始』与(「癸象整数」于「开始」),
『结束』与(「癸象整数」于「结束」),
『开始行』与(「癸象整数」于「开始行」),
『开始列』与(「癸象整数」于「开始列」),
『结束行』与(「癸象整数」于「结束行」),
『结束列』与(「癸象整数」于「结束列」)
】)
也。
「语义标记自癸象」乃化「癸象」而「语义标记」也。
「语义标记自癸象」者会「象」而
鉴「象」而
有(「癸象对象」于(「列」【
『种类』与(「癸象字符串」于「种类」),
『开始』与(「癸象整数」于「开始」),
『结束』与(「癸象整数」于「结束」),
『开始行』与(「癸象整数」于「开始行」),
『开始列』与(「癸象整数」于「开始列」),
『结束行』与(「癸象整数」于「结束行」),
『结束列』与(「癸象整数」于「结束列」)
】))则
「构造语义标记」于(「文字转语义标记种类」于「种类」)于「开始」于「结束」于
「开始行」于「开始列」于「结束行」于「结束列」
或有「其他」则「发生事故」于『语义标记 JSON 结构不正确:』附(「癸象表示」于「象」)
也。
「语义标记信息转JSON」乃化「字符串」而化(「列」于「语义标记」)而「字符串」也。
「语义标记信息转JSON」者会「源文件」而会「标记们」而
虑「标记癸象」者(「态射」授以「语义标记」授以「癸象」)于「标记们」于「语义标记转癸象」而
「癸象表示」于(「癸象对象」于(「列」【
『版本』与(「癸象整数」于「一」),
『源文件』与(「癸象字符串」于「源文件」),
『标记』与(「癸象数组」于「标记癸象」)
】))
也。
「语义标记信息自JSON」乃化「字符串」而(「字符串」合(「列」于「语义标记」))也。
「语义标记信息自JSON」者会「文字」而
鉴(「癸象解析」于「文字」)而
有(「癸象对象」于(「列」【
『版本』与(「癸象整数」于「一」),
『源文件』与(「癸象字符串」于「源文件」),
『标记』与(「癸象数组」于「标记癸象」)
】))则
「源文件」与((「态射」授以「癸象」授以「语义标记」)于「标记癸象」于「语义标记自癸象」)
或有「其他」则「发生事故」于『语义标记信息 JSON 结构不正确』
也。
「写语义标记信息」乃化「字符串」而化「字符串」而化(「列」于「语义标记」)而「有」也。
「写语义标记信息」者会「输出路径」而会「源文件」而会「标记们」而
「文件系统」之「写文件」于「输出路径」于(「语义标记信息转JSON」于「源文件」于「标记们」)也。