豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 155 行 · 7531 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字符串术」之书。
寻观「标准库」之「数据结构」之「多态列」之书。

「:
命令行只负责把文字分成参数,不实现隐式展开或命令替换。
支持单引号、双引号、反斜杠转义与空参数。
返回值依次是:成功与否、参数列、错误文字。
:」

「是分隔字符」乃化「字符串」而「爻」也。
「是分隔字符」者会「字符」而
  「或者」
    于(「字符串相等吗」于「字符」于『 』)
    于(「或者」于(「字符串相等吗」于「字符」于『	』)于(「字符串相等吗」于「字符」于『 』))
也。

「收束参数」乃
  化(「列」于「字符串」)而
  化「爻」而
  化(「列」于「字符串」)而
  (「列」于「字符串」)
也。
「收束参数」者会「反字符」而会「参数已开始」而会「反参数」而
  若「参数已开始」
  则
    「缀」于(「串组合并」于(「反转」授以「字符串」于「反字符」))于「反参数」
  否则
    「反参数」
也。

「解析命令行」乃化「字符串」而(「爻」合(「列」于「字符串」)合「字符串」)也。
「解析命令行」者会「命令行」而
  递归虑「继续解析」其化「整数」而化(「列」于「字符串」)而化(「列」于「字符串」)而化「爻」而化(「列」于「字符串」)而
  (「爻」合(「列」于「字符串」)合「字符串」)者
    会「状态」而会「剩余字符」而会「反字符」而会「参数已开始」而会「反参数」而
      鉴「剩余字符」而
        有「罄」则
          若「等于」于「状态」于「一」则
            「阴」与「罄」与『单引号未闭合』
          否则
            若「等于」于「状态」于「二」则
              「阴」与「罄」与『双引号未闭合』
            否则
              若「或者」
                于(「等于」于「状态」于「三」)
                于(「等于」于「状态」于「四」)
              则
                「阴」与「罄」与『命令行以反斜杠结尾』
              否则
                「阳」与(「反转」授以「字符串」于(「收束参数」于「反字符」于「参数已开始」于「反参数」))
                  与『』
        或有(「缀」于「字符」于「字符尾」)则
          若「等于」于「状态」于「三」
          则
            「继续解析」
              于「零」
              于「字符尾」
              于(「缀」于「字符」于「反字符」)于「阳」于「反参数」
          否则
            若「等于」于「状态」于「四」
            则
              (
                若「或者」
                  于(「字符串相等吗」于「字符」于『"』)
                  于(「字符串相等吗」于「字符」于『\』)
                则
                  「继续解析」
                    于「二」
                    于「字符尾」
                    于(「缀」于「字符」于「反字符」)于「阳」于「反参数」
                否则
                  「继续解析」
                    于「二」
                    于「字符尾」
                    于(「缀」于「字符」于(「缀」于『\』于「反字符」))
                    于「阳」于「反参数」
              )否则
                若「等于」于「状态」于「一」
                则
                  (
                    若「字符串相等吗」于「字符」于『'』
                    则
                      「继续解析」
                        于「零」于「字符尾」于「反字符」于「阳」于「反参数」
                    否则
                      「继续解析」
                        于「一」
                        于「字符尾」
                        于(「缀」于「字符」于「反字符」)
                        于「阳」于「反参数」
                  )否则
                    若「等于」于「状态」于「二」
                    则
                      (
                        若「字符串相等吗」于「字符」于『"』
                        则
                          「继续解析」
                            于「零」
                            于「字符尾」于「反字符」于「阳」于「反参数」
                        否则
                          (
                            若「字符串相等吗」于「字符」于『\』
                            则
                              「继续解析」
                                于「四」
                                于「字符尾」于「反字符」于「阳」于「反参数」
                            否则
                              「继续解析」
                                于「二」
                                于「字符尾」
                                于(「缀」于「字符」于「反字符」)
                                于「阳」于「反参数」
                          )
                      )否则
                        若「是分隔字符」于「字符」
                        则
                          「继续解析」
                            于「零」
                            于「字符尾」
                            于「罄」
                            于「阴」
                            于(「收束参数」于「反字符」于「参数已开始」于「反参数」)
                        否则
                          若「字符串相等吗」于「字符」于『'』
                          则
                            「继续解析」
                              于「一」
                              于「字符尾」
                              于「反字符」于「阳」于「反参数」
                          否则
                            若「字符串相等吗」于「字符」于『"』
                            则
                              「继续解析」
                                于「二」
                                于「字符尾」
                                于「反字符」于「阳」于「反参数」
                            否则
                              若「字符串相等吗」
                                于「字符」于『\』
                              则
                                「继续解析」
                                  于「三」
                                  于「字符尾」
                                  于「反字符」
                                  于「阳」于「反参数」
                              否则
                                「继续解析」
                                  于「零」
                                  于「字符尾」
                                  于(「缀」于「字符」于「反字符」)
                                  于「阳」于「反参数」
  而
  「继续解析」于「零」于(「获取字符」于「命令行」)于「罄」于「阴」于「罄」
也。