124 lines
2.5 KiB
Plaintext
124 lines
2.5 KiB
Plaintext
function main
|
|
local cStr := "This is " + CHR(0) + " a test."
|
|
local cTest, nI, nJ, crlf := CHR(13)+CHR(10)
|
|
|
|
// Test various string operators.
|
|
OUTSTD (LEN(cStr))
|
|
OUTSTD (cStr)
|
|
OUTSTD (UPPER (cStr))
|
|
OUTSTD (LOWER (cStr))
|
|
OUTSTD (CHR (13) + CHR (10))
|
|
OUTSTD (ASC (SUBSTR (cStr, 8)))
|
|
OUTSTD (ASC (SUBSTR (cStr, 9)))
|
|
OUTSTD (ASC (SUBSTR (cStr, 10)))
|
|
OUTSTD (crlf)
|
|
OUTSTD (crlf)
|
|
OUTSTD (crlf)
|
|
OUTSTD (">")
|
|
OUTSTD (LEFT (cStr, 8))
|
|
OUTSTD("<")
|
|
OUTSTD (crlf)
|
|
OUTSTD (">")
|
|
OUTSTD (RIGHT (cStr, 8))
|
|
OUTSTD("<")
|
|
OUTSTD (crlf)
|
|
OUTSTD (ISDIGIT ("9"))
|
|
OUTSTD (crlf)
|
|
OUTSTD (ISDIGIT ("9A"))
|
|
OUTSTD (crlf)
|
|
OUTSTD (ISDIGIT ("AA"))
|
|
OUTSTD (crlf)
|
|
OUTSTD (ISDIGIT ("A"))
|
|
OUTSTD (crlf)
|
|
OUTSTD (crlf)
|
|
cTest := " " + CHR (0) + "ABC" + CHR (0) + " "
|
|
OUTSTD (crlf)
|
|
OUTSTD (">")
|
|
OUTSTD(LTRIM (cTest))
|
|
OUTSTD("<")
|
|
OUTSTD (crlf)
|
|
OUTSTD (">")
|
|
OUTSTD(TRIM (cTest))
|
|
OUTSTD("<")
|
|
OUTSTD (crlf)
|
|
OUTSTD (">")
|
|
OUTSTD(ALLTRIM (cTest))
|
|
OUTSTD("<")
|
|
OUTSTD (crlf)
|
|
OUTSTD (crlf)
|
|
OUTSTD (crlf)
|
|
OUTSTD (">")
|
|
OUTSTD (REPLICATE ("!", 32))
|
|
OUTSTD("<")
|
|
OUTSTD (crlf)
|
|
OUTSTD (">")
|
|
OUTSTD (SPACE (32))
|
|
OUTSTD("<")
|
|
|
|
// Test string copying.
|
|
cTest := cStr
|
|
OUTSTD (crlf)
|
|
OUTSTD (cStr)
|
|
OUTSTD (crlf)
|
|
OUTSTD (cTest)
|
|
OUTSTD (crlf)
|
|
OUTSTD (crlf)
|
|
|
|
// Test string concatenation.
|
|
cTest += cStr
|
|
OUTSTD (crlf)
|
|
OUTSTD (cStr)
|
|
OUTSTD (crlf)
|
|
OUTSTD (cTest)
|
|
OUTSTD (crlf)
|
|
OUTSTD (crlf)
|
|
|
|
// Test the string comparison operators in the HVM.
|
|
StrTest ("ABC", "ABC")
|
|
StrTest ("ABC", "ABCD")
|
|
StrTest ("ABCD", "ABC")
|
|
StrTest ("ABC", "DEF")
|
|
StrTest ("ABC", "DEFG")
|
|
StrTest ("ABCD", "DEF")
|
|
OUTSTD (crlf)
|
|
OUTSTD (crlf)
|
|
return nil
|
|
|
|
function StrTest (Str1, Str2)
|
|
|
|
OUTSTD (CHR(13)+CHR(10)+CHR(10))
|
|
OUTSTD (Str1)
|
|
OUTSTD (", ")
|
|
OUTSTD (Str2)
|
|
OUTSTD (" == ")
|
|
OUTSTD (Str1 == Str2)
|
|
OUTSTD (", != ")
|
|
OUTSTD (Str1 != Str2)
|
|
OUTSTD (", < ")
|
|
OUTSTD (Str1 < Str2)
|
|
OUTSTD (", <= ")
|
|
OUTSTD (Str1 <= Str2)
|
|
OUTSTD (", > ")
|
|
OUTSTD (Str1 > Str2)
|
|
OUTSTD (", >= ")
|
|
OUTSTD (Str1 >= Str2)
|
|
|
|
OUTSTD (CHR(13)+CHR(10))
|
|
OUTSTD (Str2)
|
|
OUTSTD (", ")
|
|
OUTSTD (Str1)
|
|
OUTSTD (" == ")
|
|
OUTSTD (Str2 == Str1)
|
|
OUTSTD (", != ")
|
|
OUTSTD (Str2 != Str1)
|
|
OUTSTD (", < ")
|
|
OUTSTD (Str2 < Str1)
|
|
OUTSTD (", <= ")
|
|
OUTSTD (Str2 <= Str1)
|
|
OUTSTD (", > ")
|
|
OUTSTD (Str2 > Str1)
|
|
OUTSTD (", >= ")
|
|
OUTSTD (Str2 >= Str1)
|
|
|
|
return nil
|