豫言源码浏览器 / Source Browser

浏览项目文件与源码

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

寻观「编译器核心」之「编译数据」之「抽象绑定树结构」之「抽象语法树」之「总集」之书。
寻观「编译器核心」之「编译步骤」之「语法分析」之「注释操作」之书。

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

「组件表示」乃化「组件」而「字符串」也。
「组件表示」者会「组件」而
  鉴「组件」而
    有「字符串组件」于「串」则「串」
    或有「绑定组件」则『□』
    或有「元素组件」则『〇』
也。

「操作符表示」乃化「操作符」而「字符串」也。
「操作符表示」者(会「符」而
  鉴「符」而
    有「构造操作符」于「组」于「号」于「举」于「符名」则(「符名」附『(』附(「间合」
      于『』
      于((「态射」)于「组」于「组件表示」))附『)(』附(「表示」于「号」)附
        『)』))
也。

「获取标号」乃化「操作符」而「整数」也。
「获取标号」者会「符」而
  鉴「符」而
    有(「构造操作符」于「组」于「级」于「阐述」于「符名」)则「级」
也。

「获取所有组件」乃化「操作符」而「列」于「组件」也。
「获取所有组件」者会「符」而
  鉴「符」而
    有(「构造操作符」于「组」于「级」于「阐述」于「符名」)则「组」
也。

「操作符是开放的」乃化「操作符」而「爻」也。
「操作符是开放的」者会「符」而
  虑「组件们」者(「获取所有组件」于「符」)而
  虑「组件长度」者「长度」于「组件们」而
  若(「等」于「组件长度」于「零」)则
    「发生事故」于『操作符没有组件,不可检查其是否是开放的』
  否则
    (
      鉴((「第N个」授以「组件」)于「零」于「组件们」)
        与((「第N个」授以「组件」)于(「减」于「组件长度」于「一」)于「组件们」)而
        有
      「元素组件」与「其他」则「阳」
        或有「其他」与「元素组件」则
          「阳」
        或有「绑定组件」与「其他」则
          「发生事故」于『不应该出现绑定组件』
        或有「其他」与「绑定组件」则
          「发生事故」于『不应该出现绑定组件』
        或有「其他」则「阴」
    )
也。

「获取组件」乃化「操作符」而化「整数」而「组件」也。
「获取组件」者会「符」而会「序数」而
  鉴「符」而
    有(「构造操作符」于「组」于「级」于「阐述」于「符名」)则(
      若(「大于」于(「长度」于「组」)于「序数」)则
        (「第N个」授以「组件」)于「序数」于「组」
      否则
        (「发生事故」于『获取组件序数超出范围!』)
    )
也。

「获取符序组件」乃化(「操作符」合「整数」)而「组件」也。
「获取符序组件」者会「符序」而
  「获取组件」于(「符序」中「零」)于(「符序」中「一」)
也。

「组件是字符串组件」乃化「组件」而「爻」也。
「组件是字符串组件」者会「件」而
  鉴「件」而
    有「字符串组件」于「串」则「阳」
    或有「其他」则「阴」
也。

「读取组件字符串」乃化「组件」而「字符串」也。
「读取组件字符串」者会「件」而
  鉴「件」而
    有「字符串组件」于「串」则「串」
    或有「其他」则
      「发生事故」于『不是字符串组件』
也。

「获取操作符组件字符串」乃化「操作符」而化「整数」而「字符串」也。
「获取操作符组件字符串」者会「符」而会「序数」而
  鉴(「获取组件」于「符」于「序数」)而
    有「字符串组件」于「串」则「串」
    或有「其他」则
      「发生事故」于『不是字符串』
也。

「获取阐述」乃
  化「操作符」而
  (化「字符串」而化(「列」于「表达式」)而「或可有」于「表达式」)
也。
「获取阐述」者会「符」而
  鉴「符」而
    有(「构造操作符」于「组」于「级」于「阐述」于「符名」)则「阐述」
也。

「获取符名」乃化「操作符」而「字符串」也。
「获取符名」者会「符」而
  鉴「符」而
    有(「构造操作符」于「组」于「级」于「阐述」于「符名」)则「符名」
也。

「:获取操作符中的字符部分:」
「获取操作符的所有关键字」乃
  化「操作符」而
  「列」于((「操作符」合「整数」))
也。
「获取操作符的所有关键字」者(会「符」而
  鉴「符」而
    有「构造操作符」于「件们」于「标号」于「阐述」于「符名」则((「滤态射序号」授以「组件」授以(「操作符」合「整数」))
    于(会「当前索引」而会「件」而
      鉴「件」而
        有「元素组件」则「可无」
        或有「绑定组件」则「可无」
        或有「字符串组件」于「串」则
          「可有」于((「符」与「当前索引」)))于「件们」
    ))
也。

「获取操作符的开始关键字」乃
  化「操作符」而
  「列」于((「操作符」合「整数」))
也。
「获取操作符的开始关键字」者(会「符」而
  鉴「符」而
    有「构造操作符」于「件们」于「标号」于「阐述」于「符名」则(
      鉴「件们」而
        有(「缀」于(「字符串组件」于「串」)于「件们尾」)则
          ((「列」于(「操作符」合「整数」))也((「列」【(「符」与「零」)】)))
        或有「其他件们」则「罄」
    ))
也。

「获取所有开始关键词」乃
  化(「列」于「操作符」)而
  「列」于(「操作符」合「整数」)
也。
「获取所有开始关键词」者会「操列」而
  ((「串联」授以(「操作符」合「整数」))
  于((「态射」)于「操列」于(会「甲」而「获取操作符的开始关键字」于「甲」))
  )
也。

「:如果 一个操作符是 〇〇X 那我们跳过两个,返回X,序数二:」
「获取操作符的继续关键字」乃
  化「整数」而
  化「操作符」而
  「列」于((「操作符」合「整数」))
也。
「获取操作符的继续关键字」者会「跳过数」而会「符」而
  鉴「符」而
    有「构造操作符」于「件们」于「标号」于「阐述」于「符名」则(
      若(「小于」于(「跳过数」)于(「长度」于「件们」))
      则
        (
          若((「全部符合」授以「组件」)
          于(会「件」而「非」于(「组件是字符串组件」于「件」))
          于((「取」授以「组件」)于(「跳过数」)于「件们」))则(
            若(「组件是字符串组件」于((「第N个」授以「组件」)于(「跳过数」)于「件们」))
            则
              ((「列」于(「操作符」合「整数」))也((「列」【(「符」与(「跳过数」))】)))
            否则
              「罄」
          )
          否则
            「罄」
        )
      否则
        「罄」
    )
也。

「获取所有继续关键词」乃
  化「整数」而
  化(「列」于「操作符」)而
  「列」
    于(「操作符」合「整数」)
也。
「获取所有继续关键词」者会「跳过数」而会「操列」而
  ((「串联」授以(「操作符」合「整数」))
  于((「态射」)于「操列」于(会「甲」而「获取操作符的继续关键字」于「跳过数」于「甲」))
  )
也。

「获取绑定字符串」乃化「表达式」而「字符串」也。
「获取绑定字符串」者会「绑定式」而
  (
    鉴「绑定式」而
      有「自由变量」于「名」则「名」
      或有(「式节点」于(「带注释节点」于「忽略前注释」于「忽略后注释」)于((「列」【「原式」】)))则
        「获取绑定字符串」于「原式」
      或有「其他」则
        「发生事故」于『绑定的主体不是一个变量』
  )
也。

「:给定当前的组件(名称与优先级),检查下一组件是否是绑定组件,
    如果是,返回绑定的结尾组件,如果不是绑定组件,返回空。:」
「:返回的组件序数必须是序数加二:」
「获取随后的绑定信息」乃化「操作符」而化「整数」而「或可有」于(「组件」)也。
「获取随后的绑定信息」者会「符」而会「组序数」而
  鉴「符」而
    有(「构造操作符」于「组」于「级」于「阐述」于「符名」)则
      若(「小于」于(「加」于「组序数」于「二」)于(「长度」于「组」))
      则
        (
          递归虑「分析组」其化(「列」于「组件」)而「或可有」
          于(「组件」)者
            (会「甲」而
              鉴「甲」而
                「:更改:任何元素都可跟绑定组件:」
                有(「缀」于「绑定组件」于(「缀」于(「字符串组件」于「后串」)于「其他」))则
                  「可有」
                    于((「字符串组件」于「后串」))
                或有「其他」则「可无」
            )
          而
          虑「结果」者
            「分析组」于((「放」授以「组件」)于(「加」于「组序数」于「一」)于「组」)
          而
          「结果」
        )
      否则
        「可无」
也。

「栈素表示」乃化「栈素」而「字符串」也。
「栈素表示」者
  会「素」而
  鉴「素」而
    有(「栈操作符」于「符序们」于「关键词」)则
      『操作符(』附(「间合」
        于『,』
        于((「态射」)
        于「符序们」
        于(会
          「符序」而(「操作符表示」于((「二对子取零」授以「操作符」授以「整数」)于「符序」))附
            『.』附(「表示」于((「二对子取一」授以「操作符」授以「整数」)于「符序」)))
        ))
        附『):』附(
          若(「大于」于(「长度」于「符序们」)于「零」)则
            (「组件表示」于(「获取符序组件」于((「第N个」授以(「操作符」合「整数」))于「零」于「符序们」)))
          否则
            『』
        )附『|』
    或有(「栈绑定」于「串」于「忽略前注释」于「忽略后注释」)则
      『绑定:』附「串」附『|』
    或有「栈文件结尾」则『EOF』
    或有「栈式」于「式」于「忽略标记们」则
      『式:』附(「表达式表示」于「式」)附『|』
    或有「其他」则
      「发生事故」于『未有36』
也。

「栈表示」乃化(「列」于「栈素」)而「字符串」也。
「栈表示」者会「栈」而
  『(已反转)』附(「间合」于『··』于((「态射」)于((「反转」授以「栈素」)于「栈」)于「栈素表示」))
也。