renamed H3.CC to H3.Runes
This commit is contained in:
105
h2/lib2/h3-runes.ads
Normal file
105
h2/lib2/h3-runes.ads
Normal file
@ -0,0 +1,105 @@
|
||||
generic
|
||||
-- any discrete type accepted.
|
||||
-- can't ada limit type to one of Character, Wide_Character, Wide_Wide_Character?
|
||||
type Rune_Type is (<>);
|
||||
package H3.Runes is
|
||||
-- <ctype.h>-like character classification plus other features.
|
||||
-- unicode-based. no system locale honored.
|
||||
|
||||
subtype Rune is Rune_Type;
|
||||
type Code is range -1 .. 16#7FFF_FFFF#;
|
||||
|
||||
-- virtual code to indicate end of input
|
||||
EOF: constant Code := Code'First;
|
||||
|
||||
C_Colon: constant Code := System_Rune'Pos(':');
|
||||
C_Semicolon: constant Code := System_Rune'Pos(';');
|
||||
C_Tilde: constant Code := System_Rune'Pos('~');
|
||||
C_Underline: constant Code := System_Rune'Pos('_');
|
||||
C_Equal: constant Code := System_Rune'Pos('=');
|
||||
C_Left_Arrow: constant Code := System_Rune'Pos('<');
|
||||
C_Right_Arrow: constant Code := System_Rune'Pos('>');
|
||||
|
||||
C_A: constant Code := System_Rune'Pos('A');
|
||||
C_B: constant Code := System_Rune'Pos('B');
|
||||
C_C: constant Code := System_Rune'Pos('C');
|
||||
C_D: constant Code := System_Rune'Pos('D');
|
||||
C_E: constant Code := System_Rune'Pos('E');
|
||||
|
||||
Colon: constant Rune := Rune'Val(C_Colon);
|
||||
Semicolon: constant Rune := Rune'Val(C_Semicolon);
|
||||
Tilde: constant Rune := Rune'Val(C_Tilde);
|
||||
Underline: constant Rune := Rune'Val(C_Underline);
|
||||
Equal: constant Rune := Rune'Val(C_Equal);
|
||||
Left_Arrow: constant Rune := Rune'Val(C_Left_Arrow);
|
||||
Right_Arrow: constant Rune := Rune'Val(C_Right_Arrow);
|
||||
|
||||
UC_A: constant Rune := Rune'Val(C_A);
|
||||
UC_B: constant Rune := Rune'Val(C_B);
|
||||
UC_C: constant Rune := Rune'Val(C_C);
|
||||
UC_D: constant Rune := Rune'Val(C_D);
|
||||
UC_E: constant Rune := Rune'Val(C_E);
|
||||
UC_O: constant Rune := Rune'Val(System_Rune'Pos('O'));
|
||||
UC_F: constant Rune := Rune'Val(System_Rune'Pos('F'));
|
||||
|
||||
type Item_Class is (
|
||||
ALPHA,
|
||||
ALNUM,
|
||||
BLANK,
|
||||
CNTRL,
|
||||
DIGIT,
|
||||
GRAPH,
|
||||
LOWER,
|
||||
PRINT,
|
||||
PUNCT,
|
||||
SPACE,
|
||||
UPPER,
|
||||
XDIGIT
|
||||
);
|
||||
|
||||
function Is_Alpha (V: in Rune) return Boolean;
|
||||
function Is_Alnum (V: in Rune) return Boolean;
|
||||
function Is_Blank (V: in Rune) return Boolean;
|
||||
function Is_Cntrl (V: in Rune) return Boolean;
|
||||
function Is_Digit (V: in Rune) return Boolean;
|
||||
function Is_Graph (V: in Rune) return Boolean;
|
||||
function Is_Print (V: in Rune) return Boolean;
|
||||
function Is_Punct (V: in Rune) return Boolean;
|
||||
function Is_Space (V: in Rune) return Boolean;
|
||||
function Is_Xdigit (V: in Rune) return Boolean;
|
||||
function Is_Lower (V: in Rune) return Boolean;
|
||||
function Is_Upper (V: in Rune) return Boolean;
|
||||
|
||||
function To_Lower (V: in Rune) return Rune;
|
||||
function To_Upper (V: in Rune) return Rune;
|
||||
|
||||
function Is_Alpha (C: in Code) return Boolean;
|
||||
function Is_Alnum (C: in Code) return Boolean;
|
||||
function Is_Blank (C: in Code) return Boolean;
|
||||
function Is_Cntrl (C: in Code) return Boolean;
|
||||
function Is_Digit (C: in Code) return Boolean;
|
||||
function Is_Graph (C: in Code) return Boolean;
|
||||
function Is_Print (C: in Code) return Boolean;
|
||||
function Is_Punct (C: in Code) return Boolean;
|
||||
function Is_Space (C: in Code) return Boolean;
|
||||
function Is_Xdigit (C: in Code) return Boolean;
|
||||
function Is_Lower (C: in Code) return Boolean;
|
||||
function Is_Upper (C: in Code) return Boolean;
|
||||
|
||||
function Is_Class (V: in Rune; Class: in Item_Class) return Boolean;
|
||||
function Is_Class (C: in Code; Class: in Item_Class) return Boolean;
|
||||
|
||||
function Is_Eof (C: in Code) return Boolean;
|
||||
pragma Inline (Is_Eof);
|
||||
|
||||
function Is_Code (V: in Rune; C: in Code) return Boolean;
|
||||
pragma Inline (Is_Code);
|
||||
function Is_Rune (C: in Code; V: in Rune) return Boolean;
|
||||
pragma Inline (Is_Rune);
|
||||
|
||||
function To_Rune (C: in Code) return Rune;
|
||||
pragma Inline (To_Rune);
|
||||
function To_Code (V: in Rune) return Code;
|
||||
pragma Inline (To_Code);
|
||||
|
||||
end H3.Runes;
|
Reference in New Issue
Block a user