命令解析。豫
yuyan · 155 行 · 7531 字节 · UTF-8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字符串术」之书。
寻观「标准库」之「数据结构」之「多态列」之书。
「:
命令行只负责把文字分成参数,不实现隐式展开或命令替换。
支持单引号、双引号、反斜杠转义与空参数。
返回值依次是:成功与否、参数列、错误文字。
:」
「是分隔字符」乃化「字符串」而「爻」也。
「是分隔字符」者会「字符」而
「或者」
于(「字符串相等吗」于「字符」于『 』)
于(「或者」于(「字符串相等吗」于「字符」于『 』)于(「字符串相等吗」于「字符」于『 』))
也。
「收束参数」乃
化(「列」于「字符串」)而
化「爻」而
化(「列」于「字符串」)而
(「列」于「字符串」)
也。
「收束参数」者会「反字符」而会「参数已开始」而会「反参数」而
若「参数已开始」
则
「缀」于(「串组合并」于(「反转」授以「字符串」于「反字符」))于「反参数」
否则
「反参数」
也。
「解析命令行」乃化「字符串」而(「爻」合(「列」于「字符串」)合「字符串」)也。
「解析命令行」者会「命令行」而
递归虑「继续解析」其化「整数」而化(「列」于「字符串」)而化(「列」于「字符串」)而化「爻」而化(「列」于「字符串」)而
(「爻」合(「列」于「字符串」)合「字符串」)者
会「状态」而会「剩余字符」而会「反字符」而会「参数已开始」而会「反参数」而
鉴「剩余字符」而
有「罄」则
若「等于」于「状态」于「一」则
「阴」与「罄」与『单引号未闭合』
否则
若「等于」于「状态」于「二」则
「阴」与「罄」与『双引号未闭合』
否则
若「或者」
于(「等于」于「状态」于「三」)
于(「等于」于「状态」于「四」)
则
「阴」与「罄」与『命令行以反斜杠结尾』
否则
「阳」与(「反转」授以「字符串」于(「收束参数」于「反字符」于「参数已开始」于「反参数」))
与『』
或有(「缀」于「字符」于「字符尾」)则
若「等于」于「状态」于「三」
则
「继续解析」
于「零」
于「字符尾」
于(「缀」于「字符」于「反字符」)于「阳」于「反参数」
否则
若「等于」于「状态」于「四」
则
(
若「或者」
于(「字符串相等吗」于「字符」于『"』)
于(「字符串相等吗」于「字符」于『\』)
则
「继续解析」
于「二」
于「字符尾」
于(「缀」于「字符」于「反字符」)于「阳」于「反参数」
否则
「继续解析」
于「二」
于「字符尾」
于(「缀」于「字符」于(「缀」于『\』于「反字符」))
于「阳」于「反参数」
)否则
若「等于」于「状态」于「一」
则
(
若「字符串相等吗」于「字符」于『'』
则
「继续解析」
于「零」于「字符尾」于「反字符」于「阳」于「反参数」
否则
「继续解析」
于「一」
于「字符尾」
于(「缀」于「字符」于「反字符」)
于「阳」于「反参数」
)否则
若「等于」于「状态」于「二」
则
(
若「字符串相等吗」于「字符」于『"』
则
「继续解析」
于「零」
于「字符尾」于「反字符」于「阳」于「反参数」
否则
(
若「字符串相等吗」于「字符」于『\』
则
「继续解析」
于「四」
于「字符尾」于「反字符」于「阳」于「反参数」
否则
「继续解析」
于「二」
于「字符尾」
于(「缀」于「字符」于「反字符」)
于「阳」于「反参数」
)
)否则
若「是分隔字符」于「字符」
则
「继续解析」
于「零」
于「字符尾」
于「罄」
于「阴」
于(「收束参数」于「反字符」于「参数已开始」于「反参数」)
否则
若「字符串相等吗」于「字符」于『'』
则
「继续解析」
于「一」
于「字符尾」
于「反字符」于「阳」于「反参数」
否则
若「字符串相等吗」于「字符」于『"』
则
「继续解析」
于「二」
于「字符尾」
于「反字符」于「阳」于「反参数」
否则
若「字符串相等吗」
于「字符」于『\』
则
「继续解析」
于「三」
于「字符尾」
于「反字符」
于「阳」于「反参数」
否则
「继续解析」
于「零」
于「字符尾」
于(「缀」于「字符」于「反字符」)
于「阳」于「反参数」
而
「继续解析」于「零」于(「获取字符」于「命令行」)于「罄」于「阴」于「罄」
也。