29 integer,
parameter::
s_eof = -128
41 character(STRING),
private,
save::
thisline =
"" 42 integer,
private,
save::
i = 1
48 character(*),
intent(in):: line
56 integer,
intent(out):: tokentype
57 integer,
intent(out):: ivalue(5)
58 real(DP),
intent(out):: dvalue
59 character(*),
intent(out):: cvalue
60 integer:: iend, istr, ilen, ios
118 call match(
"^[-+]?#d*#.#d*[EeDd][-+]?#d+",
thisline(
i:), istr, ilen)
119 if (istr <= 0)
call match(
"^[-+]?#d*#.#d*",
thisline(
i:), istr, ilen)
123 if (ios /= 0) dvalue = huge(dvalue)
133 & iostat=ios) ivalue(1)
134 if (ios /= 0) ivalue(1) = huge(1)
character(string), save, private thisline
integer, parameter, public s_exponent
integer, parameter, public s_eof
integer, parameter, public s_openpar
integer, parameter, public s_shift
integer, parameter, public s_real
シンプルな正規表現関数 'match' を提供します.
integer, parameter, public dp
倍精度実数型変数
subroutine, public match(pattern, text, start, length)
integer, parameter, public s_divide
integer, parameter, public s_multiply
integer, parameter, public s_closepar
integer, parameter, public s_text
subroutine, public dcunitsgettoken(tokentype, ivalue, dvalue, cvalue)
subroutine, public dcunitssetline(line)
integer, parameter, public s_integer
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ