豫言源码浏览器 / Source Browser

浏览项目文件与源码

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

寻观「编译器核心」之「编译步骤」之「语法分析」之「具体语法树」之书。

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

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

「:因为cps有bug,原因:unification的时候会生成语法分析树而非结构语法之语法分析树的参数:」
「: 语法分析树即结构语法之语法分析树也。 :」
「令符」立「元类型」也。
  「令符开始」立「令符」也。

「令符表示」乃化「令符」而「字符串」也。
「令符表示」者会「符」而
  鉴「符」而
    有「令符开始」则『(开始符)』
    或有「其他」则『未有25』
也。

「解析转义序列」乃化「字符串」而「字符串」也。
「解析转义序列」者会「甲」而
  鉴「甲」而
    有『「:』:」』则『「:』:」』
    或有『「:「::」』则『「:「::」』
    或有『换行』则『「:换行:」』
    或有『制表』则『「:制表:」』
    或有「其他」则
      「发生事故」于『无法识别的转义序列:(开始)』附「甲」附『(结束)』
也。

「扫描词法转义序列」乃
  化(「列」于「字符串」)而
  (「字符串」合(「列」于「字符串」))
也。
「扫描词法转义序列」者会「输入」而
  递归虑「扫描」其化「字符串」而化(「列」于「字符串」)而(「字符串」合(「列」于「字符串」))者
    会「当前序列」而会「剩余输入」而
      鉴「剩余输入」而
        有「罄」则「发生事故」于『未关闭的字符串转义序列』
        或有(「缀」于『:』于(「缀」于『」』于「输入尾」))则
          (「解析转义序列」于「当前序列」)与「输入尾」
        或有(「缀」于「当前字符」于「输入尾」)则
          「扫描」于(「当前序列」附「当前字符」)于「输入尾」
  而
  「扫描」于『』于「输入」
也。

「:文言:串亦积片,末乃合之。汉语:字符串与标识符采用片段累积,保证长源码快照的线性扫描成本。:」
「扫描词法字符串」乃
  化(「列」于「字符串」)而
  (「表达式」合(「列」于「字符串」))
也。
「扫描词法字符串」者会「输入」而
  递归虑「扫描」其化(「列」于「字符串」)而化(「列」于「字符串」)而(「表达式」合(「列」于「字符串」))者
    会「当前串」而会「剩余输入」而
      鉴「剩余输入」而
        有「罄」则「发生事故」于『未关闭的字符串』
        或有(「缀」于『「:』:」』于「输入尾」)则
          (「式节点」于(「字符串节点」于(「串组合并」于(「反转」授以「字符串」于「当前串」)))于「罄」)
            与「输入尾」
        或有(「缀」于『「』于(「缀」于『:』于「输入尾」))
        则(
          虑「转义及后」者(「扫描词法转义序列」于「输入尾」)而
          「扫描」
            于(「缀」于(「转义及后」中「零」)于「当前串」)
            于(「转义及后」中「一」)
        )
        或有(「缀」于「当前字符」于「输入尾」)则
          「扫描」于(「缀」于「当前字符」于「当前串」)于「输入尾」
  而
  「扫描」于「罄」于「输入」
也。

「扫描词法注释」乃
  化(「列」于「字符串」)而
  (「字符串」合(「列」于「字符串」)合「爻」)
也。 「:注释文字、剩余输入、是否含换行;文字不含最外层定界符。:」
「扫描词法注释」者会「输入」而
  递归虑「扫描」其化「字符串」而化「整数」而化「爻」而化(「列」于「字符串」)而(「字符串」合(「列」于「字符串」)合
      「爻」)者
        会「当前文字」而会「嵌套深度」而会「含换行」而会「剩余输入」而
          鉴「剩余输入」而
            有「罄」则「发生事故」
              于『未关闭的注释』
            或有(「缀」于『「』于(「缀」于『:』于「输入尾」))则
              「扫描」
                于(「当前文字」附『「』附『:』)
                于(「加」于「嵌套深度」于「一」)
                于「含换行」
                于「输入尾」
            或有(「缀」于『:』于(「缀」于『」』于「输入尾」))则
              若(「等」于「嵌套深度」于「零」)
              则
                「当前文字」与「输入尾」与「含换行」
              否则
                「扫描」
                  于(「当前文字」附『:』附『」』)
                  于(「减」于「嵌套深度」于「一」)
                  于「含换行」
                  于
                  「输入尾」
            或有(「缀」于『「:换行:」』于「输入尾」)则
              「扫描」
                于(「当前文字」附『「:换行:」』)
                于「嵌套深度」
                于「阳」于「输入尾」
            或有(「缀」于「其他」于「输入尾」)则
              「扫描」
                于(「当前文字」附「其他」)
                于「嵌套深度」于「含换行」于「输入尾」
  而
  「扫描」于『』于「零」于「阴」于「输入」
也。

「扫描词法标识符」乃
  化(「列」于「字符串」)而
  (「表达式」合(「列」于「字符串」))
也。
「扫描词法标识符」者会「输入」而
  递归虑「扫描」其化(「列」于「字符串」)而化(「列」于「字符串」)而(「表达式」合(「列」于「字符串」))者
    会「当前名称」而会「剩余输入」而
      鉴「剩余输入」而
        有「罄」则「发生事故」于『未关闭的标识符』
        或有(「缀」于『」』于「输入尾」)则
          (「自由变量」于(「串组合并」于(「反转」授以「字符串」于「当前名称」)))
            与「输入尾」
        或有(「缀」于「当前字符」于「输入尾」)则
          「扫描」于(「缀」于「当前字符」于「当前名称」)于「输入尾」
  而
  「扫描」于「罄」于「输入」
也。

「栈素」即(「令符」
  合(「列」于「表达式」) 「:文言:逆存词,末乃反之。汉语:令牌逆序积累,完成时反转,避免反复复制前缀。:」
)也。

「词法栈素表示」乃化「栈素」而「字符串」也。
「词法栈素表示」者会「素」而
  (「令符表示」于(「素」中「零」))附『++』附(「表达式列表示」于(「素」中「一」))
也。

「词法解析」乃
  化(「列」于「栈素」)而
  化(「列」于「字符串」) 「: 输入 :」而
  化「爻」 「:当前行是否已有语法元素:」而
  「列」于「表达式」
也。

「词法解析」者会「栈」而会「输入」而会「行中已有元素」而
  虑「递归」者「词法解析」而
  虑「无」者
    「非常详细调试打印行」于(会「无」而『词法解析,【输入】:』附(「间合」于『·』于「输入」)附
      『    ||  【栈】:』附(「间合」于『|||||』于((「态射」)于「栈」于「词法栈素表示」)))而
  鉴「栈」与「输入」而

    「:开始 :」
    有「罄」与「乙丑」则「递归」
      于((「列」【(「栈素」也「令符开始」与「罄」)】))
      于「乙丑」于「阴」
    或有((「列」【(「令符开始」与「当前所有」)】))与「罄」
    「:结束 :」
则(「反转」授以「表达式」于「当前所有」)

  「:注释:」
    或有(「缀」于(「令符开始」与「前输入」)于「栈尾」)与(「缀」于『「』于(「缀」于『:』于「输入尾」))
    则(
      虑「注释及后」者(「扫描词法注释」于「输入尾」)而
      虑「方向」者(若「行中已有元素」则「后置注释」否则「前置注释」)
      而
      虑「新输入」者
        (「缀」于(「式节点」于(「词法注释节点」于(「注释及后」中「零」)于「方向」)于「罄」)于「前输入」)
      而
      「递归」
        于(「缀」于(「栈素」也「令符开始」与「新输入」)于「栈尾」)
        于(「注释及后」中「一」)
        于(若(「注释及后」中「二」)则「阴」否则「行中已有元素」)
    )

  「:字符串:」
    或有(「缀」于(「令符开始」与「前输入」)于「栈尾」)与(「缀」于『『』于「输入尾」)
    则(
      虑「字符串及后」者(「扫描词法字符串」于「输入尾」)而
      「递归」
        于(「缀」于(「栈素」也「令符开始」与(「缀」于(「字符串及后」中「零」)于「前输入」))于「栈尾」)
        于(「字符串及后」中「一」)于「阳」
    )

  「:标识符:」
    或有(「缀」于(「令符开始」与「前输入」)于「栈尾」)与(「缀」于『「』于「输入尾」)
    则(
      虑「标识符及后」者(「扫描词法标识符」于「输入尾」)而
      「递归」
        于(「缀」于(「栈素」也「令符开始」与(「缀」于(「标识符及后」中「零」)于「前输入」))于「栈尾」)
        于(「标识符及后」中「一」)于「阳」
    )

  「: 跳过空白 :」
    或有(「缀」于(「令符开始」与「当前输入」)于「栈尾」)与(「缀」于『「:换行:」』于「输入尾」)
    则
      「递归」
        于(「缀」于(「栈素」也「令符开始」与「当前输入」)于「栈尾」)
        于「输入尾」于「阴」
    或有(「缀」于(「令符开始」与「当前输入」)于「栈尾」)与(「缀」于『「:制表:」』于「输入尾」)
    则
      「递归」
        于(「缀」于(「栈素」也「令符开始」与「当前输入」)于「栈尾」)
        于「输入尾」于「行中已有元素」
    或有(「缀」于(「令符开始」与「当前输入」)于「栈尾」)与(「缀」于『 』于「输入尾」)
    则
      「递归」
        于(「缀」于(「栈素」也「令符开始」与「当前输入」)于「栈尾」)
        于「输入尾」
        于「行中已有元素」

  「: 普通字符 :」
    或有(「缀」于(「令符开始」与「当前输入」)于「栈尾」)与(「缀」于「其他」于「输入尾」)
    则
      「递归」
        于(「缀」
          于(「栈素」也「令符开始」与(「缀」于(「式节点」于(「具体字符节点」于「其他」)于「罄」)于「当前输入」))
          于「栈尾」)
          于「输入尾」
          于「阳」
    或有(「缀」于(「令符开始」与「当前输入」)于「栈尾」)与「输入尾」
    则
      「发生事故」
        于『未关闭的开始符号:』附(「令符表示」于「令符开始」)附『「:换行:」剩余输入:』附(「合并」于「输入尾」)附
          『当前输入:』附(「表达式列表示」于「当前输入」)
也。

「词法解析顶层」乃化「字符串」而「列」于「表达式」也。
「词法解析顶层」者会「内容串」而
  虑「字符们」者「获取字符」于「内容串」而
  (「词法解析」于「罄」于「字符们」于「阴」)
也。