diff options
Diffstat (limited to 'src/packrat-utilities.adb')
-rw-r--r-- | src/packrat-utilities.adb | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/src/packrat-utilities.adb b/src/packrat-utilities.adb new file mode 100644 index 0000000..97e4272 --- /dev/null +++ b/src/packrat-utilities.adb @@ -0,0 +1,147 @@ + + +with + + Ada.Characters.Latin_1; + + +package body Packrat.Utilities is + + + package Latin renames Ada.Characters.Latin_1; + package Strmaps renames Ada.Strings.Maps; + + + + + function In_Set + (Element : in Character) + return Boolean is + begin + return Strmaps.Is_In (Element, Set); + end In_Set; + + + function Not_In_Set + (Element : in Character) + return Boolean is + begin + return not Strmaps.Is_In (Element, Set); + end Not_In_Set; + + + + + + function Is_Digit + (Char : in Character) + return Boolean is + begin + return (Char >= '0' and Char <= '9'); + end Is_Digit; + + + function Is_Hex + (Char : in Character) + return Boolean is + begin + return + (Char >= '0' and Char <= '9') or + (Char >= 'A' and Char <= 'F') or + (Char >= 'a' and Char <= 'f'); + end Is_Hex; + + + function Is_Letter + (Char : in Character) + return Boolean is + begin + return + (Char >= 'A' and Char <= 'Z') or + (Char >= 'a' and Char <= 'z'); + end Is_Letter; + + + function Is_Alphanumeric + (Char : in Character) + return Boolean is + begin + return Is_Digit (Char) or Is_Letter (Char); + end Is_Alphanumeric; + + + function Is_Punctuation + (Char : in Character) + return Boolean is + begin + return + (Char >= '!' and Char <= '/') or + (Char >= ':' and Char <= '@') or + (Char >= '[' and Char <= '`') or + (Char >= '{' and Char <= '~'); + end Is_Punctuation; + + + function Is_ASCII + (Char : in Character) + return Boolean is + begin + return Char <= Character'Val (127); + end Is_ASCII; + + + function Is_Extended_ASCII + (Char : in Character) + return Boolean is + begin + return Char >= Character'Val (128); + end Is_Extended_ASCII; + + + function Is_Space + (Char : in Character) + return Boolean is + begin + return Char = ' '; + end Is_Space; + + + function Is_Linespace + (Char : in Character) + return Boolean is + begin + return (Char = ' ' or Char = Latin.HT); + end Is_Linespace; + + + function Is_End_Of_Line + (Char : in Character) + return Boolean is + begin + return (Char = Latin.LF or Char = Latin.CR); + end Is_End_Of_Line; + + + function Is_Whitespace + (Char : in Character) + return Boolean is + begin + return + Char = Latin.HT or + Char = Latin.LF or + Char = Latin.CR or + Char = ' '; + end Is_Whitespace; + + + function Not_Whitespace + (Char : in Character) + return Boolean is + begin + return not Is_Whitespace (Char); + end Not_Whitespace; + + +end Packrat.Utilities; + + |