豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 308 行 · 16786 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「特殊字符」之书。
寻观「双宿主构建」之「文本工具」之书。

「:文言:此篇纯函数,唯解包描述之三事:名称、所有者、依赖;不涉磁盘。先切为词而弃注释与空白,只认最外层之字段。汉语:包描述解析器。把包描述文本切成词(标识符、字符串、其他单个符号;注释与空白丢弃),只在最外层(不在方括号内)查找名称、所有者与依赖三个字段。词法规则与编译器一致:注释可以嵌套,字符串内的转义序列不是注释。:」

「包描述」即
  「字符串」
  合「字符串」
  合(「列」于「字符串」)
也。

「包描述名称」乃化「包描述」而「字符串」也。
「包描述名称」者会「描述」而
  「描述」中「零」
也。

「包描述所有者」乃化「包描述」而「字符串」也。
「包描述所有者」者会「描述」而
  「描述」中「一」
也。

「包描述依赖们」乃化「包描述」而(「列」于「字符串」)也。
「包描述依赖们」者会「描述」而
  「描述」中「二」
也。

「:文言:词有三种:名、串、符。汉语:词法单元:标识符、字符串、其他单个符号。:」
「包词」立「元类型」也。
  「名词」立化「字符串」而「包词」也。
  「串词」立化「字符串」而「包词」也。
  「符词」立化「字符串」而「包词」也。

「空白字符吗」乃化「字符串」而「爻」也。
「空白字符吗」者会「字」而
  「或者」
    于(「字符串相等吗」于「字」于『 』)
    于(「或者」
      于(「字符串相等吗」于「字」于「新行」)
      于(「或者」
        于(「字符串相等吗」于「字」于「制表符」)
        于(「或者」于(「字符串相等吗」于「字」于「回车」)于(「字符串相等吗」于「字」于『 』))))
也。

「:文言:注释可嵌套;入其中而深度自零起,遇结束符而深为零则出。汉语:跳过注释:输入是注释开始符之后的字符,返回与之配对的结束符之后的剩余字符;嵌套的开始符使深度加一,结束符使深度减一。:」
「跳过注释」乃化(「列」于「字符串」)而化「整数」而(「列」于「字符串」)也。
「跳过注释」者会「输入」而会「深度」而
  鉴「输入」而
    有「罄」则「发生事故」于『包描述含未关闭的注释』
    或有(「缀」于『「』于(「缀」于『:』于「尾」))则
      「跳过注释」于「尾」于(「加」于「深度」于「一」)
    或有(「缀」于『:』于(「缀」于『」』于「尾」))则
      若「等于」于「深度」于「零」则
        「尾」
      否则
        「跳过注释」
          于「尾」
          于(「减」于「深度」于「一」)
    或有(「缀」于「字」于「尾」)则
      「跳过注释」于「尾」于「深度」
也。

「:文言:读标识符至右角括号止。汉语:读取标识符内容(不含定界符),返回内容与剩余输入;已读字符逆序累积。:」
「读标识符」乃
  化(「列」于「字符串」)而
  化(「列」于「字符串」)而
  (「字符串」合(「列」于「字符串」))
也。
「读标识符」者会「已读」而会「输入」而
  鉴「输入」而
    有「罄」则「发生事故」于『包描述含未关闭的标识符』
    或有(「缀」于『」』于「尾」)则(「串组合并」于(「反转」授以「字符串」于「已读」))
      与「尾」
    或有(「缀」于「字」于「尾」)则
      「读标识符」于(「缀」于「字」于「已读」)于「尾」
也。

「:文言:字符串内之转义,连其结束符而抄之,勿使其中之右引号早终字符串。汉语:读取字符串转义序列:输入是转义开始符之后的字符,把转义原样(含结束符)压入逆序的已读字符,返回新的已读字符与剩余输入。:」
「读转义」乃
  化(「列」于「字符串」)而
  化(「列」于「字符串」)而
  ((「列」于「字符串」)合(「列」于「字符串」))
也。
「读转义」者会「已读」而会「输入」而
  鉴「输入」而
    有「罄」则「发生事故」于『包描述含未关闭的字符串转义』
    或有(「缀」于『:』于(「缀」于『」』于「尾」))则(「缀」于『」』于(「缀」于『:』于「已读」))
      与「尾」
    或有(「缀」于「字」于「尾」)则
      「读转义」于(「缀」于「字」于「已读」)于「尾」
也。

「:文言:读字符串至未转义之右引号止。汉语:读取字符串内容(不含定界符,转义序列原样保留),返回内容与剩余输入。:」
「读字符串」乃
  化(「列」于「字符串」)而
  化(「列」于「字符串」)而
  (「字符串」合(「列」于「字符串」))
也。
「读字符串」者会「已读」而会「输入」而
  鉴「输入」而
    有「罄」则「发生事故」于『包描述含未关闭的字符串』
    或有(「缀」于『「:』:」』于「尾」)则(「串组合并」于(「反转」授以「字符串」于「已读」))
      与「尾」
    或有(「缀」于『「』于(「缀」于『:』于「尾」))则(
      虑「转义结果」者
        「读转义」于(「缀」于『:』于(「缀」于『「』于「已读」))于「尾」
      而
      「读字符串」于(「转义结果」中「零」)于(「转义结果」中「一」)
    )
    或有(「缀」于「字」于「尾」)则
      「读字符串」于(「缀」于「字」于「已读」)于「尾」
也。

「:文言:左角括号之后随冒号者为注释,弃之;否则为标识符。汉语:处理以左角括号开头的位置:紧随全角冒号时是注释,产出零个词;否则读标识符,产出一个名词。返回产出的词与剩余输入。:」
「词化左角」乃
  化(「列」于「字符串」)而
  ((「列」于「包词」)合(「列」于「字符串」))
也。
「词化左角」者会「尾」而
  鉴「尾」而
    有(「缀」于『:』于「后」)则(「罄」授以「包词」)与(「跳过注释」于「后」于「零」)
    或有「其他」则(
      虑「结果」者「读标识符」于(「罄」授以「字符串」)于「尾」而
      (「缀」于(「名词」于(「结果」中「零」))于(「罄」授以「包词」))与(「结果」中「一」)
    )
也。

「词化串」乃
  化(「列」于「字符串」)而
  ((「列」于「包词」)合(「列」于「字符串」))
也。
「词化串」者会「尾」而
  虑「结果」者「读字符串」于(「罄」授以「字符串」)于「尾」而
  (「缀」于(「串词」于(「结果」中「零」))于(「罄」授以「包词」))与(「结果」中「一」)
也。

「:文言:逐字切词。汉语:把字符列表切成词列表。:」
「词法」乃化(「列」于「字符串」)而(「列」于「包词」)也。
「词法」者会「输入」而
  鉴「输入」而
    有「罄」则「罄」授以「包词」
    或有(「缀」于「字」于「尾」)则
      若「空白字符吗」于「字」则「词法」于「尾」
      否则若「字符串相等吗」于「字」于『「』则(
        虑「结果」者「词化左角」于「尾」而
        「附加」授以「包词」
        于(「结果」中「零」)
        于(「词法」于(「结果」中「一」))
      )
      否则若「字符串相等吗」于「字」于『『』则(
        虑「结果」者「词化串」于「尾」而
        「附加」授以「包词」
        于(「结果」中「零」)
        于(「词法」于(「结果」中「一」))
      )
      否则
        「缀」于(「符词」于「字」)于(「词法」于「尾」)
也。

「词是符」乃化「包词」而化「字符串」而「爻」也。
「词是符」者会「词」而会「符」而
  鉴「词」而
    有(「符词」于「字」)则
      「字符串相等吗」于「字」于「符」
    或有「其他」则「阴」
也。

「词是名」乃化「包词」而化「字符串」而「爻」也。
「词是名」者会「词」而会「名」而
  鉴「词」而
    有(「名词」于「字」)则
      「字符串相等吗」于「字」于「名」
    或有「其他」则「阴」
也。

「词串值」乃化「包词」而(「或可有」于「字符串」)也。
「词串值」者会「词」而
  鉴「词」而
    有(「串词」于「值」)则(「可有」授以「字符串」于「值」)
    或有「其他」则(「可无」授以「字符串」)
也。

「:文言:名后之词:先者字,次串。汉语:字段名之后必须是 者 与一个字符串;是则返回该字符串。:」
「者后串值」乃化(「列」于「包词」)而(「或可有」于「字符串」)也。
「者后串值」者会「词们」而
  鉴「词们」而
    有(「缀」于「甲」于(「缀」于「乙」于「余」))则
      若「词是符」于「甲」于『者』则「词串值」于「乙」否则(「可无」授以「字符串」)
    或有「其他」则(「可无」授以「字符串」)
也。

「:文言:只寻最外层之字段,方括号内者不计。汉语:在词列表最外层(方括号深度为零)查找形如 名 者 字符串 的字段,返回第一个。:」
「找串字段」乃
  化(「列」于「包词」)而
  化「整数」而
  化「字符串」而
  (「或可有」于「字符串」)
也。
「找串字段」者会「词们」而会「深度」而会「名」而
  鉴「词们」而
    有「罄」则(「可无」授以「字符串」)
    或有(「缀」于「首」于「尾」)则
      若「词是符」于「首」于『【』则
        「找串字段」于「尾」于(「加」于「深度」于「一」)于「名」
      否则若「词是符」于「首」于『】』则「找串字段」于「尾」于(「减」于「深度」于「一」)于「名」
      否则若「且」于(「等于」于「深度」于「零」)于(「词是名」于「首」于「名」)
      则
        (
          鉴(「者后串值」于「尾」)而
            有(「可有」于「值」)则(「可有」授以「字符串」于「值」)
            或有「可无」则
              「找串字段」于「尾」于「深度」于「名」
        )
      否则
        「找串字段」于「尾」于「深度」于「名」
也。

「:文言:依赖之列,串以逗号,终以右方括号;他物则拒之。汉语:读取依赖列表的各项:只接受字符串,以全角逗号分隔(允许末尾多一个逗号),遇右方括号结束;出现其他内容或缺少右方括号则报错。:」
「读依赖项」乃
  化(「列」于「包词」)而
  化(「列」于「字符串」)而
  化「字符串」而
  (「列」于「字符串」)
也。
「读依赖项」者会「词们」而会「已读」而会「文件」而
  鉴「词们」而
    有「罄」则「发生事故」于(『包描述格式不对:』附「文件」附『:「依赖」列表缺少右方括号』)
    或有(「缀」于「首」于「尾」)则
      若「词是符」于「首」于『】』则「反转」授以「字符串」于「已读」
      否则若「词是符」于「首」于『,』则
        「读依赖项」于「尾」于「已读」于「文件」
      否则
        (
          鉴(「词串值」于「首」)而
            有(「可有」于「值」)则
              「读依赖项」
                于「尾」
                于(「缀」于「值」于「已读」)于「文件」
            或有「可无」则
              「发生事故」于(『包描述格式不对:』附「文件」附『:「依赖」列表只能写包名字符串,以全角逗号分隔』)
        )
也。

「:文言:寻「依赖」者「列」【…】;无之则依赖为空。汉语:在最外层查找依赖字段,其后必须是 者、列、左方括号;找不到字段时依赖为空列表。:」
「找依赖字段」乃
  化(「列」于「包词」)而
  化「整数」而
  化「字符串」而
  (「或可有」于(「列」于「字符串」))
也。
「找依赖字段」者会「词们」而会「深度」而会「文件」而
  鉴「词们」而
    有「罄」则(「可无」授以(「列」于「字符串」))
    或有(「缀」于「首」于「尾」)则
      若「词是符」于「首」于『【』则
        「找依赖字段」于「尾」于(「加」于「深度」于「一」)于「文件」
      否则若「词是符」于「首」于『】』则「找依赖字段」于「尾」
      于(「减」于「深度」于「一」)于「文件」
      否则若「且」于(「等于」于「深度」于「零」)于(「词是名」于「首」于『依赖』)
      则
        (
          鉴「尾」而
            有(「缀」于「甲」于(「缀」于「乙」于(「缀」于「丙」于「后」)))则
              若「且」
                于(「词是符」于「甲」于『者』)
                于(「且」于(「词是名」于「乙」于『列』)于(「词是符」于「丙」于『【』))
              则
                (「可有」授以(「列」于「字符串」)于(「读依赖项」于「后」于(「罄」授以「字符串」)于「文件」))
              否则
                「发生事故」于(『包描述格式不对:』附「文件」附
                  『:「依赖」字段格式不对,应为「依赖」者「列」【包名字符串,…】也。』)
            或有「其他」则
              「发生事故」于(『包描述格式不对:』附「文件」附
                『:「依赖」字段格式不对,应为「依赖」者「列」【包名字符串,…】也。』)
        )
      否则
        「找依赖字段」于「尾」于「深度」于「文件」
也。

「:文言:必有之字段,缺则告其名。汉语:取必须存在的字符串字段,缺失时报错并写明字段名与标准写法。:」
「必取串字段」乃
  化「字符串」而
  化(「列」于「包词」)而
  化「字符串」而
  「字符串」
也。
「必取串字段」者会「文件」而会「词们」而会「名」而
  鉴(「找串字段」于「词们」于「零」于「名」)而
    有(「可有」于「值」)则「值」
    或有「可无」则
      「发生事故」于(『包描述格式不对:』附「文件」附『:缺少「』附「名」附『」者『…「:』:」也。』)
也。

「:文言:解包描述:先词法,后取名称、所有者、依赖。汉语:解析包描述文本,返回(名称,所有者,依赖列表);「文件」只用于错误信息。格式不对时抛出带文件名的中文事故。:」
「解析包描述」乃化「字符串」而化「字符串」而「包描述」也。
「解析包描述」者会「文件」而会「文本」而
  虑「词们」者
    「尝试运行」授以(「列」于「包词」)
    于(会「无」而「词法」于(「串转通字符」于「文本」))
    于(会「信息」而「发生事故」于(『包描述格式不对:』附「文件」附『:』附「信息」))而
    虑「名」者「必取串字段」于「文件」于「词们」于『名称』而
    虑「主」者「必取串字段」于「文件」于「词们」于『所有者』而
    虑「依赖们」者鉴(「找依赖字段」于「词们」于「零」于「文件」)而
      有(「可有」于「诸依」)则「诸依」
      或有「可无」则(「罄」授以「字符串」)
    而
    「名」与「主」与「依赖们」
也。