豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 313 行 · 13595 字节 · UTF-8
§
寻观「标准库」之书。
寻观「编译器核心」之「网页汇编核心」之「回收模块」之书。
寻观「编译器核心」之「编译步骤」之「代码生成」之「回收运行时」之书。

「:
文言:宿主之值桥:宿主以之辨客值之类、读写整数小数元组字节。其型即取客体运行时之型,与编译器所生之码同;线性内存唯宿主换字节之区。
汉语:节点与浏览器宿主使用的值桥模块:宿主通过它判断客体值的种类、读写整数、小数、元组与字节串。结构类型直接取自客体运行时,与编译器生成的代码一致;线性内存只作宿主交换字节的区域。由原先手写的 值桥接.wat 逐条改写而来。
:」

「:文言:取参之令。汉语:读取参数 $v。:」
「值桥取参」者「回收局部取」于『$v』也。

「:文言:试其堆型,合则返所定之号。汉语:若 $v 是指定堆类型,就返回给定的种类号。:」
「值桥试类」乃化「回收堆型」而化「整数」而「回收串」也。
「值桥试类」者会「堆」而会「号」而
  「回收令列」
    于(「列」【
      「值桥取参」,
      「回收引用测」于「阴」于「堆」,
      「回收若」于『』于「回收块无果」,
      「回收整三二常」于「号」,
      「回收返回」,
      「回收结束」
    】)
也。

「:文言:导出之函:先函后出,出之次即函之次。汉语:导出函数:函数项之后紧跟其导出项,导出段的顺序与函数顺序一致。:」
「值桥导出函数」乃
  化「字符串」而
  化(「列」于「回收值型」)而
  化(「列」于「字符串」)而
  化(「列」于「回收值型」)而
  化(「列」于「回收局部」)而
  化「回收串」而
  「回收项串」
也。
「值桥导出函数」者会「外名」而会「参型们」而会「参名们」而会「果型们」而会「局部们」而会「体」而
  「回收项列」
    于(「列」【
      「回收函数项」于(『$』附「外名」)于(「回收型内联」于「参型们」于「果型们」)于「参名们」于「局部们」于「体」,
      「回收导出项」于「外名」于「回收出函数」于(『$』附「外名」)
    】)
也。

「:文言:辨客值之类:空者〇,小整一,字节二,元组三,大整四,小数五;余者不可至。汉语:判断客值种类,宿主 JS 依这些编号分派:空为 0,小整数(i31)为 1,字节串为 2,元组为 3,大整数为 4,小数为 5;其他类型不可达。:」
「值桥种类」乃「回收项串」也。
「值桥种类」者
  「值桥导出函数」
    于『kind』
    于(「列」【「回收等引用」】)
    于(「列」【『$v』】)
    于(「列」【「回收整三二」】)
    于(「罄」授以「回收局部」)
    于(「回收串并」
      于(「列」【
        「回收令列」于(「列」【
          「值桥取参」,
          「回收引用为空」,
          「回收若」于『』于「回收块无果」,
          「回收整三二常」于「零」,
          「回收返回」,
          「回收结束」
        】),
        「值桥试类」于「回收堆小整」于「一」,
        「值桥试类」于(「回收堆名」于『$bytes』)于「二」,
        「值桥试类」于(「回收堆名」于『$tuple』)于「三」,
        「值桥试类」于(「回收堆名」于『$big』)于「四」,
        「值桥试类」于(「回收堆名」于『$float』)于「五」,
        「回收单令」于「回收不可达」
      】))
也。

「值桥整数」者
  「值桥导出函数」
    于『int』
    于(「列」【「回收等引用」】)
    于(「列」【『$v』】)
    于(「列」【「回收整六四」】)
    于(「罄」授以「回收局部」)
    于(「回收令列」
      于(「列」【
        「值桥取参」,
        「回收引用测」于「阴」于「回收堆小整」,
        「回收若」于『』于(「回收块单果」于「回收整六四」),
        「值桥取参」,
        「回收引用转」于「阴」于「回收堆小整」,
        「回收小整取有符号」,
        「回收整三二有符号扩六四」,
        「回收否则」,
        「值桥取参」,
        「回收引用转」于「阴」于(「回收堆名」于『$big』),
        「回收结构取」于『$big』于「零」,
        「回收结束」
      】))
也。

「值桥新整数」者
  「值桥导出函数」
    于『new_int』
    于(「列」【「回收整六四」】)
    于(「列」【『$v』】)
    于(「列」【「回收等引用」】)
    于(「罄」授以「回收局部」)
    于(「回收令列」
      于(「列」【
        「值桥取参」,
        「回收整六四常」于(「整数操作」之「理解整数」于『-1073741824』),
        「回收整六四有符号大等」,
        「值桥取参」,
        「回收整六四常」于(「整数操作」之「理解整数」于『1073741823』),
        「回收整六四有符号小等」,
        「回收整三二与」,
        「回收若」于『』于(「回收块单果」于「回收等引用」),
        「值桥取参」,
        「回收整六四截三二」,
        「回收转小整」,
        「回收否则」,
        「值桥取参」,
        「回收结构新」于『$big』,
        「回收结束」
      】))
也。

「值桥小数」者
  「值桥导出函数」
    于『float』
    于(「列」【「回收等引用」】)
    于(「列」【『$v』】)
    于(「列」【「回收浮六四」】)
    于(「罄」授以「回收局部」)
    于(「回收令列」
      于(「列」【
        「值桥取参」,
        「回收引用转」于「阴」于(「回收堆名」于『$float』),
        「回收结构取」于『$float』于「零」
      】))
也。

「值桥新小数」者
  「值桥导出函数」
    于『new_float』
    于(「列」【「回收浮六四」】)
    于(「列」【『$v』】)
    于(「列」【「回收名引用」于『$float』】)
    于(「罄」授以「回收局部」)
    于(「回收令列」于(「列」【「值桥取参」,「回收结构新」于『$float』】))
也。

「值桥元组长」者
  「值桥导出函数」
    于『tuple_len』
    于(「列」【「回收等引用」】)
    于(「列」【『$v』】)
    于(「列」【「回收整三二」】)
    于(「罄」授以「回收局部」)
    于(「回收令列」于(「列」【「值桥取参」,「回收引用转」于「阴」于(「回收堆名」于『$tuple』),「回收数组长」】))
也。

「值桥元组取」者
  「值桥导出函数」
    于『tuple_get』
    于(「列」【「回收等引用」,「回收整三二」】)
    于(「列」【『$v』,『$i』】)
    于(「列」【「回收等引用」】)
    于(「罄」授以「回收局部」)
    于(「回收令列」
      于(「列」【
        「值桥取参」,
        「回收引用转」于「阴」于(「回收堆名」于『$tuple』),
        「回收局部取」于『$i』,
        「回收数组取」于『$tuple』
      】))
也。

「值桥元组存」者
  「值桥导出函数」
    于『tuple_set』
    于(「列」【「回收等引用」,「回收整三二」,「回收等引用」】)
    于(「列」【『$v』,『$i』,『$x』】)
    于(「罄」授以「回收值型」)
    于(「罄」授以「回收局部」)
    于(「回收令列」
      于(「列」【
        「值桥取参」,
        「回收引用转」于「阴」于(「回收堆名」于『$tuple』),
        「回收局部取」于『$i』,
        「回收局部取」于『$x』,
        「回收数组存」于『$tuple』
      】))
也。

「值桥新元组」者
  「值桥导出函数」
    于『new_tuple』
    于(「列」【「回收整三二」】)
    于(「列」【『$n』】)
    于(「列」【「回收名引用」于『$tuple』】)
    于(「罄」授以「回收局部」)
    于(「回收令列」于(「列」【「回收局部取」于『$n』,「回收数组新默认」于『$tuple』】))
也。

「值桥字节长」者
  「值桥导出函数」
    于『bytes_len』
    于(「列」【「回收等引用」】)
    于(「列」【『$v』】)
    于(「列」【「回收整三二」】)
    于(「罄」授以「回收局部」)
    于(「回收令列」于(「列」【「值桥取参」,「回收引用转」于「阴」于(「回收堆名」于『$bytes』),「回收数组长」】))
也。

「:文言:逐字而行,至长乃止,每行加一。汉语:按下标从 0 到长度逐个处理字节的循环(块 $done 包循环 $loop),体为每步要做的事。:」
「值桥逐字」乃化「回收串」而「回收串」也。
「值桥逐字」者会「体」而
  「回收串并」
    于(「列」【
      「回收令列」于(「列」【
        「回收块」于『$done』于「回收块无果」,
        「回收循环」于『$loop』于「回收块无果」,
        「回收局部取」于『$i』,
        「回收局部取」于『$n』,
        「回收整三二无符号大等」,
        「回收条件跳」于(「回收名标」于『$done』)
      】),
      「体」,
      「回收令列」于(「列」【
        「回收局部取」于『$i』,
        「回收整三二常」于「一」,
        「回收整三二加」,
        「回收局部存」于『$i』,
        「回收跳」于(「回收名标」于『$loop』),
        「回收结束」,
        「回收结束」
      】)
    】)
也。

「值桥字节出」者
  「值桥导出函数」
    于『bytes_out』
    于(「列」【「回收等引用」】)
    于(「列」【『$v』】)
    于(「罄」授以「回收值型」)
    于(「列」【『$a』与(「回收名引用」于『$bytes』),『$n』与「回收整三二」,『$i』与「回收整三二」】)
    于(「回收串并」
      于(「列」【
        「回收令列」于(「列」【
          「值桥取参」,
          「回收引用转」于「阴」于(「回收堆名」于『$bytes』),
          「回收局部暂存」于『$a』,
          「回收数组长」,
          「回收局部存」于『$n』
        】),
        「值桥逐字」于(「回收令列」
          于(「列」【
            「回收局部取」于『$i』,
            「回收局部取」于『$a』,
            「回收局部取」于『$i』,
            「回收数组取无」于『$bytes』,
            「回收整三二存八」于「零」
          】))
      】))
也。

「值桥字节入」者
  「值桥导出函数」
    于『bytes_in』
    于(「列」【「回收整三二」】)
    于(「列」【『$n』】)
    于(「列」【「回收名引用」于『$bytes』】)
    于(「列」【『$a』与(「回收名引用」于『$bytes』),『$i』与「回收整三二」】)
    于(「回收串并」
      于(「列」【
        「回收令列」于(「列」【「回收局部取」于『$n』,「回收数组新默认」于『$bytes』,「回收局部存」于『$a』】),
        「值桥逐字」于(「回收令列」
          于(「列」【
            「回收局部取」于『$a』,
            「回收局部取」于『$i』,
            「回收局部取」于『$i』,
            「回收整三二读八无」于「零」,
            「回收数组存」于『$bytes』
          】)),
          「回收单令」于(「回收局部取」于『$a』)
      】))
也。

「:文言:值桥之全模块,项之次同旧文。汉语:值桥的整个模块,项的顺序与原 WAT 相同:四个结构类型、导出的线性内存、各导出函数。:」
「回收值桥接」乃「回收项串」也。
「回收值桥接」者
  「回收项并」
    于(「列」【
      「回收项列」于(「列」【
        「回收运行时大整类型」,
        「回收运行时元组类型」,
        「回收运行时小数类型」,
        「回收运行时字节类型」,
        「回收内存项」于『$memory』于「一」于「可无」,
        「回收导出项」于『memory』于「回收出内存」于『$memory』
      】),
      「值桥种类」,
      「值桥整数」,
      「值桥新整数」,
      「值桥小数」,
      「值桥新小数」,
      「值桥元组长」,
      「值桥元组取」,
      「值桥元组存」,
      「值桥新元组」,
      「值桥字节长」,
      「值桥字节出」,
      「值桥字节入」
    】)
也。