豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 71 行 · 3799 字节 · UTF-8
§
寻观「标准库」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「总集」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「模块操作」之书。

「隐式参数擦除」乃化「表达式」而「表达式」也。
「隐式参数擦除」者会「式」而
  鉴「式」而
    有(「式节点」于「函数调用」于(「缀」于「函数」于「参数节点们」))
    则(
      递归虑「处理参数节点」其化「表达式」而化
      (「列」于「表达式」)而「表达式」者
        会「当前函数」而会「剩余参数节点」而
          鉴「剩余参数节点」而
            有「罄」则「当前函数」
            或有(「缀」于「当前参数节点」于「后参数节点们」)则(
              鉴「当前参数节点」而
                有(「式节点」于(「参数节点」于「隐式」)于「忽略参数们」)则
                  「处理参数节点」
                    于「当前函数」
                    于「后参数节点们」
                或有(「式节点」于(「参数节点」于「忽略形」)于「参数们」)
                则(
                  虑「后当前函数」者
                    (「从左折叠」授以「表达式」授以「表达式」)
                    于(会「参数」而会
                    「已有函数」而
                    「分组函数调用式」
                      于(「多参数形」于「一」)
                      于「已有函数」
                      于((「列」【(「隐式参数擦除」于「参数」)】)))
                      于「当前函数」于
                      「参数们」
                  而
                  「处理参数节点」于「后当前函数」于
                    「后参数节点们」
                )
                或有「其他」则
                  「发生事故」于『函数调用脊不是参数节点』
            )
      而
      「处理参数节点」
        于(「隐式参数擦除」于「函数」)于
          「参数节点们」
    )
    或有(「式节点」于(「拉姆达抽象」于「隐式」)于((「列」【「绑定体」】)))则(「解构抽象并继续」
      于「绑定体」
      于(会「绑定名」而会「体」而
      虑「后体」者「隐式参数擦除」于「体」而
      若(「自由变量在式出现」于「绑定名」于「后体」)
      则
        (「发生事故」于『隐式参数擦除后绑定变量仍然存在:』附「绑定名」附『;表达式:』附(「表达式表示」于「后体」))
      否则
        「后体」
      ))
    或有(「式节点」于(「拉姆达抽象」于(「多参数形」于「个数」))于((「列」【「绑定体」】)))则
      「式节点」
        于(「拉姆达抽象」于(「多参数形」于「个数」))
        于((「列」【(「隐式参数擦除」于「绑定体」)】))
    或有「其他」则
      「表达式统一操作」于「隐式参数擦除」于「其他」
也。

「隐式参数擦除顶层」乃化「文件定义列」而「文件定义列」也。
「隐式参数擦除顶层」者会「定义列」而
  (「态射」)
  于
    「定义列」于(会「定义」而
      (「文件定义列项名」于「定义」)与
      (「文件定义列项公开性」于「定义」)与
      (「隐式参数擦除」于(「文件定义列项表达式」于「定义」)))
也。