豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 459 行 · 23189 字节 · UTF-8
§
「:
构建期源码高亮器。

输入源码文字与语言名称,输出已经转义的超文本片段。浏览器只接收静态
HTML 与 CSS,不需要执行脚本。豫言词法规则优先完整处理嵌套注释、
字符串、内建调用、标识与关键字;常见文本语言使用保守的通用词法规则。
:」

寻观「标准库」之「豫言标准内核」之书。
寻观「标准库」之「数据结构」之「整数操作」之书。
寻观「标准库」之「数据结构」之「字符串术」之书。
寻观「标准库」之「数据结构」之「多态列」之书。
寻观「标准库」之「数据结构」之「可选值」之书。
寻观「标准库」之「数据结构」之「特殊字符」之书。
寻观「网页客户端」之「核心」之书。

「扫描片段」即
  「字符串」 「:文字:」
  合
    (「列」于「字符串」) 「:余下字符:」
也。

「豫言注释开头」乃「字符串」也。
「豫言注释开头」者『「』附『:』也。

「豫言注释结尾」乃「字符串」也。
「豫言注释结尾」者『:』附『」』也。

「豫言字符串结尾」乃「字符串」也。
「豫言字符串结尾」者『「:』:」』也。

「字符列起于」乃化(「列」于「字符串」)而化(「列」于「字符串」)而「爻」也。
「字符列起于」者会「标记」而会「字符们」而
  鉴「标记」与「字符们」而
    有「罄」与「其他」则「阳」
    或有(「缀」于「标记头」于「标记尾」)与(「缀」于「字符头」于「字符尾」)则
      若「字符串相等吗」于「标记头」于「字符头」则「字符列起于」于「标记尾」于「字符尾」否则「阴」
    或有「其他」则「阴」
也。

「文字起于」乃化「字符串」而化(「列」于「字符串」)而「爻」也。
「文字起于」者会「标记」而会「字符们」而
  「字符列起于」于(「获取字符」于「标记」)于「字符们」
也。

「去掉前字符」乃化「整数」而化(「列」于「字符串」)而(「列」于「字符串」)也。
「去掉前字符」者会「数量」而会「字符们」而
  若「等于」于「数量」于「零」则「字符们」否则
    鉴「字符们」而
      有「罄」则「罄」
      或有(「缀」于「当前」于「余下」)则
        「去掉前字符」于(「减」于「数量」于「一」)于「余下」
也。

「完成扫描片段」乃
  化(「列」于「字符串」)而
  化(「列」于「字符串」)而
  「扫描片段」
也。
「完成扫描片段」者会「倒序文字」而会「余下」而
  (「串组合并」于((「反转」授以「字符串」)于「倒序文字」))与「余下」
也。

「扫描至标记」乃
  化「字符串」而
  化(「列」于「字符串」)而
  化(「列」于「字符串」)而
  「扫描片段」
也。
「扫描至标记」者会「结束标记」而会「字符们」而会「倒序文字」而
  若「文字起于」于「结束标记」于「字符们」
  则
    「完成扫描片段」
      于(「缀」于「结束标记」于「倒序文字」)
      于(「去掉前字符」于(「串长度」于「结束标记」)于「字符们」)
  否则
    鉴「字符们」而
      有「罄」则「完成扫描片段」于「倒序文字」于「罄」
      或有(「缀」于「当前」于「余下」)则
        「扫描至标记」于「结束标记」于「余下」于(「缀」于「当前」于「倒序文字」)
也。

「扫描豫言字符串」乃
  化(「列」于「字符串」)而
  化(「列」于「字符串」)而
  「扫描片段」
也。
「扫描豫言字符串」者会「字符们」而会「倒序文字」而
  若「文字起于」于「豫言注释开头」于「字符们」则
    虑「转义结果」者
      「扫描至标记」于「豫言注释结尾」于(「去掉前字符」于「二」于「字符们」)
      于((「列」【「豫言注释开头」】))
    而
    「扫描豫言字符串」于(「转义结果」中「一」)于(「缀」于(「转义结果」中「零」)于「倒序文字」)
  否则
    鉴「字符们」而
      有「罄」则「完成扫描片段」于「倒序文字」于「罄」
      或有(「缀」于「当前」于「余下」)则
        若「字符串相等吗」于「当前」于「豫言字符串结尾」
        则
          「完成扫描片段」于(「缀」于「当前」于「倒序文字」)于「余下」
        否则
          「扫描豫言字符串」于「余下」于(「缀」于「当前」于「倒序文字」)
也。

「扫描豫言注释」乃
  化「整数」而
  化(「列」于「字符串」)而
  化(「列」于「字符串」)而
  「扫描片段」
也。
「扫描豫言注释」者会「深度」而会「字符们」而会「倒序文字」而
  若「文字起于」于「豫言注释开头」于「字符们」
  则
    「扫描豫言注释」
      于(「加」于「深度」于「一」)
      于(「去掉前字符」于「二」于「字符们」)
      于(「缀」于「豫言注释开头」于「倒序文字」)
  否则若「文字起于」于「豫言注释结尾」于「字符们」
  则
    若「等于」于「深度」于「一」
    则
      「完成扫描片段」于(「缀」于「豫言注释结尾」于「倒序文字」)
      于(「去掉前字符」于「二」于「字符们」)
    否则
      「扫描豫言注释」
        于(「减」于「深度」于「一」)
        于(「去掉前字符」于「二」于「字符们」)
        于(「缀」于「豫言注释结尾」于「倒序文字」)
  否则
    鉴「字符们」而
      有「罄」则「完成扫描片段」于「倒序文字」于「罄」
      或有(「缀」于「当前」于「余下」)则
        「扫描豫言注释」于「深度」于「余下」于(「缀」于「当前」于「倒序文字」)
也。

「字符属于」乃化「字符串」而化(「列」于「字符串」)而「爻」也。
「字符属于」者会「字符」而会「候选们」而
  鉴「候选们」而
    有「罄」则「阴」
    或有(「缀」于「当前」于「余下」)则
      若「字符串相等吗」于「字符」于「当前」则「阳」否则「字符属于」于「字符」于「余下」
也。

「数字字符」乃化「字符串」而「爻」也。
「数字字符」者会「字符」而
  「字符属于」于「字符」于(「获取字符」于『零一二三四五六七八九〇两0123456789』)
也。

「通用词字符」乃化「字符串」而「爻」也。
「通用词字符」者会「字符」而
  若「非」于(「等于」于(「字节长度」于「字符」)于「一」)则
    「阴」
  否则
    虑「码」者「字符转整数」于「字符」于「零」而
    「或者」
      于(「且」于(「非」于(「小于」于「码」于「四八」))于(「非」于(「大于」于「码」于「五七」)))
      于(「或者」
        于(「且」于(「非」于(「小于」于「码」于「六五」))于(「非」于(「大于」于「码」于「九零」)))
        于(「或者」
          于(「且」于(「非」于(「小于」于「码」于「九七」))于(「非」于(「大于」于「码」于「一二二」)))
          于(「字符串相等吗」于「字符」于『_』)))
也。

「扫描连续字符」乃
  化(化「字符串」而「爻」)而
  化(「列」于「字符串」)而
  化(「列」于「字符串」)而
  「扫描片段」
也。
「扫描连续字符」者会「接纳」而会「字符们」而会「倒序文字」而
  鉴「字符们」而
    有「罄」则「完成扫描片段」于「倒序文字」于「罄」
    或有(「缀」于「当前」于「余下」)则
      若「接纳」于「当前」则
        「扫描连续字符」于「接纳」于「余下」于(「缀」于「当前」于「倒序文字」)
      否则
        「完成扫描片段」于「倒序文字」于「字符们」
也。

「匹配开头词」乃
  化(「列」于「字符串」)而
  化(「列」于「字符串」)而
  (「或可有」于「字符串」)
也。
「匹配开头词」者会「候选们」而会「字符们」而
  鉴「候选们」而
    有「罄」则「可无」
    或有(「缀」于「当前」于「余下」)则
      若「文字起于」于「当前」于「字符们」则「可有」于「当前」否则「匹配开头词」于「余下」于「字符们」
也。

「文字在列中」乃化「字符串」而化(「列」于「字符串」)而「爻」也。
「文字在列中」者会「文字值」而会「候选们」而
  鉴「候选们」而
    有「罄」则「阴」
    或有(「缀」于「当前」于「余下」)则
      若「字符串相等吗」于「文字值」于「当前」则「阳」否则「文字在列中」于「文字值」于「余下」
也。

「以空格分词」乃化「字符串」而(「列」于「字符串」)也。
「以空格分词」者会「文字值」而
  「态射」授以(「列」于「字符串」)授以「字符串」
    于(「元素分隔」授以「字符串」于(会「字符」而「字符串相等吗」于「字符」于『 』)于(「获取字符」于「文字值」))
    于「通字符转串」
也。

「结构词们」乃「列」于「字符串」也。
「结构词们」者
  「以空格分词」
    于
    『的类型可以是 导入并导出 导入并打开 的定义是 的类型是 其实就是 寻观诵 递归虑 寻观 寻诵 观诵 是一种 之书 打开 导入 导出 函数 否则 者 立 乃 即 号』
也。

「类型词们」乃「列」于「字符串」也。
「类型词们」者「以空格分词」于『结合 中的 承 从 到 自 合 之 的 化』也。

「关键词们」乃「列」于「字符串」也。
「关键词们」者
  「以空格分词」
    于
    『执行如下计算 实际上是 遇到了 得到了 使用于 如果是 参数是 授以 给予 随后 如果 那么 或者 分析 递归 连结 其实 会 遇 循 以 受 虑 其 让 为 于 与 附 中 有 则 或 鉴 若 传 而 也』
也。

「通用关键词们」乃「列」于「字符串」也。
「通用关键词们」者
  「以空格分词」
    于
    『function interface package return import export struct async await class const while false true null None True False from match case enum impl type func else let var def lambda for use pub fn if』
也。

「着色」乃化「字符串」而化「字符串」而「字符串」也。
「着色」者会「类别」而会「文字值」而
  『<span class="tok-』附「类别」附『">』附(「转义网页文字」于「文字值」)附『</span>』
也。

「加入着色」乃
  化「字符串」而
  化「字符串」而
  化(「列」于「字符串」)而
  (「列」于「字符串」)
也。
「加入着色」者会「类别」而会「文字值」而会「倒序片段」而
  「缀」于(「着色」于「类别」于「文字值」)于「倒序片段」
也。

「加入原文」乃化「字符串」而化(「列」于「字符串」)而(「列」于「字符串」)也。
「加入原文」者会「文字值」而会「倒序片段」而
  「缀」于(「转义网页文字」于「文字值」)于「倒序片段」
也。

「高亮豫言字符」乃
  化(「列」于「字符串」)而
  化(「列」于「字符串」)而
  「字符串」
也。
「高亮豫言字符」者会「字符们」而会「倒序片段」而
  鉴「字符们」而
    有「罄」则「串组合并」于((「反转」授以「字符串」)于「倒序片段」)
    或有(「缀」于「当前」于「余下」)则
      若「文字起于」于「豫言注释开头」于「字符们」则
        虑「结果」者
          「扫描豫言注释」
            于「一」
            于(「去掉前字符」于「二」于「字符们」)
            于((「列」【「豫言注释开头」】))
        而
        「高亮豫言字符」于(「结果」中「一」)于(「加入着色」于『comment』于(「结果」中「零」)于「倒序片段」)
      否则若「字符串相等吗」于「当前」于『『』则
        虑「结果」者「扫描豫言字符串」于「余下」于(「列」【『『』】)而
        「高亮豫言字符」于(「结果」中「一」)于(「加入着色」于『string』于(「结果」中「零」)于「倒序片段」)
      否则若「文字起于」于『《《』于「字符们」则
        虑「结果」者
          「扫描至标记」
            于『》》』
            于(「去掉前字符」于「二」于「字符们」)
            于(「列」【『《《』】)
        而
        「高亮豫言字符」于(「结果」中「一」)于(「加入着色」于『builtin』于(「结果」中「零」)于「倒序片段」)
      否则若「字符串相等吗」于「当前」于『《』则
        虑「结果」者
          「扫描至标记」于『》』于「余下」于(「列」【『《』】)
        而
        「高亮豫言字符」于(「结果」中「一」)于(「加入着色」于『label』于(「结果」中「零」)于「倒序片段」)
      否则若「字符串相等吗」于「当前」于『「』则
        虑「结果」者
          「扫描至标记」于『」』于「余下」于(「列」【『「』】)
        而
        「高亮豫言字符」于(「结果」中「一」)于(「加入着色」于『identifier』于(「结果」中「零」)于「倒序片段」)
      否则若「数字字符」于「当前」则
        虑「结果」者
          「扫描连续字符」
            于(会「字符」而「或者」
              于(「数字字符」于「字符」)
              于(「或者」于(「字符串相等吗」于「字符」于『.』)于(「字符串相等吗」于「字符」于『点』)))
              于「字符们」于「罄」
        而
        「高亮豫言字符」于(「结果」中「一」)于(「加入着色」于『number』于(「结果」中「零」)于「倒序片段」)
      否则若「等于」于(「字节长度」于「当前」)于「一」则
        「高亮豫言字符」于「余下」于(「加入原文」于「当前」于「倒序片段」)
      否则
        鉴「匹配开头词」于「结构词们」于「字符们」而
          有(「可有」于「词」)则
            「高亮豫言字符」
              于(「去掉前字符」于(「串长度」于「词」)于「字符们」)
              于(「加入着色」于『structure』于「词」于「倒序片段」)
          或有「可无」则
            鉴「匹配开头词」于「类型词们」于「字符们」而
              有(「可有」于「词」)则
                「高亮豫言字符」
                  于(「去掉前字符」于(「串长度」于「词」)于「字符们」)
                  于(「加入着色」于『type』于「词」于「倒序片段」)
              或有「可无」则
                鉴「匹配开头词」于「关键词们」于「字符们」而
                  有(「可有」于「词」)则
                    「高亮豫言字符」
                      于(「去掉前字符」于(「串长度」于「词」)于「字符们」)
                      于(「加入着色」于『keyword』于「词」于「倒序片段」)
                  或有「可无」则
                    虑「类别」者
                      若「字符属于」
                        于「当前」
                        于(「获取字符」于『():」【】,。;』)则
                          『punctuation』
                      否则
                        『plain』
                    而
                    若「字符串相等吗」于「类别」于『plain』
                    则
                      「高亮豫言字符」
                        于「余下」
                        于(「加入原文」于「当前」于「倒序片段」)
                    否则
                      「高亮豫言字符」
                        于「余下」
                        于(「加入着色」于「类别」于「当前」于「倒序片段」)
也。

「扫描通用字符串」乃
  化「字符串」而
  化(「列」于「字符串」)而
  化(「列」于「字符串」)而
  化「爻」而
  「扫描片段」
也。
「扫描通用字符串」者会「结束字符」而会「字符们」而会「倒序文字」而会「已转义」而
  鉴「字符们」而
    有「罄」则「完成扫描片段」于「倒序文字」于「罄」
    或有(「缀」于「当前」于「余下」)则
      若「且」于(「非」于「已转义」)于(「字符串相等吗」于「当前」于「结束字符」)
      则
        「完成扫描片段」于(「缀」于「当前」于「倒序文字」)于「余下」
      否则
        「扫描通用字符串」
          于「结束字符」
          于「余下」
          于(「缀」于「当前」于「倒序文字」)
          于(「且」于(「非」于「已转义」)于(「字符串相等吗」于「当前」于『\』))
也。

「高亮通用字符」乃
  化(「列」于「字符串」)而
  化(「列」于「字符串」)而
  化「爻」而
  「字符串」
也。
「高亮通用字符」者会「字符们」而会「倒序片段」而会「井号注释」而
  鉴「字符们」而
    有「罄」则「串组合并」于((「反转」授以「字符串」)于「倒序片段」)
    或有(「缀」于「当前」于「余下」)则
      若「文字起于」于『/*』于「字符们」则
        虑「结果」者
          「扫描至标记」
            于『*/』
            于(「去掉前字符」于「二」于「字符们」)
            于(「列」【『/*』】)
        而
        「高亮通用字符」
          于(「结果」中「一」)
          于(「加入着色」于『comment』于(「结果」中「零」)于「倒序片段」)
          于「井号注释」
      否则若「文字起于」于『//』于「字符们」则
        虑「结果」者
          「扫描至标记」
            于「新行」
            于(「去掉前字符」于「二」于「字符们」)
            于(「列」【『//』】)
        而
        「高亮通用字符」
          于(「结果」中「一」)
          于(「加入着色」于『comment』于(「结果」中「零」)于「倒序片段」)
          于「井号注释」
      否则若「且」于「井号注释」于(「字符串相等吗」于「当前」于『#』)则
        虑「结果」者
          「扫描至标记」于「新行」于「余下」于(「列」【『#』】)
        而
        「高亮通用字符」
          于(「结果」中「一」)
          于(「加入着色」于『comment』于(「结果」中「零」)于「倒序片段」)
          于「井号注释」
      否则若「字符属于」于「当前」于(「获取字符」于『'"`』)则
        虑「结果」者
          「扫描通用字符串」于「当前」于「余下」于(「列」【「当前」】)于「阴」
        而
        「高亮通用字符」
          于(「结果」中「一」)
          于(「加入着色」于『string』于(「结果」中「零」)于「倒序片段」)
          于「井号注释」
      否则若「且」
        于(「等于」于(「字节长度」于「当前」)于「一」)
        于(「且」
          于(「非」于(「小于」于(「字符转整数」于「当前」于「零」)于「四八」))
          于(「非」于(「大于」于(「字符转整数」于「当前」于「零」)于「五七」)))则
            虑「结果」者
              「扫描连续字符」
                于(会「字符」而「或者」于(「数字字符」于「字符」)于(「字符串相等吗」于「字符」于『.』))
                于「字符们」于「罄」
            而
            「高亮通用字符」
              于(「结果」中「一」)
              于(「加入着色」于『number』于(「结果」中「零」)于「倒序片段」)
              于「井号注释」
      否则若「通用词字符」于「当前」则
        虑「结果」者「扫描连续字符」于「通用词字符」于「字符们」于「罄」而
        虑「词」者「结果」中「零」而
        虑「类别」者
          若「文字在列中」于「词」于「通用关键词们」则
            『keyword』
          否则
            『plain』
        而
        若「字符串相等吗」于「类别」于『plain』
        则
          「高亮通用字符」
            于(「结果」中「一」)
            于(「加入原文」于「词」于「倒序片段」)于「井号注释」
        否则
          「高亮通用字符」
            于(「结果」中「一」)
            于(「加入着色」于「类别」于「词」于「倒序片段」)于「井号注释」
      否则
        「高亮通用字符」于「余下」于(「加入原文」于「当前」于「倒序片段」)于「井号注释」
也。

「高亮源码」乃化「字符串」而化「字符串」而「字符串」也。
「高亮源码」者会「源码」而会「语言」而
  若「字符串相等吗」于「语言」于『yuyan』
  则
    「高亮豫言字符」于(「获取字符」于「源码」)于「罄」
  否则
    「高亮通用字符」
      于(「获取字符」于「源码」)
      于「罄」
      于(「或者」
        于(「字符串相等吗」于「语言」于『python』)
        于(「或者」
          于(「字符串相等吗」于「语言」于『shell』)
          于(「或者」于(「字符串相等吗」于「语言」于『yaml』)于(「字符串相等吗」于「语言」于『toml』))))
也。