豫言源码浏览器 / Source Browser

浏览项目文件与源码

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

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

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

寻观「编译器核心」之「顺序标识符」之「顺序标识符」之书。

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

「条目表示」乃化「条目」而「字符串」也。
「条目表示」者会「目」而
  鉴「目」而
    有「本地条目」于「名」于「类」则(「名」)附『:』附(「表达式表示」于「类」)
    或有「文件定义条目」于「文件名」于「定义名」于「类」于「物」则
      『文件定义:』附「文件名」附『:』附「定义名」附『:』附(「表达式表示」于「类」)
也。

「命名环境表示」乃化「命名环境」而「字符串」也。
「命名环境表示」者会「境」而
  「间合」于『「:换行:」』于((「态射」)于「境」于「条目表示」)
也。

「: 名称解析结果立类型也。
    绝对解析立化表达式而名称解析结果也。
    未找到解析立名称解析结果也。 :」

「解析单个名称」乃化「命名环境」而化「字符串」而「或可有」于「表达式」也。
「解析单个名称」者
  会「境」而会「搜索名」而
  「:尝试绝对解析:」
  鉴((「滤态射」授以「条目」授以「表达式」)
  于(会「明」而
  鉴「明」而
    有(「本地条目」于「名」于「类」)则
      (若(「串相等」于「搜索名」于「名」)则(「可有」于「类」)否则「可无」)
    或有(「文件定义条目」于「忽略文件名」于「忽略定义名」于「忽略类」于「忽略物」)则「可无」
  )
  于(「境」)
  )而
    有(「缀」于「找到」于「尾」)则(「可有」于「找到」)
    或有「罄」则
      (「可无」)
也。

「找到名称」乃化「命名环境」而化「字符串」而「表达式」也。
「找到名称」者会「境」而会「名」而
  鉴「解析单个名称」于「境」于「名」而
    有(「可有」于「式」)则「式」
    或有「可无」则
      「发生事故」于『未找到名称:』附(「名」)附『在以下环境中:换行』附(「命名环境表示」于「境」)
也。

「命名环境获取所有名称」乃化「命名环境」而「列」于「字符串」也。
「命名环境获取所有名称」者会「境」而
  (「滤态射」授以「条目」授以「字符串」)
  于(会「明」而
  鉴(「明」)而
    有(「本地条目」于「名」于「类」)则「可有」
      于「名」
    或有(「文件定义条目」于「忽略文件名」于「忽略定义名」于「忽略类」于「忽略物」)则「可无」
  )于「境」
也。

「默认命名环境」者(「态射」授以「内建常量」授以「条目」)
于「所有内建常量」
于(会「量」而「本地条目」于(「内建常量表示」于「量」)于(「内建物类型」于「量」))
也。

「添加声明」乃
  化「命名环境」而
  化「字符串」而
  化「表达式」而
  (「字符串」合「命名环境」)
也。
「添加声明」者会「境」而会「串」而会「类」而
  虑「名」者
    (
      若(「存在吗」授以「字符串」)
      于(会「已有名」而「串相等」于「串」于「已有名」)
      于(「命名环境获取所有名称」于「境」)
      则
        (「下个字符序数」于「串」)
      否则
        「串」
    )而
    虑「无」者
      (「详细调试打印行」于(会「无」而『添加声明』附「串」附『,类:』附(「表达式表示」于「类」)))
    而
    虑「无」者
      (「编译调试打印行」于『env_add』于(会「无」而『添加声明』附「串」附『,类:』附(「表达式表示」于「类」)))
    而
    「名」与(「缀」于(「本地条目」于「名」于「类」)于「境」)
也。

「添加声明不改变名」乃
  化「字符串」而
  化「命名环境」而
  化「字符串」而
  化「表达式」而
  (「命名环境」)
也。
「添加声明不改变名」者会「调试」而会「境」而会「串」而会「类」而
  虑「名及境」者「添加声明」于「境」于「串」于「类」而
  若「串相等」于(「名及境」中「零」)于「串」则
    (「名及境」中「一」)
  否则
    (「发生事故」于「调试」附『重复的名称:』附「串」)
也。

「添加模式匹配声明」乃化「命名环境」而化「表达式」而「命名环境」也。
「添加模式匹配声明」者会「境」而会「模式」而
  虑「模式新变量们」者「读取模式匹配新变量」于「模式」而
  虑「新境」者
    ((「从左折叠」授以「字符串」授以「命名环境」)
    于(会「新名」而会「已有境」而
      「添加声明不改变名」
        于『119』
        于「已有境」
        于「新名」
        于(「式节点」于「待定节点」于「罄」) 「:TODO 用真实的类型:」
  )于「境」于「模式新变量们」
    )
  而
  「新境」
也。