豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 269 行 · 15760 字节 · UTF-8
§
寻观「标准库」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「内建常量数据」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「内建常量表示方法」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「结构名称操作数据」之书。
寻观「编译器核心」之「编译数据」之「编译配置」之「编译期输出」之书。

寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「抽象语法树数据」之书。

「豫言_字符串表示转义」乃化「字符串」而「字符串」也。
「豫言_字符串表示转义」者会「串」而
  「串组合并」于((「打表态射」授以「字符串」授以「字符串」)
  于(「获取字符」于「串」)
  于(会「字符」而鉴「字符」而
    有『「:换行:」』则『「:「::」换行:」』
    或有「其他字符」则「其他字符」)
  )
也。

「参式表示」乃化「参数形式」而「字符串」也。
「参式表示」者会「参式」而
  (
    鉴「参式」而
      有「显式」则『』
      或有「隐式」则『(隐式)』
      或有「合并式」则『(合并)』
      或有「多参数形」于「个数」则
        『(多参数,』附(「整数表示」于「个数」)附『)』
      或有「尾多参数形」于「个数」则
        『(尾多参数,』附(「整数表示」于「个数」)附『)』
  )
也。

「定义透明性表示」乃化「定义透明性」而「字符串」也。
「定义透明性表示」者会「性」而
  (鉴「性」而
  有「定义透明」则『透明』
  或有「定义不透明」则『不透明』)
也。

「构造器文件名表示」乃化「字符串」而「字符串」也。
「构造器文件名表示」者会「路径」而
  鉴(「串从右搜索单个」于『/』于「路径」)而
    有「可无」则「路径」
    或有(「可有」于「下标」)则
      「获取子字符串」于(「加」于「下标」于「一」)于(「串长度」于「路径」)于「路径」
也。

「节点名称表示」乃化(「节点名称」)而「字符串」也。
「节点名称表示」者会「名」而
  虑「无」者
    (「编译调试打印行」
      于『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』)
    也。

有也写引用于声明表示引用于声明表示。
有也写引用于表达式表示引用于表达式表示。

表示列乃化声明列而字符串也。
表示列者会列而以『。』合并(态射于(声明表示)于「列」)也。 :」