豫言源码浏览器 / Source Browser

浏览项目文件与源码

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

寻观「编译器核心」之「编译数据」之「编译配置」之「编译期输出」之书。

寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「命名环境术」之书。
寻观「编译器核心」之「顺序标识符」之「顺序标识符」之书。

寻观「编译器核心」之「编译数据」之「操作符」之「操作符数据结构」之书。

「:擦除所有结构类型:」

「尝试函数续延化」乃
  化「字符串」 「:函数名:」而
  化(化「表达式」而「表达式」) 「:变换后的函数调用:」而
  化「表达式」 「:待变换式:」而
  (「或可有」于「表达式」) 「:如果变换失败,则可无,如果成功变换或者没有变换,则返回可有变换后的式子:」
也。
「:换言之,返回可以即代表函数可以被转换成续延:」
「尝试函数续延化」者会「函数名」而会「变换操作」而会「式」而
  鉴「式」而
    有(「式节点」
      于「函数调用」
      于((「列」【
        (「自由变量」于「调用函数名」),
        (「式节点」于(「参数节点」于「函形」)于((「列」【「参数式」】)))
      】)
      ))则(
      若((「自由变量在式出现」于「函数名」于「参数式」))
      则
        (「可无」授以「表达式」)
      否则
        ((
            若(「串相等」于「调用函数名」于「函数名」)
            则
              (「可有」于(「变换操作」于「参数式」))
            否则
              (「可有」于(「式」))
          )
        )
    )
    或有(「式节点」于「爻分支节点」于(「列」【「分析式」,「阳式」,「阴式」】))则(
      若
      ((「自由变量在式出现」于「函数名」于「分析式」))
      则
        (「可无」授以「表达式」)
      否则
        (
          鉴(「尝试函数续延化」于「函数名」于「变换操作」于「阳式」)而
            有「可无」则(「可无」授以「表达式」)
            或有(「可有」于「后阳式」)则(
              鉴(「尝试函数续延化」于「函数名」于「变换操作」于「阴式」)而
                有「可无」则(「可无」授以「表达式」)
                或有(「可有」于「后阴式」)则
                  (「可有」于(「式节点」于「爻分支节点」于(「列」【「分析式」,「后阳式」,「后阴式」】)))
            )
        )
    )
    或有(「式节点」于「内联虑」于((「列」【「当前式」,「后式」】)))则(
      若((「自由变量在式出现」于「函数名」于「当前式」))
      则
        (「可无」授以「表达式」)
      否则
        (「解构抽象不重复名并继续」
          于((「列」【「函数名」】))
          于「后式」
          于(会「绑定名」而会「后后式」而
            鉴(「尝试函数续延化」于「函数名」于「变换操作」于「后后式」)而
              有「可无」则(「可无」授以「表达式」)
              或有(「可有」于「后后后式」)则(「可有」
                于(「式节点」于「内联虑」于((「列」【「当前式」,(「进行抽象」于「绑定名」于「后后后式」)】))))))
    )
    或有「其他」则
      (若((「自由变量在式出现」于「函数名」于「式」))则(「可无」授以「表达式」)否则(「可有」于「式」))
也。

「函数续延化变换」乃
  化「爻」 「:可以不可以变换:」而
  化「表达式」而
  「表达式」 「:标注后的类和物:」
也。
「函数续延化变换」者会「可以变换」而会「式」而
  虑「递归」者「函数续延化变换」而
  虑「结果」者
    (
      鉴「式」而
        有(「式节点」
          于「内联虑」
          于((「列」【(「式节点」于(「拉姆达抽象」于「拉形」)于((「列」【「拉参」】))),「后式」】)))则(
          若(「可以变换」)
          则
            (
              虑「续延标签」者「下个字符序数」于『续延化标签』而
              「解构抽象并继续」
                于「后式」
                于(会「函数名」而会「后后式」而
                虑「可能后后后式」者
                  (「尝试函数续延化」
                    于「函数名」
                    于(会「参数式」而(「式节点」于(「函数调用续延」于「续延标签」)于((「列」【「参数式」】))))
                    于
                      「后后式」)而
                鉴「可能后后后式」而
                  有「可无」则(「式节点」
                    于「内联虑」
                    于((「列」【
                      (「式节点」于(「拉姆达抽象」于「拉形」)于((「列」【(「递归」于「阳」于「拉参」)】))),
                      (「递归」于「可以变换」于「后式」)
                    】)))
                  或有(「可有」于「后后后式」)
                  则
                    (
                      虑「无」者
                        (若「自由变量在式出现」于「函数名」于「后后后式」则「发生事故」于『不应该出现90』
                          否则
                            「元」)
                      而
                      (「式节点」
                        于「顺序执行节点」
                        于((「列」【
                          (「式节点」
                            于(「拉姆达抽象续延」于「续延标签」)
                            于((「列」【(「递归」于「阳」于「拉参」)】))),
                            ((「递归」于「可以变换」于(「后后后式」)))
                        】)))
                    ))
            )
          否则
            ((「式节点」
              于「内联虑」
              于((「列」【
                (「式节点」于(「拉姆达抽象」于「拉形」)于((「列」【(「递归」于「阳」于「拉参」)】))),
                (「递归」于「可以变换」于「后式」)
              】)))
            )
        )
        或有(「式节点」于「爻分支节点」于(「列」【「当前式」,「阳式」,「阴式」】))
        则((「式节点」
          于「爻分支节点」
          于(「列」【
            「递归」于「阴」于「当前式」,
            「递归」于「可以变换」于「阳式」,
            「递归」于「可以变换」于「阴式」
          】))
        )
        或有(「式节点」于「内联虑」于((「列」【「当前式」,「后式」】)))则((「式节点」
          于「内联虑」
          于((「列」【(「递归」于「阴」于「当前式」),(「递归」于「可以变换」于「后式」)】)))
        )
        或有(「式节点」于(「拉姆达抽象」于「拉形」)于((「列」【「抽象体」】)))则
          ((「式节点」于(「拉姆达抽象」于「拉形」)于((「列」【(「递归」于「阳」于「抽象体」)】))))
        或有(「绑定」于「名」于「下式」)则
          (「抽象表达式操作」于「式」于(会「内式」而「递归」于「可以变换」于「内式」))
        或有「其他」则
          「表达式统一操作」于(会「内式」而「递归」于「阴」于「内式」)于「式」
    )而
    虑「无」者
      (「编译调试打印行」
        于『contify_result』
        于(会「无」而
          『函数续延化变换,输入:』附(「表达式表示」于「式」)附『。,,,,输出:』附(「表达式表示」于「结果」)))
    而
    「结果」
也。

「函数续延化变换顶层」乃化「表达式」而「表达式」也。
「函数续延化变换顶层」者会「式」而
  「函数续延化变换」于「阴」于「式」
也。