35 lines
765 B
Plaintext
35 lines
765 B
Plaintext
vardef isbetween(expr a, i, f) =
|
|
if string a:
|
|
if (ASCII(a) >= ASCII(i)) and (ASCII(a) <= ASCII(f)):
|
|
true
|
|
else:
|
|
false
|
|
fi
|
|
else:
|
|
false
|
|
fi enddef;
|
|
|
|
vardef toupper(expr s) =
|
|
save ?; string ?; ? := ""; d := ASCII"A" - ASCII"a";
|
|
for i = 0 upto length(s)-1:
|
|
if isbetween(substring(i, i+1) of s, "a", "z"):
|
|
? := ? & char(ASCII(substring(i,i+1) of s) + d)
|
|
else:
|
|
? := ? & substring(i, i+1) of s
|
|
fi;
|
|
endfor
|
|
?
|
|
enddef;
|
|
|
|
vardef tolower(expr s) =
|
|
save ?; string ?; ? := ""; d := ASCII"a" - ASCII"A";
|
|
for i = 0 upto length(s)-1:
|
|
if isbetween(substring(i, i+1) of s, "A", "Z"):
|
|
? := ? & char(ASCII(substring(i,i+1) of s) + d)
|
|
else:
|
|
? := ? & substring(i, i+1) of s
|
|
fi;
|
|
endfor
|
|
?
|
|
enddef;
|