summaryrefslogtreecommitdiff
path: root/src/packrat-utilities.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/packrat-utilities.adb')
-rw-r--r--src/packrat-utilities.adb147
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;
+
+