豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 435 行 · 22042 字节 · UTF-8
§
寻观「标准库」之书。

寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「总集」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「抽象语法树数据」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「模块操作」之书。
寻观「编译器核心」之「编译数据」之「操作符」之「操作符数据结构」之书。

寻「编译器核心」之「编译步骤」之「语法分析」之「函数合集」之书。
寻「编译器核心」之「编译步骤」之「语法分析」之「导入解析」之书。

寻观「编译器核心」之「顺序标识符」之「顺序标识符」之书。
寻观「编译器核心」之「编译数据」之「编译配置」之「编译期输出」之书。
寻观「编译器核心」之「编译步骤」之「语法分析」之「抽象语法分析工具」之书。
寻观「编译器核心」之「编译步骤」之「语法分析」之「表达式解析」之书。
寻观「编译器核心」之「编译步骤」之「语法分析」之「整数小数解析」之书。
寻观「编译器核心」之「编译步骤」之「语法分析」之「注释操作」之书。

「近似类型占位式」乃「表达式」也。
「近似类型占位式」者「式节点」于(「近似类型占位节点」)于「罄」也。

「内部匿名顶层表达式名」乃化「有」而「字符串」也。
「内部匿名顶层表达式名」者会「无」而
  『《《内部匿名顶层表达式_』附(「整数表示」于(「行」于「下个序数」))附『》》』
也。

「需要自动递归的类型」乃化「表达式」而「爻」也。
「需要自动递归的类型」者会「类」而
  鉴「类」而
    有(「式节点」于「箭头类型节点」于「参数」)则「阳」
    或有(「式节点」于(「隐式派类型节点」于「忽略参数个数」)于「参数」)则「阳」
    或有「其他」则「阴」
也。

「需要自动递归的定义」乃化「表达式」而「爻」也。
「需要自动递归的定义」者会「定义」而
  鉴「定义」而
    有「绑定」于「名」于「下式」则
      「需要自动递归的定义」于「下式」
    或有(「式节点」于(「拉姆达抽象」于「形式」)于「参数」)则「阳」
    或有(「式节点」于(「拉姆达抽象带类型」于「形式」)于「参数」)则「阳」
    或有「其他」则「阴」
也。

「去除顶层绑定」乃化「表达式」而「表达式」也。
「去除顶层绑定」者会「定义」而
  鉴「定义」而
    有「绑定」于「名」于「下式」则「下式」
    或有「其他」则「定义」
也。

「需要自动递归」乃化「表达式」而化「表达式」而「爻」也。
「需要自动递归」者会「类」而会「定义」而
  「或者」于(「需要自动递归的类型」于「类」)于(「需要自动递归的定义」于「定义」)
也。

「按需自动递归定义」乃化「表达式」而化「表达式」而「表达式」也。
「按需自动递归定义」者会「类」而会「定义」而
  鉴「定义」而
    有(「式节点」于「递归节点」于「参数」)则「定义」
    或有「其他」则
      若(「需要自动递归」于「类」于「定义」)
      则
        (「式节点」于「递归节点」于((「列」【「类」,「定义」】)))
      否则
        (「去除顶层绑定」于「定义」)
也。

「结构名末位」乃化(「列」于「字符串」)而「字符串」也。
「结构名末位」者会「结构名」而
  「第N个」于(「减」于(「长度」于「结构名」)于「一」)于「结构名」
也。

「添加文件操作近似定义」乃
  化「爻」而
  化「爻」而
  化「爻」而
  化(「列」于「字符串」)而
  化「字符串」而
  化「文件定义列」而
  「文件定义列」
也。
「添加文件操作近似定义」者会「导入」而会「打开」而会「导出」而会「结构名」而会「文件名」而会「尾定义列」而
  虑「导出后定义列」者
    (
      若「导出」
      则
        「文件定义列前加」
          于(「内部匿名顶层表达式名」于「元」)
          于(「式节点」于(「文件导出近似类型节点」于「文件名」)于「罄」)
          于「尾定义列」
      否则
        「尾定义列」
    )而
    虑「打开后定义列」者
      (
        若「打开」
        则
          「文件定义列前加」
            于(「内部匿名顶层表达式名」于「元」)
            于(「式节点」于(「文件打开近似类型节点」于「文件名」)于「罄」)
            于「导出后定义列」
        否则
          「导出后定义列」
      )
    而
    若「导入」
    则
      「文件定义列前加」
        于(「内部匿名顶层表达式名」于「元」)
        于(「式节点」于(「文件命名近似类型节点」于(「结构名末位」于「结构名」)于「文件名」)于「罄」)
        于「打开后定义列」
    否则
      「打开后定义列」
也。

「表达式分析后名称表达式转字符串」乃化「表达式」而「字符串」也。
「表达式分析后名称表达式转字符串」者会「式」而
  鉴「式」而
    有「自由变量」于「名」则「名」
    或有「其他」则
      「发生事故」于『顶层声明名称必须是自由变量,得到:』附(「表达式表示」于「其他」)
也。

「表达式分析后转换顶层表达式」乃化「字符串」而化「表达式」而「文件定义列」也。
「表达式分析后转换顶层表达式」者会「当前文件名」而会「式」而
  鉴「式」而
    有(「式节点」于(「文件操作近似类型节点」于「作」)于((「列」【「结构名式」】)))
    则(
      虑「结构名」者
        「表达式结构名称转字符串列」于
          「结构名式」而
          虑「文件名」者
            「导入解析」之「解析导入文件名」于
            「当前文件名」于「结构名」
          而
          「添加文件操作近似定义」
            于(「需要导入」于「作」)
            于(「需要打开」于「作」)
            于(「需要导出」于「作」)于「结构名」于「文件名」于「罄」
    )
    或有(「式节点」于「构造声明近似类型节点」于((「列」【「构造器实现」】)))则(
      鉴「构造器实现」而
        有(「式节点」于(「唯一构造器节点」于「构造器序数」于「文件路径」于「构造器名」)于((「列」【「类」】)))
        则
          「文件定义列前加」于「构造器名」于「式」于「罄」
        或有「其他」则
          「发生事故」
            于『顶层构造声明实现不符合规范:』附(「表达式表示」于「其他」)
    )
    或有(「式节点」于「类型声明近似类型节点」于((「列」【「名式」,「类」】)))
    则(
      虑「名」者
        「表达式分析后名称表达式转字符串」于
          「名式」
      而
      「文件定义列前加」于
      「名」
        于(「式节点」于「类型声明近似类型节点」于((「列」【「类」】)))于「罄」
    )
    或有(「式节点」于(「定义声明近似类型节点」于「透明性」)于(「列」【「名式」,「类」,「定义」】))
    则(
      虑「名」者
        「表达式分析后名称表达式转字符串」于
          「名式」
      而
      「文件定义列前加」
        于「名」
        于(「式节点」于(「定义声明近似类型节点」于「透明性」)于((「列」【「类」,「定义」】)))于
          「罄」
    )
    或有「其他」则(
      虑「内部名」者「内部匿名顶层表达式名」于「元」而
      「文件定义列前加」
        于「内部名」
        于(「式节点」于(「定义声明近似类型节点」于「定义不透明」)于((「列」【「近似类型占位式」,「式」】)))
        于「罄」
    )
也。

「归并类型声明文件定义列」乃化「文件定义列」而「文件定义列」也。
「归并类型声明文件定义列」者会「定义列」而
  鉴「定义列」而
    有「罄」则「罄」
    或有(「缀」
      于(「名」与「公开性」与(「式节点」于「类型声明近似类型节点」于((「列」【「原类」】))))于
        「后定义列」)则(
      鉴「后定义列」而
        有(「缀」
          于(「后名」与「后公开性」
            与(「式节点」于(「定义声明近似类型节点」于「后透性」)于((「列」【「近似类」,「后原义」】))))
            于「后尾」)则
          若(「串相等」于「名」于「后名」)
          则
            (
              虑「抽象后定义」者(「进行抽象」于「名」于「后原义」)而
              「文件定义列前加」
                于「名」
                于(「式节点」
                  于(「定义声明近似类型节点」于「后透性」)
                  于((「列」【「原类」,(「按需自动递归定义」于「原类」于「抽象后定义」)】)))
                  于(「归并类型声明文件定义列」于「后尾」)
            )
          否则
            「发生事故」
              于『类型声明之后必须紧接其定义:期待定义』附「名」附『,得到定义』附「后名」
        或有「罄」则「发生事故」
          于『类型声明之后必须紧接其定义:期待定义』附「名」附『,但已经到达文件结尾』
        或有(「缀」于(「后名」与「后公开性」与「后式」)于「后尾」)则
          「发生事故」
            于『类型声明之后必须紧接其定义:期待定义』附「名」附『,得到』附(「表达式表示」于「后式」)
    )
    或有(「缀」于「当前项」于「后定义列」)则
      「缀」于「当前项」于(「归并类型声明文件定义列」于「后定义列」)
也。

「尝试解析标识符为内建常量」乃化「字符串」而「或可有」于「内建常量」也。
「尝试解析标识符为内建常量」者会「串」而
  递归虑「查找」其化(「列」于「内建常量」)而「或可有」于「内建常量」者
    会「常量们」而
      鉴「常量们」而
        有「罄」则「可无」
        或有(「缀」于「量」于「尾」)则
          若「串相等」于「串」于(「内建常量表示」于「量」)
          则
            「可有」于「量」
          否则
            「查找」于「尾」
  而
  「查找」于「所有内建常量」
也。

「解析标识符字面量」乃化「表达式」而「表达式」也。
「解析标识符字面量」者会「式」而
  鉴「式」而
    有「自由变量」于「串」则
      若「串相等」于「串」于『阳』则(「式节点」于(「内建节点」于「内建爻阳」)于「罄」)否则
        若「串相等」于「串」于『阴』则(「式节点」于(「内建节点」于「内建爻阴」)于「罄」)否则
          若「串相等」于「串」于『元』则(「式节点」于(「内建节点」于「内建有元」)于「罄」)否则(
            鉴(「尝试解析标识符为内建常量」于「串」)而
              有(「可有」于「量」)则(「式节点」于(「内建节点」于「量」)于「罄」)
              或有「可无」则(
                鉴(「尝试解析字符串为数字」于「串」)而
                  有「可无」则「自由变量」
                    于「串」
                  或有(「可有」于(「整数解析」于「数」))则(「式节点」于(「整数节点」于「数」)于「罄」)
                  或有(「可有」于(「小数解析」于「数」于「整小部」))则
                    (「式节点」于(「小数节点」于「数」于「整小部」)于「罄」)
              )
          )
    或有(「式节点」于「节点名」于「子式们」)则
      「式节点」于「节点名」于((「态射」)于「子式们」于「解析标识符字面量」)
    或有(「绑定」于「名」于「体」)则
      「绑定」于「名」于(「解析标识符字面量」于「体」)
    或有(「绑定变量」于「序数」)则「式」
也。

「解析文件定义列标识符字面量」乃化「文件定义列」而「文件定义列」也。
「解析文件定义列标识符字面量」者会「定义列」而
  (「态射」)
  于
    「定义列」于(会「定义」而
      (「定义」中「零」)与(「定义」中「一」)与(「解析标识符字面量」于(「定义」中「二」)))
也。

「解析语义标记草稿标识符字面量」乃化「语义标记草稿」而「语义标记草稿」也。
「解析语义标记草稿标识符字面量」者会「草稿」而
  鉴「草稿」而
    有(「构造语义标记草稿」于「引用标识符标记」于「文字」)则(
      鉴(「尝试解析字符串为数字」于「文字」)而
        有(「可有」于「忽略数值」)则
          「构造语义标记草稿」于「数值标记」于「文字」
        或有「可无」则「草稿」
    )
    或有「其他」则「草稿」
也。

「抽象语法解析带注释声明列及语义标记」乃
  化「字符串」而
  化(「列」于(「列」于「表达式」))而
  (「带注释编译单元」合(「列」于「语义标记草稿」))
也。
「抽象语法解析带注释声明列及语义标记」者会「当前文件名」而会「语句列」而
  鉴「语句列」而
    有「罄」则(「构造带注释编译单元」于「罄」于「罄」)与「罄」
    或有(「缀」于「当前语句」于「语句列尾」)则
      若(「等」于(「长度」于「当前语句」)于「零」)
      则
        「抽象语法解析带注释声明列及语义标记」于「当前文件名」于「语句列尾」
      否则
        (
          虑「开头结果」者「分离语句开头注释」于「当前语句」
          而
          虑「末尾结果」者「分离语句末尾注释」于(「开头结果」中「一」)
          而
          虑「净语句」者「末尾结果」中「零」
          而
          若(「等」于(「长度」于「净语句」)于「零」)
          则
            (
              虑「尾结果」者
                「抽象语法解析带注释声明列及语义标记」
                  于「当前文件名」于「语句列尾」
              而
              (「带注释编译单元添加待定顶层注释」
                于(「尾结果」中「零」)
                于((「附加」授以「字符串」)于(「开头结果」中「零」)于(「末尾结果」中「一」)))
                  与(「尾结果」中「一」)
            )
          否则
            (
              虑「内部结果」者「附着语句内部注释」于「净语句」
              而
              虑「原义及标记」者
                「解表达式默认操作符及语义标记」
                  于「当前文件名」
                  于(「内部结果」中「零」)
              而
              虑「带内部注释原义」者
                「添加注释列到表达式」
                  于(「原义及标记」中「零」)
                  于(「内部结果」中「一」)
                  于(「内部结果」中「二」)
              而
              虑「原义」者
                「添加顶层注释到表达式」
                  于「带内部注释原义」
                  于(「开头结果」中「零」)
                  于(「末尾结果」中「一」)
              而
              虑「尾结果」者
                「抽象语法解析带注释声明列及语义标记」
                  于「当前文件名」于「语句列尾」
              而
              (「构造带注释编译单元」
                于(「缀」于「原义」于(「带注释编译单元声明列」于(「尾结果」中「零」)))
                于(「带注释编译单元文件尾注释」于(「尾结果」中「零」)))
                  与
                  (「附加」授以「语义标记草稿」)
                  于(「原义及标记」中「一」)
                  于(「尾结果」中「一」)
            )
        )
也。

「带注释声明列转文件定义列」乃
  化「字符串」而
  化「带注释声明列」而
  「文件定义列」
也。
「带注释声明列转文件定义列」者会「当前文件名」而会「声明列」而
  (「串联」授以(「字符串」合「爻」合「表达式」))
  于((「态射」授以「表达式」授以「文件定义列」)
  于「声明列」
  于(会「原义」而「表达式分析后转换顶层表达式」于「当前文件名」于(「去除表达式注释」于「原义」))
  )
也。

「抽象语法解析声明列及语义标记」乃
  化「字符串」而
  化(「列」于(「列」于「表达式」))而
  (「文件定义列」合(「列」于「语义标记草稿」))
也。
「抽象语法解析声明列及语义标记」者会「当前文件名」而会「语句列」而
  虑「结果」者
    「抽象语法解析带注释声明列及语义标记」于「当前文件名」于「语句列」
  而
  (「带注释声明列转文件定义列」于「当前文件名」于(「带注释编译单元声明列」于(「结果」中「零」)))
    与(「结果」中「一」)
也。

「抽象语法解析声明列」乃
  化「字符串」而
  化(「列」于(「列」于「表达式」))而
  「文件定义列」
也。
「抽象语法解析声明列」者会「当前文件名」而会「语句列」而
  (「抽象语法解析声明列及语义标记」于「当前文件名」于「语句列」)中「零」
也。

「抽象语法解析编译单元」乃
  化「字符串」而
  化(「列」于「表达式」)而
  「文件定义列」
也。
「抽象语法解析编译单元」者会「当前文件名」而会「甲」而
  虑「语句列」者「切分顶层语句」于「甲」而
  虑「结构」者「抽象语法解析声明列」于「当前文件名」于「语句列」而
  「解析文件定义列标识符字面量」于(「归并类型声明文件定义列」于「结构」)
也。

「抽象语法解析编译单元带注释」乃
  化「字符串」而
  化(「列」于「表达式」)而
  「带注释编译单元」
也。
「抽象语法解析编译单元带注释」者会「当前文件名」而会「甲」而
  (「抽象语法解析带注释声明列及语义标记」于「当前文件名」于(「切分顶层语句」于「甲」))中「零」
也。

「抽象语法解析编译单元及语义标记」乃
  化「字符串」而
  化(「列」于「表达式」)而
  (「文件定义列」合(「列」于「语义标记草稿」))
也。
「抽象语法解析编译单元及语义标记」者会「当前文件名」而会「甲」而
  虑「语句列」者「切分顶层语句」于「甲」而
  虑「解析结果」者
    「抽象语法解析声明列及语义标记」于「当前文件名」于「语句列」
  而
  (「解析文件定义列标识符字面量」于(「归并类型声明文件定义列」于(「解析结果」中「零」)))
    与
    ((「态射」授以「语义标记草稿」授以「语义标记草稿」)于(「解析结果」中「一」)于「解析语义标记草稿标识符字面量」)
也。

(「写引用」授以(「函数合集」之「抽象语法解析编译单元类型」))
于「函数合集」之「抽象语法解析编译单元引用」
于(会「当前文件名」而会「列」而「抽象语法解析编译单元」于「当前文件名」于「列」)。

「抽象语法解析编译单元顶层」乃
  化「字符串」而
  化(「列」于「表达式」)而
  「文件定义列」
也。
「抽象语法解析编译单元顶层」者会「当前文件名」而会「甲」而
  「抽象语法解析编译单元」于「当前文件名」于「甲」
也。

「抽象语法解析编译单元顶层及语义标记」乃
  化「字符串」而
  化(「列」于「表达式」)而
  (「文件定义列」合(「列」于「语义标记草稿」))
也。
「抽象语法解析编译单元顶层及语义标记」者会「当前文件名」而会「甲」而
  「抽象语法解析编译单元及语义标记」于「当前文件名」于「甲」
也。