| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- Listing:
- 1 IMPLEMENTATION MODULE MiscFunctions;
- 2
- 3 (*
- 4 * ModBase
- 5 * Release 3.0
- 6 * By Don Fletcher & John McMonagle
- 7 * (c) Copyright 1986 - 1991 PMI
- 8 * P.O. Box 8402
- 9 * Green Bay Wi 53308
- 10 * All Rights Reserved
- 11 *
- 12 *)
- 13
- 14 IMPORT StrEdit;
- 15
- 16 CONST
- 17 Tab = 11C;
- 18 EOL = 36C;
- 19 TYPE
- 20 CHARSET =SET OF CHAR;
- ***** ^ not supported yet
- 21
- 22 PROCEDURE Trim(VAR str : ARRAY OF CHAR);
- ***** ^ not supported yet
- 23 (* Strips trailing blanks from a string *)
- 24 BEGIN
- 25 StrEdit.CutTrailingChars(' ',str);
- ***** ^ not supported yet
- ***** ^ not supported yet
- ***** ^ not supported yet
- 26 END Trim;
- ***** ^ not supported yet
- 27
- 28 PROCEDURE Upper(VAR str : ARRAY OF CHAR);
- ***** ^ not supported yet
- 29 BEGIN
- 30 StrEdit.CAPstr(str);
- ***** ^ not supported yet
- ***** ^ not supported yet
- ***** ^ not supported yet
- 31 END Upper;
- ***** ^ not supported yet
- 32
- 33 PROCEDURE Alph(c : CHAR) : BOOLEAN;
- 34 BEGIN
- 35 RETURN c IN CHARSET{'A'..'Z','a'..'z'};
- ***** ^ not supported yet
- 36 END Alph;
- 37
- 38 PROCEDURE Digit(c : CHAR) : BOOLEAN;
- 39 BEGIN
- 40 RETURN c IN CHARSET{'0'..'9'};
- 41 END Digit;
- 42
- 43 PROCEDURE AlphaNum(c : CHAR) : BOOLEAN;
- 44 BEGIN
- 45 RETURN (Alph(c)) OR (Digit(c));
- 46 END AlphaNum;
- 47
- 48 PROCEDURE Punc(c : CHAR) : BOOLEAN;
- 49 BEGIN
- 50 RETURN (NOT AlphaNum(c)) AND (c>=' ');
- 51 END Punc;
- 52
- 53 PROCEDURE Printable(c : CHAR) : BOOLEAN;
- 54 BEGIN
- 55 RETURN c IN CHARSET{' '..'~'};
- 56 END Printable;
- 57
- 58 PROCEDURE IsLower(c : CHAR) : BOOLEAN;
- 59 BEGIN
- 60 RETURN c IN CHARSET{'a'..'z'};
- 61 END IsLower;
- 62
- 63 PROCEDURE IsUpper(c : CHAR) : BOOLEAN;
- 64 BEGIN
- 65 RETURN c IN CHARSET{'A'..'Z'};
- 66 END IsUpper;
- 67
- 68 PROCEDURE IsSpace(c : CHAR) : BOOLEAN;
- 69 BEGIN
- 70 RETURN c IN CHARSET{' ',EOL,12C,15C,Tab};
- 71 END IsSpace;
- 72
- 73 PROCEDURE FieldName(str : ARRAY OF CHAR) : BOOLEAN;
- 74 VAR
- 75 legal : BOOLEAN;
- 76 i : CARDINAL;
- 77 BEGIN
- 78 Trim(str);
- 79 i := 0;
- 80 WHILE (i<HIGH(str)) AND (str[i]#0C) DO
- 81 INC(i);
- 82 END;
- 83 IF (i>0) AND (str[i]=0C) THEN
- 84 DEC(i);
- 85 END;
- 86 legal := (i<10) AND (Alph(str[0]));
- 87 WHILE (i>0) AND legal DO
- 88 legal := FieldNameChar(str[i]);
- 89 DEC(i);
- 90 END;
- 91 RETURN legal;
- 92 END FieldName;
- 93
- 94 PROCEDURE FieldNameChar(c : CHAR) : BOOLEAN;
- 95 BEGIN
- 96 RETURN (AlphaNum(c)) OR (c='_');
- 97 END FieldNameChar;
- 98
- 99 END MiscFunctions.
- 12 errors
|