@@ -15,39 +15,39 @@ module stdlib_experimental_ascii
1515 public :: to_lower, to_upper
1616
1717 ! 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
5151
5252 ! Constant character sequences
5353 character (len=* ), public , parameter :: fullhex_digits = " 0123456789ABCDEFabcdef" ! ! 0 .. 9A .. Fa .. f
@@ -79,15 +79,15 @@ pure logical function is_alphanum(c)
7979 ! i.e. in the range 0 .. 0x7F.
8080 pure logical function is_ascii(c)
8181 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' )
8383 end function
8484
8585 ! > Checks whether `c` is a control character.
8686 pure logical function is_control(c)
8787 character (len= 1 ), intent (in ) :: c ! ! The character to test.
8888 integer :: ic
8989 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' )
9191 end function
9292
9393 ! > Checks whether `c` is a digit (0 .. 9).
@@ -116,7 +116,7 @@ pure logical function is_punctuation(c)
116116 character (len= 1 ), intent (in ) :: c ! ! The character to test.
117117 integer :: ic
118118 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. &
120120 (.not. is_alphanum(c))
121121 end function
122122
@@ -126,7 +126,7 @@ pure logical function is_graphical(c)
126126 character (len= 1 ), intent (in ) :: c ! ! The character to test.
127127 integer :: ic
128128 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' ) )
130130 end function
131131
132132 ! > Checks whether or not `c` is a printable character - including the
@@ -135,7 +135,7 @@ pure logical function is_printable(c)
135135 character (len= 1 ), intent (in ) :: c ! ! The character to test.
136136 integer :: ic
137137 ic = iachar (c) ! '~'
138- is_printable = c >= ' ' .and. ic <= z' 7E'
138+ is_printable = c >= ' ' .and. ic <= int ( z' 7E' )
139139 end function
140140
141141 ! > Checks whether `c` is a lowercase ASCII letter (a .. z).
@@ -157,7 +157,7 @@ pure logical function is_white(c)
157157 character (len= 1 ), intent (in ) :: c ! ! The character to test.
158158 integer :: ic
159159 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' ) );
161161 end function
162162
163163 ! > Checks whether or not `c` is a blank character. That includes the
@@ -166,7 +166,7 @@ pure logical function is_blank(c)
166166 character (len= 1 ), intent (in ) :: c ! ! The character to test.
167167 integer :: ic
168168 ic = iachar (c) ! TAB
169- is_blank = (c == ' ' ) .or. (ic == z' 09' );
169+ is_blank = (c == ' ' ) .or. (ic == int ( z' 09' ) );
170170 end function
171171
172172 ! > Returns the corresponding lowercase letter, if `c` is an uppercase
@@ -193,4 +193,4 @@ pure function to_upper(c) result(t)
193193 if (is_lower(t)) t = achar (iachar (t) + diff)
194194 end function
195195
196- end module
196+ end module
0 commit comments