Rev 7696 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7696 | Rev 7983 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | (* |
1 | (* |
2 | BSD 2-Clause License |
2 | BSD 2-Clause License |
Line 3... | Line 3... | ||
3 | 3 | ||
4 | Copyright (c) 2018-2019, Anton Krotov |
4 | Copyright (c) 2018-2020, Anton Krotov |
5 | All rights reserved. |
5 | All rights reserved. |
Line 6... | Line 6... | ||
6 | *) |
6 | *) |
Line 11... | Line 11... | ||
11 | 11 | ||
12 | 12 | ||
13 | PROCEDURE append* (VAR s1: ARRAY OF CHAR; s2: ARRAY OF CHAR); |
13 | PROCEDURE append* (VAR s1: ARRAY OF CHAR; s2: ARRAY OF CHAR); |
- | 14 | VAR |
|
14 | VAR |
15 | n1, n2, i, j: INTEGER; |
15 | n1, n2, i, j: INTEGER; |
16 | |
16 | BEGIN |
17 | BEGIN |
Line 17... | Line 18... | ||
17 | n1 := LENGTH(s1); |
18 | n1 := LENGTH(s1); |
Line 30... | Line 31... | ||
30 | s1[j] := 0X |
31 | s1[j] := 0X |
Line 31... | Line 32... | ||
31 | 32 | ||
Line 32... | Line 33... | ||
32 | END append; |
33 | END append; |
33 | 34 | ||
34 | 35 | ||
35 | PROCEDURE reverse* (VAR s: ARRAY OF CHAR); |
36 | PROCEDURE reverse (VAR s: ARRAY OF CHAR); |
Line 36... | Line 37... | ||
36 | VAR |
37 | VAR |
37 | i, j: INTEGER; |
- | |
38 | a, b: CHAR; |
38 | i, j: INTEGER; |
39 | 39 | a, b: CHAR; |
|
Line 40... | Line 40... | ||
40 | BEGIN |
40 | |
41 | 41 | BEGIN |
|
Line 170... | Line 170... | ||
170 | PROCEDURE space* (c: CHAR): BOOLEAN; |
170 | PROCEDURE space* (c: CHAR): BOOLEAN; |
171 | RETURN (0X < c) & (c <= 20X) |
171 | RETURN (0X < c) & (c <= 20X) |
172 | END space; |
172 | END space; |
Line -... | Line 173... | ||
- | 173 | ||
- | 174 | ||
- | 175 | PROCEDURE cap (VAR c: CHAR); |
|
- | 176 | BEGIN |
|
- | 177 | IF ("a" <= c) & (c <= "z") THEN |
|
- | 178 | c := CHR(ORD(c) - 32) |
|
- | 179 | END |
|
- | 180 | END cap; |
|
- | 181 | ||
- | 182 | ||
- | 183 | PROCEDURE UpCase* (VAR str: ARRAY OF CHAR); |
|
- | 184 | VAR |
|
- | 185 | i: INTEGER; |
|
- | 186 | ||
- | 187 | BEGIN |
|
- | 188 | i := 0; |
|
- | 189 | WHILE (i < LEN(str)) & (str[i] # 0X) DO |
|
- | 190 | cap(str[i]); |
|
- | 191 | INC(i) |
|
- | 192 | END |
|
- | 193 | END UpCase; |
|
173 | 194 | ||
174 | 195 | ||
175 | PROCEDURE StrToInt* (str: ARRAY OF CHAR; VAR x: INTEGER): BOOLEAN; |
196 | PROCEDURE StrToInt* (str: ARRAY OF CHAR; VAR x: INTEGER): BOOLEAN; |
176 | VAR |
197 | VAR |
Line 274... | Line 295... | ||
274 | CASE c OF |
295 | CASE c OF |
275 | |00X..7FX: |
296 | |00X..7FX: |
276 | u := ORD(c) |
297 | u := ORD(c) |
Line 277... | Line 298... | ||
277 | 298 | ||
278 | |0C1X..0DFX: |
299 | |0C1X..0DFX: |
279 | u := LSL(ORD(c) - 0C0H, 6); |
300 | u := (ORD(c) - 0C0H) * 64; |
280 | IF i + 1 < srclen THEN |
301 | IF i + 1 < srclen THEN |
281 | INC(i); |
302 | INC(i); |
282 | INC(u, ORD(BITS(ORD(src[i])) * {0..5})) |
303 | INC(u, ORD(src[i]) MOD 64) |
Line 283... | Line 304... | ||
283 | END |
304 | END |
284 | 305 | ||
285 | |0E1X..0EFX: |
306 | |0E1X..0EFX: |
286 | u := LSL(ORD(c) - 0E0H, 12); |
307 | u := (ORD(c) - 0E0H) * 4096; |
287 | IF i + 1 < srclen THEN |
308 | IF i + 1 < srclen THEN |
288 | INC(i); |
309 | INC(i); |
289 | INC(u, ORD(BITS(ORD(src[i])) * {0..5}) * 64) |
310 | INC(u, (ORD(src[i]) MOD 64) * 64) |
290 | END; |
311 | END; |
291 | IF i + 1 < srclen THEN |
312 | IF i + 1 < srclen THEN |
292 | INC(i); |
313 | INC(i); |
293 | INC(u, ORD(BITS(ORD(src[i])) * {0..5})) |
314 | INC(u, ORD(src[i]) MOD 64) |
294 | END |
315 | END |
295 | (* |
316 | (* |
296 | |0F1X..0F7X: |
317 | |0F1X..0F7X: |