豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 513 行 · 27391 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字节串」之书。
寻观「标准库」之「数据结构」之「字符串术」之书。
寻观「编译器核心」之「编译步骤」之「代码生成」之「底层后端」之「底层中间式」之书。
寻观「编译器核心」之「编译步骤」之「代码生成」之「底层后端」之「底层读取」之书。

「:文言:编译时求值:三十二位整数之算、顶层常量之解、静态串之置、内存与数据区之声。汉语:底层模式的编译期部分:三十二位有符号整数的纯运算(用于折叠与顶层常量)、顶层值定义按需求值、静态字符串分配到数据区、内存与数据区的声明状态。:」
「低层无符」乃化「整数」而「整数」也。
「低层无符」者会「数」而
  虑「归」者「低层归一」于「数」而
  若「小于」于「归」于「零」则
    「加」于「归」于「低层二三二」
  否则
    「归」
也。

「低层幂二」乃化「整数」而「整数」也。
「低层幂二」者会「数」而
  若「小于」于「数」于「一」则
    「一」
  否则
    「乘」于「二」于(「低层幂二」于(「减」于「数」于「一」))
也。

「:文言:逐位而合,操零为与,一为或,二为异或。汉语:把两个非负整数按 32 位逐位组合。:」
「低层位合」乃化「整数」而化「整数」而化「整数」而「整数」也。
「低层位合」者会「操」而
  会「甲」而
    会「乙」而
      递归虑「逐位」其化「整数」而化「整数」而化「整数」而化「整数」而「整数」者会「子」而会「丑」而会「权」而会「累」而
        若「等于」于「权」于「低层二三二」则「累」
        否则
          虑「位子」者「低层余」于「子」于「二」
          而
          虑「位丑」者「低层余」于「丑」于「二」
          而
          虑「位」者
            若「等于」于「操」于「零」则
              (若「且」于(「等于」于「位子」于「一」)于(「等于」于「位丑」于「一」)则「一」否则「零」)
            否则
              若「等于」于「操」于「一」则
                (若「或者」于(「等于」于「位子」于「一」)于(「等于」于「位丑」于「一」)则「一」否则「零」)
              否则
                (若「等于」于「位子」于「位丑」则「零」否则「一」)
          而
          「逐位」
            于(「除以」于「子」于「二」)
            于(「除以」于「丑」于「二」)
            于(「乘」于「权」于「二」)
            于(「加」于「累」于(「乘」于「位」于「权」))
      而
      「低层归一」于(「逐位」于(「低层无符」于「甲」)于(「低层无符」于「乙」)于「一」于「零」)
也。

「低层布尔」乃化「爻」而「整数」也。
「低层布尔」者会「值」而
  若「值」则「一」否则「零」
也。

「:文言:左移,乘以二之幂而归一。汉语:按位移量模 32 计算。:」
「低层左移」乃化「整数」而化「整数」而「整数」也。
「低层左移」者会「甲」而会「乙」而
  「低层归一」于(「乘」于「甲」于(「低层幂二」于(「低层余」于(「低层无符」于「乙」)于「三二」)))
也。

「低层无符右移」乃化「整数」而化「整数」而「整数」也。
「低层无符右移」者会「甲」而会「乙」而
  「低层归一」于(「除以」
    于(「低层无符」于「甲」)
    于(「低层幂二」于(「低层余」于(「低层无符」于「乙」)于「三二」)))
也。

「低层有符右移」乃化「整数」而化「整数」而「整数」也。
「低层有符右移」者会「甲」而会「乙」而
  虑「幂」者
    「低层幂二」于(「低层余」于(「低层无符」于「乙」)于「三二」)而
  若「小于」于「甲」于「零」则
    「减」于「零」于(「除以」于(「加」于(「减」于「零」于「甲」)于(「减」于「幂」于「一」))于「幂」)
  否则
    「除以」于「甲」于「幂」
也。

「低层纯算二」乃
  化「字符串」而
  化「整数」而
  化「整数」而
  (「或可有」于「整数」)
也。
「低层纯算二」者会「名」而会「甲」而会「乙」而
  若「串相等」于「名」于『底层_加』则
    「可有」于(「低层归一」于(「加」于「甲」于「乙」))
  否则若「串相等」于「名」于『底层_减』则「可有」于(「低层归一」于(「减」于「甲」于「乙」))
  否则若「串相等」于「名」于『底层_乘』则「可有」于(「低层归一」于(「乘」于「甲」于「乙」))
  否则若「串相等」于「名」于『底层_位与』则「可有」于(「低层位合」于「零」于「甲」于「乙」)
  否则若「串相等」于「名」于『底层_位或』则「可有」于(「低层位合」于「一」于「甲」于「乙」)
  否则若「串相等」于「名」于『底层_位异或』则「可有」于(「低层位合」于「二」于「甲」于「乙」)
  否则若「串相等」于「名」于『底层_左移』则「可有」于(「低层左移」于「甲」于「乙」)
  否则若「串相等」于「名」于『底层_无符号右移』则「可有」于(「低层无符右移」于「甲」于「乙」)
  否则若「串相等」于「名」于『底层_有符号右移』则「可有」于(「低层有符右移」于「甲」于「乙」)
  否则若「串相等」于「名」于『底层_有符号除』则(
    若「或者」
      于(「等于」于「乙」于「零」)
      于(「且」
        于(「等于」于「甲」于(「减」于「零」于「二一四七四八三六四八」))
        于(「等于」于「乙」于(「减」于「零」于「一」)))则「可无」
    否则
      「可有」于(「除以」于「甲」于「乙」)
  )
  否则若「串相等」于「名」于『底层_有符号余』则(
    若「等于」于「乙」于「零」则
      「可无」
    否则
      「可有」于(「减」于「甲」于(「乘」于(「除以」于「甲」于「乙」)于「乙」))
  )
  否则若「串相等」于「名」于『底层_无符号除』则(
    若「等于」于「乙」于「零」则
      「可无」
    否则
      「可有」于(「低层归一」于(「除以」于(「低层无符」于「甲」)于(「低层无符」于「乙」)))
  )
  否则若「串相等」于「名」于『底层_无符号余』则(
    若「等于」于「乙」于「零」则
      「可无」
    否则
      「可有」于(「低层归一」于(「低层余」于(「低层无符」于「甲」)于(「低层无符」于「乙」)))
  )
  否则若「串相等」于「名」于『底层_等』则「可有」于(「低层布尔」于(「等于」于「甲」于「乙」))
  否则若「串相等」于「名」于『底层_不等』则「可有」于(「低层布尔」于(「不等于」于「甲」于「乙」))
  否则若「串相等」于「名」于『底层_有符号小于』则「可有」于(「低层布尔」于(「小于」于「甲」于「乙」))
  否则若「串相等」于「名」于『底层_有符号大于』则「可有」于(「低层布尔」于(「大于」于「甲」于「乙」))
  否则若「串相等」于「名」于『底层_有符号小等』则「可有」于(「低层布尔」于(「非」于(「大于」于「甲」于「乙」)))
  否则若「串相等」于「名」于『底层_有符号大等』则「可有」于(「低层布尔」于(「非」于(「小于」于「甲」于「乙」)))
  否则若「串相等」于「名」于『底层_无符号小于』则
    「可有」于(「低层布尔」于(「小于」于(「低层无符」于「甲」)于(「低层无符」于「乙」)))
  否则若「串相等」于「名」于『底层_无符号大于』则
    「可有」于(「低层布尔」于(「大于」于(「低层无符」于「甲」)于(「低层无符」于「乙」)))
  否则若「串相等」于「名」于『底层_无符号小等』则
    「可有」于(「低层布尔」于(「非」于(「大于」于(「低层无符」于「甲」)于(「低层无符」于「乙」))))
  否则若「串相等」于「名」于『底层_无符号大等』则
    「可有」于(「低层布尔」于(「非」于(「小于」于(「低层无符」于「甲」)于(「低层无符」于「乙」))))
  否则
    「可无」
也。

「低层纯算一」乃化「字符串」而化「整数」而(「或可有」于「整数」)也。
「低层纯算一」者会「名」而会「甲」而
  若「串相等」于「名」于『底层_为零』则
    「可有」于(「低层布尔」于(「等于」于「甲」于「零」))
  否则
    「可无」
也。

「低层纯算」乃化「字符串」而化(「列」于「整数」)而(「或可有」于「整数」)也。
「低层纯算」者会「名」而会「值们」而
  鉴「值们」而
    有(「列」【「甲」,「乙」】)则
      「低层纯算二」于「名」于「甲」于「乙」
    或有(「列」【「甲」】)则
      「低层纯算一」于「名」于「甲」
    或有「其他」则「可无」
也。

「:文言:名之为纯算者,二元或一元之整数运算,无副作用。汉语:判断外部调用名是否属于可编译期折叠的纯整数运算。:」
「低层是纯算名」乃化「字符串」而「爻」也。
「低层是纯算名」者会「名」而
  「存在吗」授以「字符串」
    于(会「他」而「串相等」于「他」于「名」)
    于(「列」【
      『底层_加』,
      『底层_减』,
      『底层_乘』,
      『底层_位与』,
      『底层_位或』,
      『底层_位异或』,
      『底层_左移』,
      『底层_无符号右移』,
      『底层_有符号右移』,
      『底层_有符号除』,
      『底层_有符号余』,
      『底层_无符号除』,
      『底层_无符号余』,
      『底层_等』,
      『底层_不等』,
      『底层_有符号小于』,
      『底层_有符号大于』,
      『底层_有符号小等』,
      『底层_有符号大等』,
      『底层_无符号小于』,
      『底层_无符号大于』,
      『底层_无符号小等』,
      『底层_无符号大等』,
      『底层_为零』
    】)
也。

「低层值」立「元类型」也。
  「值整」立化「整数」而「低层值」也。
  「值串」立化「字符串」而「低层值」也。

「:文言:模块级之状态:数据区、静态串、内存声明与顶层值。汉语:这些引用在每次生成模块前由 `低层重置状态` 清空。:」
「底层静态基」者「新引用」授以「整数」于「零」也。

「底层静态止」者「新引用」授以「整数」于「零」也。

「底层静态顶」者「新引用」授以「整数」于「零」也。

「底层静态段们」者
  「新引用」授以(「列」于(「整数」合「字符串」合「字节串」))
  于(「罄」授以(「整数」合「字符串」合「字节串」))
也。

「底层内存声明」者「新引用」授以(「列」于「整数」)于(「罄」授以「整数」)也。

「底层值定义表」者「新引用」授以(「列」于(「字符串」合「低层项」))
于(「罄」授以(「字符串」合「低层项」))
也。

「底层常量表」者「新引用」授以(「列」于(「字符串」合「整数」))
于(「罄」授以(「字符串」合「整数」))
也。

「底层求值中」者「新引用」授以(「列」于「字符串」)于(「罄」授以「字符串」)也。

「:文言:别名之表:顶层值定义若径为对他定义之引用(重出口),则调其名等于调其所引。汉语:总集(寻诵)会把每个名字重出口成“值=引用 原定义”;调用这些别名时应改为调用原函数。键与目标都是 文件#名。:」
「底层别名表」者「新引用」授以(「列」于(「字符串」合「字符串」))
于(「罄」授以(「字符串」合「字符串」))
也。

「低层重置状态」乃化「有」而「有」也。
「低层重置状态」者会「无」而
  虑「无」者「写引用」于「底层静态基」于「零」而
  虑「无」者「写引用」于「底层静态止」于「零」而
  虑「无」者「写引用」于「底层静态顶」于「零」而
  虑「无」者
    「写引用」于「底层静态段们」于(「罄」授以(「整数」合「字符串」合「字节串」))而
    虑「无」者「写引用」于「底层内存声明」于(「罄」授以「整数」)而
    虑「无」者
      「写引用」于「底层值定义表」于(「罄」授以(「字符串」合「低层项」))而
      虑「无」者
        「写引用」于「底层常量表」于(「罄」授以(「字符串」合「整数」))而
        虑「无」者
          「写引用」于「底层别名表」于(「罄」授以(「字符串」合「字符串」))
        而
        「写引用」于「底层求值中」于(「罄」授以「字符串」)
也。

「:文言:置串于数据区,同文者共其址,末附零字节。汉语:静态字符串按 UTF-8 存入数据区,以零字节结尾;相同内容只存一份。:」
「低层分配静态串」乃化「字符串」而「整数」也。
「低层分配静态串」者会「文」而
  虑「已有」者
    「滤」授以(「整数」合「字符串」合「字节串」)
    于(会「段」而「串相等」于(「段」中「一」)于「文」)
    于(「读引用」于「底层静态段们」)而
  鉴「已有」而
    有「缀」于「首」于「余」则(「首」中「零」)
    或有「罄」则(
      若「等于」于(「读引用」于「底层静态止」)于「零」则
        「低层出错」授以「整数」
        于『使用静态串之前须先声明数据区(声明数据区 起 止)』
      否则
        虑「址」者「读引用」于「底层静态顶」
        而
        虑「字节」者
          「拼接字节串」
            于(「字符串转字节串」于「文」)
            于(「单字节串」于「零」)
        而
        虑「新顶」者「加」于「址」于(「字节串长度」于「字节」)
        而
        若「大于」于「新顶」于(「读引用」于「底层静态止」)则
          「低层出错」授以「整数」于『静态串溢出数据区』
        否则
          虑「无」者「写引用」于「底层静态顶」于「新顶」
          而
          虑「无」者
            「写引用」
              于「底层静态段们」
              于(「缀」于(「址」与「文」与「字节」)于(「读引用」于「底层静态段们」))
          而
          「址」
    )
也。

「低层查串表」乃
  化(「列」于(「字符串」合「整数」))而
  化「字符串」而
  (「或可有」于「整数」)
也。
「低层查串表」者会「表」而会「键」而
  鉴「表」而
    有「罄」则「可无」
    或有「缀」于「首」于「尾」则
      若「串相等」于(「首」中「零」)于「键」则「可有」于(「首」中「一」)否则「低层查串表」于「尾」于「键」
也。

「低层查定义表」乃
  化(「列」于(「字符串」合「低层项」))而
  化「字符串」而
  (「或可有」于「低层项」)
也。
「低层查定义表」者会「表」而会「键」而
  鉴「表」而
    有「罄」则「可无」
    或有「缀」于「首」于「尾」则
      若「串相等」于(「首」中「零」)于「键」则「可有」于(「首」中「一」)否则「低层查定义表」于「尾」于「键」
也。

「低层查值环」乃
  化(「列」于(「字符串」合「低层值」))而
  化「字符串」而
  (「或可有」于「低层值」)
也。
「低层查值环」者会「表」而会「键」而
  鉴「表」而
    有「罄」则「可无」
    或有「缀」于「首」于「尾」则
      若「串相等」于(「首」中「零」)于「键」则「可有」于(「首」中「一」)否则「低层查值环」于「尾」于「键」
也。

「低层取整值们」乃
  化(「列」于「低层值」)而
  (「或可有」于(「列」于「整数」))
也。
「低层取整值们」者会「值们」而
  鉴「值们」而
    有「罄」则「可有」于(「罄」授以「整数」)
    或有「缀」于「首」于「尾」则(
      鉴「首」而
        有「值整」于「数」则(
          鉴「低层取整值们」于「尾」而
            有「可有」于「余」则
              「可有」于(「缀」于「数」于「余」)
            或有「可无」则
              「可无」授以(「列」于「整数」)
        )
        或有「值串」于「文」则
          「可无」授以(「列」于「整数」)
    )
也。

「:文言:外部调用之可于编译时求者:静态串、声明与纯算。汉语:编译期可求值的外部调用:静态串分配、内存与数据区声明、纯整数运算。:」
「低层求值外」乃化「字符串」而化(「列」于「低层值」)而「低层值」也。
「低层求值外」者会「名」而会「值们」而
  若「串相等」于「名」于『底层_静态串』则(
    鉴「值们」而
      有(「列」【「值串」于「文」】)则
        「值整」于(「低层分配静态串」于「文」)
      或有「其他」则
        「低层出错」授以「低层值」于『静态串的实参必须是字符串字面』
  )
  否则若「串相等」于「名」于『声明:内存』则(
    鉴「值们」而
      有(「列」【「值整」于「初」,「值整」于「大」】)则(
        若(「不等于」于(「长度」授以「整数」于(「读引用」于「底层内存声明」))于「零」)则
          「低层出错」授以「低层值」于『内存只能声明一次』
        否则
          虑「无」者
            「写引用」于「底层内存声明」于(「列」【「初」,「大」】)
          而
          「值整」于「零」
      )
      或有「其他」则
        「低层出错」授以「低层值」于『声明内存需要初始页数与最大页数两个整数』
  )
  否则若「串相等」于「名」于『声明:数据区』则(
    鉴「值们」而
      有(「列」【「值整」于「起」,「值整」于「止」】)则(
        若(「大于」于(「读引用」于「底层静态止」)于「零」)则
          「低层出错」授以「低层值」于『数据区只能声明一次』
        否则
          若(「或者」于(「小于」于「起」于「零」)于(「非」于(「小于」于「起」于「止」)))则
            「低层出错」授以「低层值」于『数据区须满足 0 ≤ 起 < 止』
          否则
            虑「无」者「写引用」于「底层静态基」于「起」
            而
            虑「无」者「写引用」于「底层静态止」于「止」
            而
            虑「无」者「写引用」于「底层静态顶」于「起」而
            「值整」于「零」
      )
      或有「其他」则
        「低层出错」授以「低层值」于『声明数据区需要起止两个整数』
  )
  否则若「低层是纯算名」于「名」则(
    鉴「低层取整值们」于「值们」而
      有「可有」于「数们」则(
        鉴「低层纯算」于「名」于「数们」而
          有「可有」于「果」则「值整」于「果」
          或有「可无」则
            「低层出错」授以「低层值」于(『编译期整数运算无定义(如除以零):』附「名」)
      )
      或有「可无」则
        「低层出错」授以「低层值」于(『编译期运算需要整数实参:』附「名」)
  )
  否则
    「低层出错」授以「低层值」于(『不是编译期可求值的外部调用:』附「名」)
也。

「:文言:求闭项之值。汉语:在给定的值环境中求简树的编译期值;引用顶层常量时调用 `取常` 函数(由 `低层取常量` 传入自身,以便互递归)。:」
「低层求值」乃
  化(化「字符串」而「整数」)而
  化(「列」于(「字符串」合「低层值」))而
  化「低层项」而
  「低层值」
也。
「低层求值」者会「取常」而会「境」而会「项」而
  鉴「项」而
    有「项整」于「数」则「值整」于「数」
    或有「项串」于「文」则「值串」于「文」
    或有「项局」于「名」则(
      鉴「低层查值环」于「境」于「名」而
        有「可有」于「值」则「值」
        或有「可无」则
          「低层出错」授以「低层值」于(『编译期求值遇到未绑定的变量:』附「名」)
    )
    或有「项引」于「文件」于「名」则
      「值整」于(「取常」于(「文件」附『#』附「名」))
    或有「项令」于「名」于「值」于「体」则
      「低层求值」
        于「取常」
        于(「缀」于(「名」与(「低层求值」于「取常」于「境」于「值」))于「境」)
        于「体」
    或有「项若」于「条」于「真」于「假」则(
      鉴「低层求值」于「取常」于「境」于「条」而
        有「值整」于「数」则(
          若「不等于」于「数」于「零」则「低层求值」于「取常」于「境」于「真」否则「低层求值」
          于「取常」于「境」于「假」
        )
        或有「值串」于「文」则
          「低层出错」授以「低层值」于『条件不能是字符串』
    )
    或有「项外」于「名」于「参们」则
      「低层求值外」
        于「名」
        于(「态射」授以「低层项」授以「低层值」于「参们」于(会「参」而「低层求值」于「取常」于「境」于「参」))
    或有「其他」则
      「低层出错」授以「低层值」于(『不是编译期常量:』附(「低层项表示」于「项」))
也。

「:文言:求顶层值之常量,随用随算,记之以免重算,环则止。汉语:`键` 是 文件#名。顶层值定义在 `底层值定义表` 中;求值结果必须是整数;求值中再引用自己是循环定义。:」
「低层取常量」乃化「字符串」而「整数」也。
「低层取常量」者会「键」而
  鉴「低层查串表」于(「读引用」于「底层常量表」)于「键」而
    有「可有」于「值」则「值」
    或有「可无」则(
      鉴「低层查定义表」于(「读引用」于「底层值定义表」)于「键」而
        有「可无」则
          「低层出错」授以「整数」
          于(『引用的顶层定义不是编译期常量:』附「键」)
        或有「可有」于「项」则
          若「存在吗」授以「字符串」
          于(会「他」而「串相等」于「他」于「键」)
          于(「读引用」于「底层求值中」)则
            「低层出错」授以「整数」于(『顶层常量的定义循环:』附「键」)
          否则
            虑「无」者
              「写引用」
                于「底层求值中」
                于(「缀」于「键」于(「读引用」于「底层求值中」))
            而
            虑「结果」者
              「低层求值」
                于「低层取常量」
                于(「罄」授以(「字符串」合「低层值」))
                于「项」
            而
            虑「无」者
              「写引用」
                于「底层求值中」
                于(「滤」授以「字符串」
                  于(会「他」而「非」于(「串相等」于「他」于「键」))
                  于(「读引用」于「底层求值中」))而
            鉴「结果」而
              有「值整」于「数」则(
                虑「无」者
                  「写引用」
                    于「底层常量表」
                    于(「缀」于(「键」与「数」)于(「读引用」于「底层常量表」))
                而
                「数」
              )
              或有「值串」于「文」则
                「低层出错」授以「整数」
                于(『顶层值定义不能是字符串,请用静态串取其地址:』附「键」)
    )
也。

「低层查串串」乃
  化(「列」于(「字符串」合「字符串」))而
  化「字符串」而
  (「或可有」于「字符串」)
也。
「低层查串串」者会「表」而会「键」而
  鉴「表」而
    有「罄」则「可无」
    或有「缀」于「首」于「尾」则
      若「串相等」于(「首」中「零」)于「键」则「可有」于(「首」中「一」)否则「低层查串串」于「尾」于「键」
也。

「:文言:循别名而至其本。汉语:沿别名链找到最终的定义名;有环则止于环上某点(至多追十六步)。:」
「低层解别名」乃化「字符串」而「字符串」也。
「低层解别名」者会「名」而
  递归虑「追」其化「整数」而化「字符串」而「字符串」者会「步」而会「现」而
    若「小于」于「步」于「一」则「现」
    否则
      鉴「低层查串串」于(「读引用」于「底层别名表」)于「现」而
        有「可有」于「目标」则
          「追」于(「减」于「步」于「一」)于「目标」
        或有「可无」则
          「现」
  而
  「追」于「一六」于「名」
也。