@@ -15,39 +15,39 @@ module stdlib_experimental_ascii
15
15
public :: to_lower, to_upper
16
16
17
17
! All control characters in the ASCII table (see www.asciitable.com).
18
- character (len= 1 ), public , parameter :: NUL = achar (z' 00' ) ! ! Null
19
- character (len= 1 ), public , parameter :: SOH = achar (z' 01' ) ! ! Start of heading
20
- character (len= 1 ), public , parameter :: STX = achar (z' 02' ) ! ! Start of text
21
- character (len= 1 ), public , parameter :: ETX = achar (z' 03' ) ! ! End of text
22
- character (len= 1 ), public , parameter :: EOT = achar (z' 04' ) ! ! End of transmission
23
- character (len= 1 ), public , parameter :: ENQ = achar (z' 05' ) ! ! Enquiry
24
- character (len= 1 ), public , parameter :: ACK = achar (z' 06' ) ! ! Acknowledge
25
- character (len= 1 ), public , parameter :: BEL = achar (z' 07' ) ! ! Bell
26
- character (len= 1 ), public , parameter :: BS = achar (z' 08' ) ! ! Backspace
27
- character (len= 1 ), public , parameter :: TAB = achar (z' 09' ) ! ! Horizontal tab
28
- character (len= 1 ), public , parameter :: LF = achar (z' 0A' ) ! ! NL line feed, new line
29
- character (len= 1 ), public , parameter :: VT = achar (z' 0B' ) ! ! Vertical tab
30
- character (len= 1 ), public , parameter :: FF = achar (z' 0C' ) ! ! NP form feed, new page
31
- character (len= 1 ), public , parameter :: CR = achar (z' 0D' ) ! ! Carriage return
32
- character (len= 1 ), public , parameter :: SO = achar (z' 0E' ) ! ! Shift out
33
- character (len= 1 ), public , parameter :: SI = achar (z' 0F' ) ! ! Shift in
34
- character (len= 1 ), public , parameter :: DLE = achar (z' 10' ) ! ! Data link escape
35
- character (len= 1 ), public , parameter :: DC1 = achar (z' 11' ) ! ! Device control 1
36
- character (len= 1 ), public , parameter :: DC2 = achar (z' 12' ) ! ! Device control 2
37
- character (len= 1 ), public , parameter :: DC3 = achar (z' 13' ) ! ! Device control 3
38
- character (len= 1 ), public , parameter :: DC4 = achar (z' 14' ) ! ! Device control 4
39
- character (len= 1 ), public , parameter :: NAK = achar (z' 15' ) ! ! Negative acknowledge
40
- character (len= 1 ), public , parameter :: SYN = achar (z' 16' ) ! ! Synchronous idle
41
- character (len= 1 ), public , parameter :: ETB = achar (z' 17' ) ! ! End of transmission block
42
- character (len= 1 ), public , parameter :: CAN = achar (z' 18' ) ! ! Cancel
43
- character (len= 1 ), public , parameter :: EM = achar (z' 19' ) ! ! End of medium
44
- character (len= 1 ), public , parameter :: SUB = achar (z' 1A' ) ! ! Substitute
45
- character (len= 1 ), public , parameter :: ESC = achar (z' 1B' ) ! ! Escape
46
- character (len= 1 ), public , parameter :: FS = achar (z' 1C' ) ! ! File separator
47
- character (len= 1 ), public , parameter :: GS = achar (z' 1D' ) ! ! Group separator
48
- character (len= 1 ), public , parameter :: RS = achar (z' 1E' ) ! ! Record separator
49
- character (len= 1 ), public , parameter :: US = achar (z' 1F' ) ! ! Unit separator
50
- character (len= 1 ), public , parameter :: DEL = achar (z' 7F' ) ! ! Delete
18
+ character (len= 1 ), public , parameter :: NUL = achar (int ( z' 00' ) ) ! ! Null
19
+ character (len= 1 ), public , parameter :: SOH = achar (int ( z' 01' ) ) ! ! Start of heading
20
+ character (len= 1 ), public , parameter :: STX = achar (int ( z' 02' ) ) ! ! Start of text
21
+ character (len= 1 ), public , parameter :: ETX = achar (int ( z' 03' ) ) ! ! End of text
22
+ character (len= 1 ), public , parameter :: EOT = achar (int ( z' 04' ) ) ! ! End of transmission
23
+ character (len= 1 ), public , parameter :: ENQ = achar (int ( z' 05' ) ) ! ! Enquiry
24
+ character (len= 1 ), public , parameter :: ACK = achar (int ( z' 06' ) ) ! ! Acknowledge
25
+ character (len= 1 ), public , parameter :: BEL = achar (int ( z' 07' ) ) ! ! Bell
26
+ character (len= 1 ), public , parameter :: BS = achar (int ( z' 08' ) ) ! ! Backspace
27
+ character (len= 1 ), public , parameter :: TAB = achar (int ( z' 09' ) ) ! ! Horizontal tab
28
+ character (len= 1 ), public , parameter :: LF = achar (int ( z' 0A' ) ) ! ! NL line feed, new line
29
+ character (len= 1 ), public , parameter :: VT = achar (int ( z' 0B' ) ) ! ! Vertical tab
30
+ character (len= 1 ), public , parameter :: FF = achar (int ( z' 0C' ) ) ! ! NP form feed, new page
31
+ character (len= 1 ), public , parameter :: CR = achar (int ( z' 0D' ) ) ! ! Carriage return
32
+ character (len= 1 ), public , parameter :: SO = achar (int ( z' 0E' ) ) ! ! Shift out
33
+ character (len= 1 ), public , parameter :: SI = achar (int ( z' 0F' ) ) ! ! Shift in
34
+ character (len= 1 ), public , parameter :: DLE = achar (int ( z' 10' ) ) ! ! Data link escape
35
+ character (len= 1 ), public , parameter :: DC1 = achar (int ( z' 11' ) ) ! ! Device control 1
36
+ character (len= 1 ), public , parameter :: DC2 = achar (int ( z' 12' ) ) ! ! Device control 2
37
+ character (len= 1 ), public , parameter :: DC3 = achar (int ( z' 13' ) ) ! ! Device control 3
38
+ character (len= 1 ), public , parameter :: DC4 = achar (int ( z' 14' ) ) ! ! Device control 4
39
+ character (len= 1 ), public , parameter :: NAK = achar (int ( z' 15' ) ) ! ! Negative acknowledge
40
+ character (len= 1 ), public , parameter :: SYN = achar (int ( z' 16' ) ) ! ! Synchronous idle
41
+ character (len= 1 ), public , parameter :: ETB = achar (int ( z' 17' ) ) ! ! End of transmission block
42
+ character (len= 1 ), public , parameter :: CAN = achar (int ( z' 18' ) ) ! ! Cancel
43
+ character (len= 1 ), public , parameter :: EM = achar (int ( z' 19' ) ) ! ! End of medium
44
+ character (len= 1 ), public , parameter :: SUB = achar (int ( z' 1A' ) ) ! ! Substitute
45
+ character (len= 1 ), public , parameter :: ESC = achar (int ( z' 1B' ) ) ! ! Escape
46
+ character (len= 1 ), public , parameter :: FS = achar (int ( z' 1C' ) ) ! ! File separator
47
+ character (len= 1 ), public , parameter :: GS = achar (int ( z' 1D' ) ) ! ! Group separator
48
+ character (len= 1 ), public , parameter :: RS = achar (int ( z' 1E' ) ) ! ! Record separator
49
+ character (len= 1 ), public , parameter :: US = achar (int ( z' 1F' ) ) ! ! Unit separator
50
+ character (len= 1 ), public , parameter :: DEL = achar (int ( z' 7F' ) ) ! ! Delete
51
51
52
52
! Constant character sequences
53
53
character (len=* ), public , parameter :: fullhex_digits = " 0123456789ABCDEFabcdef" ! ! 0 .. 9A .. Fa .. f
@@ -79,15 +79,15 @@ pure logical function is_alphanum(c)
79
79
! i.e. in the range 0 .. 0x7F.
80
80
pure logical function is_ascii(c)
81
81
character (len= 1 ), intent (in ) :: c ! ! The character to test.
82
- is_ascii = iachar (c) <= z' 7F'
82
+ is_ascii = iachar (c) <= int ( z' 7F' )
83
83
end function
84
84
85
85
! > Checks whether `c` is a control character.
86
86
pure logical function is_control(c)
87
87
character (len= 1 ), intent (in ) :: c ! ! The character to test.
88
88
integer :: ic
89
89
ic = iachar (c)
90
- is_control = ic < z' 20' .or. ic == z' 7F'
90
+ is_control = ic < int ( z' 20' ) .or. ic == int ( z' 7F' )
91
91
end function
92
92
93
93
! > Checks whether `c` is a digit (0 .. 9).
@@ -116,7 +116,7 @@ pure logical function is_punctuation(c)
116
116
character (len= 1 ), intent (in ) :: c ! ! The character to test.
117
117
integer :: ic
118
118
ic = iachar (c) ! '~' '!'
119
- is_punctuation = (ic <= z' 7E' ) .and. (ic >= z' 21' ) .and. &
119
+ is_punctuation = (ic <= int ( z' 7E' )) .and. (ic >= int ( z' 21' ) ) .and. &
120
120
(.not. is_alphanum(c))
121
121
end function
122
122
@@ -126,7 +126,7 @@ pure logical function is_graphical(c)
126
126
character (len= 1 ), intent (in ) :: c ! ! The character to test.
127
127
integer :: ic
128
128
ic = iachar (c) ! '!' '~'
129
- is_graphical = (z' 21' <= ic) .and. (ic <= z' 7E' )
129
+ is_graphical = (int ( z' 21' ) <= ic) .and. (ic <= int ( z' 7E' ) )
130
130
end function
131
131
132
132
! > Checks whether or not `c` is a printable character - including the
@@ -135,7 +135,7 @@ pure logical function is_printable(c)
135
135
character (len= 1 ), intent (in ) :: c ! ! The character to test.
136
136
integer :: ic
137
137
ic = iachar (c) ! '~'
138
- is_printable = c >= ' ' .and. ic <= z' 7E'
138
+ is_printable = c >= ' ' .and. ic <= int ( z' 7E' )
139
139
end function
140
140
141
141
! > Checks whether `c` is a lowercase ASCII letter (a .. z).
@@ -157,7 +157,7 @@ pure logical function is_white(c)
157
157
character (len= 1 ), intent (in ) :: c ! ! The character to test.
158
158
integer :: ic
159
159
ic = iachar (c) ! TAB, LF, VT, FF, CR
160
- is_white = (c == ' ' ) .or. (ic >= z' 09' .and. ic <= z' 0D' );
160
+ is_white = (c == ' ' ) .or. (ic >= int ( z' 09' ) .and. ic <= int ( z' 0D' ) );
161
161
end function
162
162
163
163
! > Checks whether or not `c` is a blank character. That includes the
@@ -166,7 +166,7 @@ pure logical function is_blank(c)
166
166
character (len= 1 ), intent (in ) :: c ! ! The character to test.
167
167
integer :: ic
168
168
ic = iachar (c) ! TAB
169
- is_blank = (c == ' ' ) .or. (ic == z' 09' );
169
+ is_blank = (c == ' ' ) .or. (ic == int ( z' 09' ) );
170
170
end function
171
171
172
172
! > Returns the corresponding lowercase letter, if `c` is an uppercase
@@ -193,4 +193,4 @@ pure function to_upper(c) result(t)
193
193
if (is_lower(t)) t = achar (iachar (t) + diff)
194
194
end function
195
195
196
- end module
196
+ end module
0 commit comments