编译数据/抽象绑定树结构/抽象语法树/抽象语法树表示。豫
yuyan · 269 行 · 15760 字节 · 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
寻观「标准库」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「内建常量数据」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「内建常量表示方法」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「结构名称操作数据」之书。
寻观「编译器核心」之「编译数据」之「编译配置」之「编译期输出」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「抽象语法树数据」之书。
「豫言_字符串表示转义」乃化「字符串」而「字符串」也。
「豫言_字符串表示转义」者会「串」而
「串组合并」于((「打表态射」授以「字符串」授以「字符串」)
于(「获取字符」于「串」)
于(会「字符」而鉴「字符」而
有『「:换行:」』则『「:「::」换行:」』
或有「其他字符」则「其他字符」)
)
也。
「参式表示」乃化「参数形式」而「字符串」也。
「参式表示」者会「参式」而
(
鉴「参式」而
有「显式」则『』
或有「隐式」则『(隐式)』
或有「合并式」则『(合并)』
或有「多参数形」于「个数」则
『(多参数,』附(「整数表示」于「个数」)附『)』
或有「尾多参数形」于「个数」则
『(尾多参数,』附(「整数表示」于「个数」)附『)』
)
也。
「定义透明性表示」乃化「定义透明性」而「字符串」也。
「定义透明性表示」者会「性」而
(鉴「性」而
有「定义透明」则『透明』
或有「定义不透明」则『不透明』)
也。
「构造器文件名表示」乃化「字符串」而「字符串」也。
「构造器文件名表示」者会「路径」而
鉴(「串从右搜索单个」于『/』于「路径」)而
有「可无」则「路径」
或有(「可有」于「下标」)则
「获取子字符串」于(「加」于「下标」于「一」)于(「串长度」于「路径」)于「路径」
也。
「节点名称表示」乃化(「节点名称」)而「字符串」也。
「节点名称表示」者会「名」而
虑「无」者
(「编译调试打印行」
于『log_print_tree』
于(会「无」而(「调试打印」授以「节点名称」)于『print_log』于
「名」;
『节点名表示』))而
鉴「名」而
有「拉姆达抽象」于「参式」则
『λ』附(「参式表示」于「参式」)
或有「拉姆达抽象带类型」于「参式」则
『λ(带类型)』附(「参式表示」于「参式」)
或有(「内建节点」于「内建类型元类型」)则『(Type)』
或有(「内建节点」于「常量」)则
『内建:』附(「内建常量表示」于「常量」)
或有(「展开后内建节点」于「常量」)则
『(展开后)内建:』附(「内建常量表示」于「常量」)
或有「空缺」则『「」』
或有「箭头类型节点」则『→』
或有「隐式派类型节点」于「参数个数」则
『Πᵢ』附(「整数表示」于「参数个数」)
或有「函数调用」则『ap』
或有「参数节点」于「参式」则
『arg』附(「参式表示」于「参式」)
或有「函数调用等待函数值」于「参式」则『ap(-,M)』
或有「函数调用等待参数值」于「参式」则『ap(V,-)』
或有「字符串节点」于「串」则
『『』附(「豫言_字符串表示转义」于「串」)附『「:』:」』
或有(「整数节点」于「数」)则
『(int:』附(「整数表示」于「数」)附『)』
或有(「小数节点」于「数」于(「整部」与「小部」))则
『(』附(「小数操作」之「小数表示」于「数」)附『,』附(「整部」)附『.』附(「小部」)附『)』
或有「模式匹配分支」则『|→』
或有「常量模式匹配分支」则『|→(const)』
或有「变量模式匹配分支」则『|→(var)』
或有「唯一构造器模式匹配分支」于「序数」则
『|→(⌂』附(「整数表示」于「序数」)附『)』
或有「模式匹配」则『case』
或有「模式匹配新变量」于「变量名」则『$』附「变量名」
或有「结构投影」于「串」则
『↘』附「串」附『↙』
或有「结构投影等待结构值」于「串」于「数」则
『↘』附「串」附『(』附(「整数表示」于「数」)附『)』附『↙(-)』
或有「结构投影带序数」于「串」于「数」则
『↘』附「串」附『(』附(「整数表示」于「数」)附『)』附『↙』
或有「爻分支节点」则『如果』
或有「通用序列节点」则『通用序列』
或有「逗号序列节点」则『逗号序列』
或有「外部调用头节点」则『外部调用头』
或有「外部调用节点」则『外部调用』
或有「解析后外部调用节点无类型」于「串」则
『(外部调用)』附「串」
或有「解析后外部调用节点带类型」于「串」则
『(外部调用带类型)』附「串」
或有「类型定义节点」则『类型定义』
或有「自由变量标注节点」于「投影名」则『↪』附「投影名」
或有「内联虑」则『虑』
或有「内联虑带类型」则『虑(带类型)』
或有「顺序执行节点」则『顺序执行』
或有「类型判断节点」则『类型判断』
或有「元组构造节点」则『元组』
或有「元组类型节点」则『元组类型』
或有「栈元组构造节点」则
『⟨,...,⟩ₛ』 「:元组仅在检查后才会出现:」
或有「擦除后类型节点」则『擦除后类型节点』
或有「元组解构节点」于「序数」则
『↓(』附(「整数表示」于「序数」)附『)』
或有「运行时元组构造转换节点」于「长度序数」则
『⟨,...,⟩ₕ(』附(「整数表示」于「长度序数」)附『)』
或有「指针偏移节点」于「序数」则
『*→(』附(「整数表示」于「序数」)附『)』
或有「元组更新节点」于「序数」则
『↑(』附(「整数表示」于「序数」)附『)』
或有(「元组解构节点等待元组值」于「序数」)则
『↓(』附(「整数表示」于「序数」)附『)(-)』
或有「文件引用节点」于「串」则
『文件引用『』附「串」附『「:』:」』
或有「文件定义引用节点」于「文件名」于「定义名」于「序数」则
『文件定义引用『』附「文件名」附『#』附「定义名」附
『(』
附(「整数表示」于「序数」)附『)』附『「:』:」』
或有「源码范围标注节点」于「忽略范围」则『源码范围标注』
或有「源码绑定范围标注节点」于「忽略范围」则『源码绑定范围标注』
或有「带注释节点」于「前注释」于「后注释」则
『带注释(前』附(「整数表示」于(「长度」于「前注释」))附『,后』附
(「整数表示」于(「长度」于「后注释」))附『)』
或有「顶层注释节点」于「前注释」于「后注释」则
『顶层注释(前』附(「整数表示」于(「长度」于「前注释」))附
『,后』附
(「整数表示」于(「长度」于「后注释」))附『)』
或有「文件定义内存引用节点」于「文件名」于「定义名」于「序数」则
『文件定义内存引用『』附「文件名」附『#』附
「定义名」附『(』附(「整数表示」于「序数」)附『)』附『「:』:」』
或有「非自由变量节点」于「串」则
『非自由变量『』附「串」附『「:』:」』
或有「递归节点」则『递归』
或有「表达式树组节点」于「名称们」则
『表达式树组节点(』附(「间合」于『,』于「名称们」)附『)』
或有「唯一构造器节点」于「数」于「文件路径」于「构造器名」则
『⌂(』附(「构造器文件名表示」于「文件路径」)附
『#』附
(「整数表示」于「数」)附『,』附「构造器名」附『)』
或有「展开后唯一构造器节点」于「数」则
『⌂(』附(「整数表示」于「数」)附『)(展开)』
或有「唯一构造器序数元组节点」于「序数」于「元组长」则
『⌂ᶜ(』附(「整数表示」于「序数」)附『,』附(「整数表示」于「元组长」)附『)』
或有「唯一构造器序数元组投影序数节点」则『⌂ᶜ.←』
或有「唯一构造器序数元组投影元组节点」则『⌂ᶜ.→』
或有「待定节点」则『(??)』
或有「近似类型原子节点」则『(*)』
或有「近似类型占位节点」则『(X占位X)』
或有「构造声明近似类型节点」则『近似构造声明』
或有「类型声明近似类型节点」则『近似类型声明』
或有「定义声明近似类型节点」于「透明性」则(「定义透明性表示」于「透明性」)附『近似定义声明』
或有「文件操作近似类型节点」于「作」则
『近似文件操作(』附(「结构名称操作表示」于「作」)附『)』
或有「文件命名近似类型节点」于「别名」于「串」则
『近似文件命名(』附「别名」附『=』附「串」附『)』
或有「文件导入近似类型节点」于「串」则
『近似文件导入(』附「串」附『)』
或有「文件打开近似类型节点」于「串」则
『近似文件打开(』附「串」附『)』
或有「文件导出近似类型节点」于「串」则
『近似文件导出(』附「串」附『)』
或有「续延调用节点」则
『续延调用』 「:CallCC, 表达式是一个抽象:」
或有「续延调用返回节点」则『续延调用返回』
或有「拉姆达抽象两参数」则『λ2』
或有「拉姆达抽象续延」于「串」则
『λcont(』附「串」附『)』
或有「拉姆达抽象续延无绑定」于「串」则
『λcont₀(』附「串」附『)』
或有「函数调用续延」于「串」则
『jmp(』附「串」附『)』
或有「函数尾调用」则『tailcall』
或有「函数调用续延无绑定」于「串」则
『jmp₀(』附「串」附『)』
或有「文件定义存储节点」于「文件名」于「定义名」于「序数」则
『存文件定义(』附「文件名」附『#』附「定义名」附
『(』附
(「整数表示」于「序数」)附『))』
或有「全局指针读取节点」于「全局名」则
『读取全局指针(』附「全局名」附『)』
或有「全局指针更新节点」于「全局名」则
『更新全局指针(』附「全局名」附『)』
或有「局部指针读取节点」于「全局名」则
『读取局部指针(』附「全局名」附『)』
或有「局部指针更新节点」于「全局名」则
『更新局部指针(』附「全局名」附『)』
或有「空值节点」则『(空)』
或有「函数引用调用节点」则『ap₀』
或有「具体字符节点」于「串」则
『『』附(「豫言_字符串表示转义」于「串」)附『「:』:」ᶜ』
或有「词法注释节点」于「文字」于「忽略方向」则
『词法注释('』附「文字」附『)'』
或有「函数引用节点」于「串」则
『函数引用( 』附「串」附『 )』
或有「函数全局声明节点」于「串」则
『函数全局声明( 』附「串」附『 )』
或有「其他」则
((「调试打印」授以「节点名称」)于『发生错误』于「其他」;
「发生事故」于『未有246』)
也。
「表达式表示」乃(化「表达式」而「字符串」)也。
「表达式表示」者会「式」而
虑「递归」者「表达式表示」而
虑「无」者
(「编译调试打印行」
于『log_print_tree』
于(会「无」而((「调试打印」授以「表达式」)于『print_log』于
「式」;
『表达式表示』)))而
鉴「式」而
有「自由变量」于「串」则(『「 』附「串」附『 」』)
或有「式节点」于「名」于「式列」则
(「节点名称表示」于「名」)附『[』附(「间合」于『;』于((「态射」)于「式列」于(「递归」)))附『]』
或有「绑定」于「名」于「体」则
(鉴「名」而
有(「可有」于「串」)则「串」
或有「可无」则『_』
或有「其他」则「发生事故」于『np』)附『.』附(「递归」于「体」)
或有「绑定变量」于「数」则(「数据结构」之「整数操作」之「表示」于「数」)
或有「其他」则
「发生事故」于『未有238_2』
也。
「表达式列表示」乃(化(「列」于「表达式」)而「字符串」)也。
「表达式列表示」者会「式列」而
『[』附(「间合」于『;』于((「态射」)于「式列」于(「表达式表示」)))附『]』
也。
「树组表示」乃化(「表达式树组」)而「字符串」也。
「树组表示」者会「树组」而
『[』附(「间合」
于『;』
于((「打表态射」授以(「字符串」合「爻」合「表达式」)授以「字符串」)
于「树组」
于(会「元素」而(「元素」中「零」)附『 := 』附(「表达式表示」于(「元素」中「二」)))
))附
『]』
也。
「:
声明表示乃(化声明而字符串)也。
声明表示者
(会声明而鉴声明而
有文件操作于作于名则(结构名称操作表示于作)附(以『之』合并名)
或有构造声明于名于类则(名)附『立』附(表达式表示于类)附『也』
或有类型声明于「透明性」于名于类则(名)附『乃』附(表达式表示于类)附『也』
或有定义声明于「透明性」于名于式则(表达式表示于名)附
(鉴透明性而有定义透明则『者』或有定义不透明则『即』)附(表达式表示于式)附『也』
或有「直接表达式」于式则(表达式表示于式)
或有「其他」则发生事故于『未有234』)
也。
有也写引用于声明表示引用于声明表示。
有也写引用于表达式表示引用于表达式表示。
表示列乃化声明列而字符串也。
表示列者会列而以『。』合并(态射于(声明表示)于「列」)也。 :」