豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 730 行 · 37618 字节 · UTF-8
§
寻观「标准库」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「总集」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「模块操作」之书。
寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「检查后定义处理」之书。
寻观「编译器核心」之「编译数据」之「语言服务信息」之书。
寻观「编译器核心」之「编译步骤」之「总体过程」之「编译文件缓存工具」之书。

「名称解析查找当前绑定」乃
  化(「列」于(「字符串」合「表达式」))而
  化「字符串」而
  「或可有」于「表达式」
也。
「名称解析查找当前绑定」者会「绑定们」而会「名」而
  鉴「绑定们」而
    有「罄」则「可无」
    或有(「缀」于(「当前名」与「当前引用」)于「后绑定们」)则
      若(「串相等」于「当前名」于「名」)
      则
        「可有」于「当前引用」
      否则
        「名称解析查找当前绑定」于「后绑定们」于「名」
也。

「名称解析查找命名空间」乃
  化(「列」于(「字符串」合「字符串」))而
  化「字符串」而
  「或可有」于「字符串」
也。
「名称解析查找命名空间」者会「命名空间们」而会「名」而
  鉴「命名空间们」而
    有「罄」则「可无」
    或有(「缀」于(「当前名」与「当前文件名」)于「后命名空间们」)则
      若(「串相等」于「当前名」于「名」)
      则
        「可有」于「当前文件名」
      否则
        「名称解析查找命名空间」于「后命名空间们」于「名」
也。

「名称解析检查后定义项转引用」乃
  化「字符串」而
  化「字符串」而
  化「整数」而
  化「表达式」而
  「表达式」
也。
「名称解析检查后定义项转引用」者会「文件名」而会「定义名」而会「序数」而会「定义项」而
  鉴「定义项」而
    有(「式节点」于「类型定义节点」于((「列」【「类型定义」】)))则
      「类型定义」
    或有(「式节点」于(「文件引用节点」于「命名空间文件名」)于「罄」)则
      「式节点」
        于(「文件引用节点」于「命名空间文件名」)
        于「罄」
    或有(「式节点」
      于「类型判断节点」
      于(「缀」于(「式节点」于(「文件引用节点」于「命名空间文件名」)于「罄」)于「忽略物」))则
        「式节点」
          于(「文件引用节点」于「命名空间文件名」)
          于「罄」
    或有(「式节点」
      于「类型判断节点」
      于((「列」【
        「忽略定义类」,
        (「式节点」于(「文件定义引用节点」于「原文件名」于「原定义名」于「原序数」)于「罄」)
      】)
      ))
      则
        「:重导出的值应继续引用最初定义,而不是没有同名源码声明的总集文件。:」
      (
        鉴(「文件定义列投影」于(「读检查后定义」于「原文件名」)于「原定义名」)而
          有「可无」则
            「文件定义引用式」
              于「原文件名」
              于「原定义名」
              于「原序数」
          或有(「可有」于(「原定义项」与「原定义序数」))则
            「名称解析检查后定义项转引用」
              于「原文件名」于「原定义名」于「原定义序数」于「原定义项」
      )
    或有「其他」则
      「文件定义引用式」于「文件名」于「定义名」于「序数」
也。

「名称解析文件投影」乃化「字符串」而化「字符串」而「或可有」于「表达式」也。
「名称解析文件投影」者会「文件名」而会「名」而
  鉴(「文件定义列投影」于(「读检查后定义」于「文件名」)于「名」)而
    有(「可有」于(「定义项」与「序数」))则
      「可有」于(「名称解析检查后定义项转引用」于「文件名」于「名」于「序数」于「定义项」)
    或有「可无」则「可无」
也。

「名称解析打开文件」乃
  化(「列」于「字符串」)而
  化「字符串」而
  「或可有」于「表达式」
也。
「名称解析打开文件」者会「打开文件们」而会「名」而
  鉴「打开文件们」而
    有「罄」则「可无」
    或有(「缀」于「文件名」于「后文件们」)则(
      鉴(「名称解析文件投影」于「文件名」于「名」)而
        有(「可有」于「找到引用」)则
          「可有」于「找到引用」
        或有「可无」则
          「名称解析打开文件」于「后文件们」于「名」
    )
也。

「名称解析自由变量」乃
  化(「列」于(「字符串」合「表达式」))而
  化(「列」于(「字符串」合「字符串」))而
  化(「列」于「字符串」)而
  化「字符串」而
  「表达式」
也。
「名称解析自由变量」者会「当前绑定们」而会「命名空间们」而会「打开文件们」而会「名」而
  鉴(「名称解析查找当前绑定」于「当前绑定们」于「名」)而
    有(「可有」于「当前引用」)则「当前引用」
    或有「可无」则(
      鉴(「名称解析查找命名空间」于「命名空间们」于「名」)而
        有(「可有」于「文件名」)则(
          鉴(「名称解析文件投影」于「文件名」于「名」)而
            有(「可有」于「同名定义引用」)则「同名定义引用」
            或有「可无」则
              「式节点」于(「文件引用节点」于「文件名」)于「罄」
        )
        或有「可无」则(
          鉴(「名称解析打开文件」于「打开文件们」于「名」)而
            有(「可有」于「打开引用」)则「打开引用」
            或有「可无」则「自由变量」于「名」
        )
    )
也。

「名称解析源码绑定」即「字符串」
  合(「或可有」于「源码范围」)
也。 「:源码名称及定义范围。:」

「名称解析查找模式源码绑定」乃
  化(「列」于「名称解析源码绑定」)而
  化「字符串」而
  「或可有」于「源码范围」
也。
「名称解析查找模式源码绑定」者会「模式绑定们」而会「名」而
  鉴「模式绑定们」而
    有「罄」则「可无」
    或有(「缀」于(「当前名」与「可能范围」)于「后绑定们」)则
      若(「串相等」于「当前名」于「名」)则「可能范围」否则「名称解析查找模式源码绑定」于「后绑定们」于「名」
也。

「收集模式源码绑定」乃化「表达式」而(「列」于「名称解析源码绑定」)也。
「收集模式源码绑定」者会「式」而
  递归虑「收集」其化「表达式」而(「列」于「名称解析源码绑定」)者
    会「当前式」而
      鉴「当前式」而
        有(「式节点」于(「源码范围标注节点」于「范围」)于((「列」【(「自由变量」于「名」)】)))则
          (「列」【(「名」与(「可有」于「范围」))】)
        或有(「式节点」于「忽略节点名」于「子式们」)则
          (「从左折叠」授以「表达式」授以(「列」于「名称解析源码绑定」))
          于(会「子式」而会「已有」而「附加」于「已有」于(「收集」于「子式」))
          于「罄」于「子式们」
        或有(「绑定」于「忽略可能名」于「下式」)则「收集」于「下式」
        或有「其他」则
          「罄」
  而
  「收集」于「式」
也。

「进行名称解析表达式」乃
  化(「列」于(「字符串」合「表达式」))而
  化(「列」于「名称解析源码绑定」)而
  化(「列」于「名称解析源码绑定」)而
  化(「列」于(「字符串」合「字符串」))而
  化(「列」于「字符串」)而
  化「爻」而
  化「表达式」而
  「表达式」
也。
「进行名称解析表达式」者
  会「当前绑定们」而
  会「源码绑定们」而
  会「模式源码绑定们」而
  会「命名空间们」而
  会「打开文件们」而
  会
  「允许命名空间」而
  会「式」而
  虑「解析普通子式」者
    (化「表达式」而「表达式」也
    会「子式」而「进行名称解析表达式」
    于「当前绑定们」于「源码绑定们」于「模式源码绑定们」于「命名空间们」于
      「打开文件们」于「阴」于「子式」
    )而
    虑「标注普通名称」者
      (化「字符串」而化「表达式」而「表达式」也
      会「名称」而会「后式」而
      鉴(「查找下个名称源码范围」于「名称」)而
        有「可无」则「后式」
        或有(「可有」于(「忽略源码名称」与「范围」))则
          「标注引用语言服务信息」于「范围」于「后式」
      )而
      虑「定位源码绑定」者
        (化(「或可有」于「字符串」)而「名称解析源码绑定」也
        会「可能名」而
        鉴「可能名」而
          有「可无」则『』与「可无」
          或有(「可有」于「绑定名」)则
            鉴(「查找下个绑定源码范围」于「绑定名」)而
              有「可无」则(「去除名称末尾序数」于「绑定名」)与「可无」
              或有(「可有」于(「源码名称」与「范围」))则
                「源码名称」与(「可有」于「范围」)
        )而
        虑「标注源码绑定声明」者
          (化「名称解析源码绑定」而化「表达式」而「表达式」也
          会「源码绑定」而会「体」而
          鉴「源码绑定」而
            有(「忽略源码名」与(「可有」于「范围」))则
              「式节点」
                于(「源码绑定范围标注节点」于「范围」)
                于((「列」【「体」】))
            或有「其他」则「体」
          )而
          虑「标注模式绑定名称」者
            (化「字符串」而化「源码范围」而「表达式」也
            会「名称」而会「目标」而
            鉴(「查找下个名称源码范围」于「名称」)而
              有「可无」则
                「自由变量」
                  于「名称」
              或有(「可有」于(「忽略源码名称」与「范围」))
              则(
                虑「无」者「记录定义位置信息」于「范围」于「目标」而
                「式节点」
                  于(「源码范围标注节点」于「范围」)
                  于((「列」【(「自由变量」于「名称」)】))
              )
            )
          而
          虑「解析投影」者
            (化「字符串」而化「表达式」而「表达式」也
            会「投影名」而会「投影底」而
            虑「后投影底」者鉴「投影底」而
              有(「自由变量」于「底名」)则(
                鉴(「名称解析查找当前绑定」于「当前绑定们」于「底名」)而
                  有(「可有」于「当前底引用」)则「当前底引用」
                  或有「可无」则(
                    鉴(「名称解析查找命名空间」于「命名空间们」于「底名」)而
                      有(「可有」于「底文件名」)则
                        「式节点」
                          于(「文件引用节点」于「底文件名」)
                          于
                          「罄」
                      或有「可无」则
                        「进行名称解析表达式」
                          于「当前绑定们」
                          于「源码绑定们」
                          于
                          「模式源码绑定们」
                            于「命名空间们」于「打开文件们」于「阳」于「投影底」
                  )
              )
              或有「其他投影底」则
                「进行名称解析表达式」
                  于「当前绑定们」
                  于「源码绑定们」
                  于「模式源码绑定们」
                  于
                  「命名空间们」于「打开文件们」于「阳」于「其他投影底」
            而
            鉴「后投影底」而
              有(「式节点」于(「文件引用节点」于「文件名」)于「罄」)则(
                鉴(「名称解析文件投影」于「文件名」于「投影名」)而
                  有(「可有」于「投影引用」)则
                    「标注普通名称」于「投影名」于「投影引用」
                  或有「可无」则
                    「发生事故」
                      于『命名空间中没有名称:』附「投影名」附『,文件:』附「文件名」
              )
              或有「其他底」则
                「发生事故」
                  于『名称解析后的“之”左侧不是命名空间:』附(「表达式表示」于「其他底」)附
                    『;投影:』附「投影名」
            )而
            虑「结果」者鉴「式」而
              有(「自由变量」于「名」)则(
                鉴(「名称解析查找模式源码绑定」于「模式源码绑定们」于「名」)而
                  有(「可有」于「目标」)则
                    「标注模式绑定名称」于「名」于「目标」
                  或有「可无」则
                    「标注普通名称」
                      于「名」
                      于(「名称解析自由变量」于「当前绑定们」于「命名空间们」于「打开文件们」于「名」)
              )
              或有(「绑定变量」于「序数」)则(
                鉴(「第N个」于(「减」于「序数」于「一」)于「源码绑定们」)而
                  有(「源码名称」与「可能目标」)则
                    若(「串相等」于「源码名称」于『』)则
                      「式」
                    否则
                      (
                        鉴(「查找下个名称源码范围」于「源码名称」)而
                          有「可无」则「式」
                          或有(「可有」于(「忽略匹配名称」与「范围」))则
                            虑「无」者鉴「可能目标」而
                              有(「可有」于「目标」)则
                                「记录定义位置信息」
                                  于「范围」于「目标」
                              或有「可无」则
                                「元」
                            而
                            「式节点」
                              于(「源码范围标注节点」于「范围」)
                              于((「列」【「式」】))
                      )
              )
              或有(「绑定」于「可能名」于「下式」)
              则(
                虑「源码绑定」者「定位源码绑定」于「可能名」
                而
                虑「后下式」者
                  「进行名称解析表达式」
                    于「当前绑定们」
                    于(「缀」于「源码绑定」于「源码绑定们」)
                    于「模式源码绑定们」
                    于
                      「命名空间们」于「打开文件们」于「阴」于「下式」
                而
                「绑定」
                  于
                    「可能名」
                      于(「标注源码绑定声明」于「源码绑定」于「后下式」)
              )
              或有(「式节点」
                于「内联虑」
                于((「列」【
                  (「式节点」于「递归节点」于((「列」【「递归类」,(「绑定」于「递归可能名」于「递归体」)】))),
                  (「绑定」于「后可能名」于「后体」)
                】)))
                则(
                  虑「源码绑定」者「定位源码绑定」于
                    「后可能名」
                  而
                  虑「后递归类」者
                    「进行名称解析表达式」
                      于「当前绑定们」
                      于
                        「源码绑定们」
                          于「模式源码绑定们」
                          于「命名空间们」于
                          「打开文件们」于「阴」于「递归类」
                  而
                  虑「后递归体」者
                    「进行名称解析表达式」
                      于「当前绑定们」
                      于(「缀」于「源码绑定」于「源码绑定们」)
                      于
                        「模式源码绑定们」
                          于「命名空间们」于「打开文件们」于「阴」于
                          「递归体」
                  而
                  虑「后后体」者
                    「进行名称解析表达式」
                      于「当前绑定们」
                      于(「缀」于「源码绑定」于「源码绑定们」)
                      于
                        「模式源码绑定们」
                          于「命名空间们」于「打开文件们」于「阴」于
                          「后体」
                  而
                  「式节点」
                    于「内联虑」
                    于((「列」【
                      (「式节点」
                        于「递归节点」
                        于((「列」【「后递归类」,(「绑定」于「递归可能名」于「后递归体」)】))),
                        (「绑定」于「后可能名」于(「标注源码绑定声明」于「源码绑定」于「后后体」))
                    】))
                )
              或有(「式节点」于「内联虑」于((「列」【「定义式」,(「绑定」于「可能名」于「后式」)】)))则(
                虑「源码绑定」者「定位源码绑定」于「可能名」
                而
                虑「后定义式」者
                  「进行名称解析表达式」
                    于「当前绑定们」
                    于「源码绑定们」
                    于「模式源码绑定们」
                    于
                      「命名空间们」于「打开文件们」于「阴」于「定义式」
                而
                虑「后后式」者
                  「进行名称解析表达式」
                    于「当前绑定们」
                    于(「缀」于「源码绑定」于「源码绑定们」)
                    于
                      「模式源码绑定们」
                        于「命名空间们」于「打开文件们」于「阴」于「后式」
                而
                「式节点」
                  于「内联虑」
                  于((「列」【
                    「后定义式」,
                    (「绑定」于「可能名」于(「标注源码绑定声明」于「源码绑定」于「后后式」))
                  】))
              )
              或有(「式节点」于「模式匹配分支」于((「列」【「模式」,「尾式」】)))
              则(
                虑「后模式」者
                  「进行名称解析表达式」
                    于
                    「当前绑定们」
                      于
                      「源码绑定们」
                        于
                        「罄」于
                        「命名空间们」于
                        「打开文件们」于
                        「阴」于「模式」
                而
                虑「新模式绑定们」者
                  「收集模式源码绑定」于
                    「后模式」
                而
                虑「后尾式」者
                  「进行名称解析表达式」
                    于
                      「当前绑定们」
                        于
                          「源码绑定们」
                            于(「附加」于「新模式绑定们」于「模式源码绑定们」)
                            于
                            「命名空间们」于
                            「打开文件们」于
                            「阴」于「尾式」
                而
                「式节点」
                  于
                    「模式匹配分支」
                      于((「列」【「后模式」,「后尾式」】))
              )
              或有(「式节点」于(「结构投影」于「投影名」)于((「列」【「投影底」】)))则
                「解析投影」
                  于「投影名」
                  于「投影底」
              或有(「式节点」于(「结构投影带序数」于「投影名」于「忽略序数」)于((「列」【「投影底」】)))则
                「解析投影」
                  于「投影名」
                  于「投影底」
              或有(「式节点」于「节点名」于「子式们」)则
                「式节点」
                  于「节点名」
                  于((「态射」)于「子式们」于「解析普通子式」)
              或有「其他」则
                「发生事故」授以「表达式」
                于『名称解析遇到未知表达式:』附(「表达式表示」于「其他」)
            而
            若「允许命名空间」
            则
              「结果」
            否则
              (
                鉴「结果」而
                  有(「式节点」于(「文件引用节点」于「文件名」)于「罄」)则
                    「发生事故」授以「表达式」
                    于『命名空间不是一等值,不能作为参数、返回值、类型或数据使用:』附「文件名」
                  或有「其他结果」则「其他结果」
              )
也。

「:递归节点的类与外层定义类来自同一段源码。只能解析一次,否则语言服务的源码游标会重复消费声明类,并越过函数体。:」
「进行顶层定义名称解析」乃
  化「字符串」而
  化(「列」于(「字符串」合「表达式」))而
  化(「列」于(「字符串」合「字符串」))而
  化(「列」于「字符串」)而
  化「字符串」而
  化(「或可有」于「源码范围」)而
  化
  「表达式」而
  化「表达式」而
  「表达式」
也。
「进行顶层定义名称解析」者
  会「当前文件名」而
  会「当前绑定们」而
  会「命名空间们」而
  会「打开文件们」而
  会「定义名」而
  会
  「可能定义范围」而
  会「已解析定义类」而
  会「定义式」而
  鉴「定义式」而
    有(「式节点」于「递归节点」于((「列」【「忽略递归类」,(「绑定」于(「可有」于「绑定名」)于「递归体」)】)))
    则
      若(「串相等」于「绑定名」于「定义名」)
      则
        (
          虑「源码绑定」者(「定义名」与「可能定义范围」)而
          虑「后体」者
            「进行名称解析表达式」
              于「当前绑定们」
              于((「列」【「源码绑定」】))
              于「罄」于
              「命名空间们」于「打开文件们」于「阴」于「递归体」
          而
          「式节点」
            于「递归节点」
            于((「列」【「已解析定义类」,(「绑定」于(「可有」于「绑定名」)于「后体」)】))
        )
      否则
        「进行名称解析表达式」
          于「当前绑定们」
          于「罄」
          于「罄」
          于「命名空间们」于「打开文件们」于「阳」于
          「定义式」
    或有「其他」则
      「进行名称解析表达式」于「当前绑定们」于「罄」于「罄」于「命名空间们」于「打开文件们」于「阳」于
      「定义式」
也。

「名称解析导出定义」乃
  化「字符串」而
  化「整数」而
  化「文件定义列」而
  「文件定义列」
也。
「名称解析导出定义」者会「文件名」而会「序数」而会「定义列」而
  鉴「定义列」而
    有「罄」则「罄」
    或有(「缀」于(「名」与「忽略公开性」与「定义项」)于「后定义列」)
    则(
      虑「导出式」者
        (
          鉴「定义项」而
            有(「式节点」于「类型定义节点」于((「列」【「类型定义」】)))则
              「式节点」
                于(「定义声明近似类型节点」于「定义透明」)
                于((「列」【(「式节点」于(「近似类型占位节点」)于「罄」),「类型定义」】))
            或有(「式节点」于「类型判断节点」于(「缀」于「定义类」于「忽略定义式」))则
              「式节点」
                于(「定义声明近似类型节点」于「定义不透明」)
                于((「列」【「定义类」,(「文件定义引用式」于「文件名」于「名」于「序数」)】))
            或有(「式节点」
              于(「唯一构造器节点」于「构造器序数」于「构造器文件」于「构造器名」)
              于((「列」【「构造器类」】)))则
                「式节点」
                  于「构造声明近似类型节点」
                  于((「列」【「定义项」】))
            或有(「式节点」于(「文件引用节点」于「命名空间文件名」)于「罄」)则
              「式节点」
                于(「文件引用节点」于「命名空间文件名」)于「罄」
            或有「其他」则
              「发生事故」授以「表达式」
              于『名称解析无法重导出检查后定义:』附「名」附『,文件:』附
              「文件名」附『,定义:』附(「表达式表示」于「其他」)
        )
      而
      「缀」
        于(「名」与「阳」与「导出式」)
        于(「名称解析导出定义」于「文件名」于(「加」于「序数」于「一」)于「后定义列」)
    )
也。

「进行文件名称解析顶层」乃化「字符串」而化「文件定义列」而「文件定义列」也。
「进行文件名称解析顶层」者会「当前文件名」而
  会「定义列」而
    递归虑「解析定义列」其化「整数」而化(「列」于(「字符串」合「表达式」))而化(「列」于(「字符串」合「字符串」))而
    化(「列」于「字符串」)而化「文件定义列」而「文件定义列」者
      会「当前序数」而会「当前绑定们」而会「命名空间们」而会「打开文件们」而会「剩余定义」而
        鉴「剩余定义」而
          有「罄」则「罄」
          或有(「缀」
            于(「忽略名」与「忽略公开性」
              与(「式节点」于(「文件命名近似类型节点」于「别名」于「命名文件名」)于「罄」))
              于「后定义列」)则
                「解析定义列」
                  于「当前序数」
                  于「当前绑定们」
                  于(「缀」于(「别名」与「命名文件名」)于「命名空间们」)
                  于
                  「打开文件们」
                    于「后定义列」
          或有(「缀」
            于(「忽略名」与「忽略公开性」与(「式节点」于(「文件导入近似类型节点」于「忽略文件名」)于「罄」))
            于「后定义列」)则
              「解析定义列」
                于「当前序数」
                于「当前绑定们」
                于「命名空间们」
                于「打开文件们」
                于「后定义列」
          或有(「缀」
            于(「忽略名」与「忽略公开性」与(「式节点」于(「文件打开近似类型节点」于「打开文件名」)于「罄」))
            于「后定义列」)则
              「解析定义列」
                于「当前序数」
                于「当前绑定们」
                于「命名空间们」
                于(「缀」于「打开文件名」于「打开文件们」)
                于「后定义列」
          或有(「缀」
            于(「忽略名」与「忽略公开性」与(「式节点」于(「文件导出近似类型节点」于「导出文件名」)于「罄」))
            于「后定义列」)则
              「解析定义列」
                于「当前序数」
                于「当前绑定们」
                于「命名空间们」
                于「打开文件们」
                于(「附加」
                  于(「名称解析导出定义」于「导出文件名」于「零」于(「读检查后定义」于「导出文件名」))
                  于
                  「后定义列」)
          或有(「缀」
            于(「名」与「公开性」
              与(「式节点」于(「定义声明近似类型节点」于「透明性」)于((「列」【「近似类」,「定义式」】))))
              于「后定义列」)
              则(
                虑「定义范围」者
                  「查找并记录当前定义范围」于
                    「名」而
                    虑「后类」者
                      「进行名称解析表达式」
                        于「当前绑定们」
                        于「罄」
                        于
                        「罄」
                          于「命名空间们」于「打开文件们」于「阴」于「近似类」
                    而
                    虑「后定义式」者
                      「进行顶层定义名称解析」
                        于「当前文件名」
                        于
                        「当前绑定们」
                          于「命名空间们」
                          于「打开文件们」
                          于「名」于
                          「定义范围」于「后类」于「定义式」
                    而
                    (
                      鉴「后定义式」而
                        有(「式节点」于(「文件引用节点」于「命名空间文件名」)于「罄」)则「缀」
                          于(「名」与「公开性」与「后定义式」)
                          于(「解析定义列」
                            于(「加」于「当前序数」于「一」)
                            于(「附加」于「当前绑定们」于((「列」【(「名」与「后定义式」)】)))
                            于
                            「命名空间们」于「打开文件们」于「后定义列」)
                        或有「其他定义式」
                        则(
                          虑「后声明」者
                            「式节点」
                              于(「定义声明近似类型节点」于「透明性」)
                              于((「列」【「后类」,「其他定义式」】))
                          而
                          虑「当前引用」者
                            「文件定义引用式」
                              于「当前文件名」于「名」于「当前序数」
                          而
                          「缀」
                            于(「名」与「公开性」与「后声明」)
                            于(「解析定义列」
                              于(「加」于「当前序数」于「一」)
                              于(「附加」于「当前绑定们」于((「列」【(「名」与「当前引用」)】)))
                              于
                              「命名空间们」于「打开文件们」于「后定义列」)
                        )
                    )
              )
          或有(「缀」
            于(「名」与「公开性」
  与(「式节点」
    于「构造声明近似类型节点」
    于((「列」【
      (「式节点」
        于(「唯一构造器节点」于「构造器序数」于「构造器文件」于「构造器名」)
        于((「列」【「构造器类」】)))
    】)
    )))于「后定义列」)
    则(
      虑「忽略定义范围」者「查找并记录当前定义范围」于「名」而
      虑「后构造器类」者
        「进行名称解析表达式」
          于「当前绑定们」
          于「罄」
          于「罄」
          于
            「命名空间们」于「打开文件们」于「阴」于「构造器类」而
            虑「后构造器」者
              「式节点」
                于(「唯一构造器节点」于「构造器序数」于「构造器文件」于「构造器名」)
                于((「列」【「后构造器类」】))
            而
            虑「后声明」者
              「式节点」
                于「构造声明近似类型节点」
                于((「列」【「后构造器」】))
            而
            虑「当前引用」者
              「文件定义引用式」于「当前文件名」于「名」于「当前序数」
            而
            「缀」
              于(「名」与「公开性」与「后声明」)
              于(「解析定义列」
                于(「加」于「当前序数」于「一」)
                于(「附加」于「当前绑定们」于((「列」【(「名」与「当前引用」)】)))
                于「命名空间们」于
                  「打开文件们」于「后定义列」)
    )
          或有(「缀」
            于(「名」与「公开性」与(「式节点」于(「文件引用节点」于「命名空间文件名」)于「罄」))
            于
              「后定义列」)则(
            虑「命名空间引用」者
              「式节点」于(「文件引用节点」于「命名空间文件名」)于「罄」
            而
            「缀」
              于(「名」与「公开性」与「命名空间引用」)
              于(「解析定义列」
                于(「加」于「当前序数」于「一」)
                于(「附加」于「当前绑定们」于((「列」【(「名」与「命名空间引用」)】)))
                于「命名空间们」于「打开文件们」于「后定义列」)
          )
          或有(「缀」于(「名」与「忽略公开性」与「其他」)于「后定义列」)则
            「发生事故」
              于『名称解析遇到未知顶层定义:』附「名」附『 = 』附(「表达式表示」于「其他」)
    而
    「解析定义列」于「零」于「罄」于「罄」于「罄」于「定义列」
也。