opcodes[]: global scope global { global scope implicit__test_str { } type utf8str: type ucs1str: type ucs2str: type FD: type BlockDevice: type IdeBlockDevice: type I2cBlockDevice: type SerialDevice: void test_str () { local scope ANON var ucs1str a var ucs1str b var ucs1str c var ucs1str d local scope ANON var ucs1str a var ucs1str b "abcd" ( -- ucs1str ) lvar-2+2 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) "abcd" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) eqstr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) "abcd" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) eqstr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) lvar-2+2 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) eqstr ( ucs1str¢, ucs1str¢ -- bool ) call assert1 ( bool ) 1 ( -- bool ) call assert1 ( bool ) lvar-2+2 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) "abcd" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) nestr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert0 ( bool ) "abcd" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) nestr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert0 ( bool ) lvar-2+2 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) nestr ( ucs1str¢, ucs1str¢ -- bool ) call assert0 ( bool ) 0 ( -- bool ) call assert0 ( bool ) lvar-2+2 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) "abcde" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) nestr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) lvar-2+2 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) "abcD" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) nestr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) "abcde" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) nestr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) "abCd" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) nestr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) 1 ( -- bool ) call assert1 ( bool ) 1 ( -- bool ) call assert1 ( bool ) 1 ( -- bool ) call assert1 ( bool ) 1 ( -- bool ) call assert1 ( bool ) lvar-2+2 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) "abcde" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) eqstr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert0 ( bool ) lvar-2+2 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) "abcD" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) eqstr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert0 ( bool ) "abcde" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) eqstr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert0 ( bool ) "abCd" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) eqstr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert0 ( bool ) 0 ( -- bool ) call assert0 ( bool ) 0 ( -- bool ) call assert0 ( bool ) 0 ( -- bool ) call assert0 ( bool ) 0 ( -- bool ) call assert0 ( bool ) "aBcd" ( -- ucs1str ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) lvar-4+6 "b" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) nestr ( ucs1str¢, ucs1str¢ -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) lvar-4+6 "b" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) eqstr ( ucs1str¢, ucs1str¢ -- bool ) call assert0 ( bool ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) retain ( ucs1str¢ -- ucs1str ) lvar-4+6 "b" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) retain ( ucs1str¢ -- ucs1str ) addarray ( ucs1str, ucs1str -- ucs1str ) "c=" ( -- ucs1str ) lvar-6+8 "c" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) retain ( ucs1str¢ -- ucs1str ) addarray ( ucs1str, ucs1str -- ucs1str ) " " ( -- ucs1str ) addarray ( ucs1str, ucs1str -- ucs1str ) call puts ( ucs1str ) lvar-6+6 "c" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) 1 ( -- int16 ) 5 ( -- int16 ) substr ( ucs1str¢, int16, int16 -- ucs1char[to] ) cast ( ucs1char[to] -- ucs1str ) "d=" ( -- ucs1str ) lvar-8+10 "d" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) retain ( ucs1str¢ -- ucs1str ) addarray ( ucs1str, ucs1str -- ucs1str ) " " ( -- ucs1str ) addarray ( ucs1str, ucs1str -- ucs1str ) call puts ( ucs1str ) dispose ( ucs1str -- ) dispose ( ucs1str -- ) dispose ( ucs1str -- ) dispose ( ucs1str -- ) "1234" ( -- ucs1str ) 1234 ( -- uint16 ) call numstr ( uint16 -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) eqstr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) "123" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) cast ( ucs1str¢ -- ucs1char[to] ) lvar-2+8 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) cast ( ucs1str¢ -- ucs1char[to] ) ltstr ( ucs1char[to], ucs1char[to] -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) "123" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) cast ( ucs1str¢ -- ucs1char[to] ) lvar-2+8 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) cast ( ucs1str¢ -- ucs1char[to] ) lestr ( ucs1char[to], ucs1char[to] -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) "1234" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) cast ( ucs1str¢ -- ucs1char[to] ) lvar-2+8 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) cast ( ucs1str¢ -- ucs1char[to] ) lestr ( ucs1char[to], ucs1char[to] -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) "12343" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) cast ( ucs1str¢ -- ucs1char[to] ) lvar-2+8 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) cast ( ucs1str¢ -- ucs1char[to] ) ltstr ( ucs1char[to], ucs1char[to] -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert0 ( bool ) "12340" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) cast ( ucs1str¢ -- ucs1char[to] ) lvar-2+8 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) cast ( ucs1str¢ -- ucs1char[to] ) lestr ( ucs1char[to], ucs1char[to] -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert0 ( bool ) "" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) cast ( ucs1str¢ -- ucs1char[to] ) lvar-2+8 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) cast ( ucs1str¢ -- ucs1char[to] ) lestr ( ucs1char[to], ucs1char[to] -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) "" ( -- ucs1str ) "" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) lvar-4+6 "b" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) eqstr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) retain ( ucs1str¢ -- ucs1str ) lvar-4+6 "b" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) retain ( ucs1str¢ -- ucs1str ) addarray ( ucs1str, ucs1str -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) lvar-2+6 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) eqstr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) lvar-4+4 "b" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) retain ( ucs1str¢ -- ucs1str ) lvar-2+6 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) retain ( ucs1str¢ -- ucs1str ) addarray ( ucs1str, ucs1str -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) lvar-2+6 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) eqstr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) 5 ( -- int16 ) 32767 ( -- int16 ) substr ( ucs1str¢, int16, int16 -- ucs1char[to] ) lvar-4+10 "b" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) eqstr ( ucs1char[to], ucs1str¢ -- bool ) call assert1 ( bool ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) 0 ( -- int16 ) 3 ( -- int16 ) substr ( ucs1str¢, int16, int16 -- ucs1char[to] ) "123" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) eqstr ( ucs1char[to], ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) 1 ( -- int16 ) 3 ( -- int16 ) substr ( ucs1str¢, int16, int16 -- ucs1char[to] ) "23" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) eqstr ( ucs1char[to], ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) 1 ( -- int16 ) 9 ( -- int16 ) substr ( ucs1str¢, int16, int16 -- ucs1char[to] ) "234" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) eqstr ( ucs1char[to], ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) 2 ( -- int16 ) 2 ( -- int16 ) substr ( ucs1str¢, int16, int16 -- ucs1char[to] ) "" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) eqstr ( ucs1char[to], ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) 3 ( -- int16 ) 2 ( -- int16 ) substr ( ucs1str¢, int16, int16 -- ucs1char[to] ) "" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) eqstr ( ucs1char[to], ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert1 ( bool ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) 9 ( -- int16 ) 7 ( -- int16 ) substr ( ucs1str¢, int16, int16 -- ucs1char[to] ) lvar-4+10 "b" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) eqstr ( ucs1char[to], ucs1str¢ -- bool ) call assert1 ( bool ) lvar-4+4 "b" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) "" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) nestr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert0 ( bool ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) lvar-2+6 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) retain ( ucs1str¢ -- ucs1str ) lvar-4+8 "b" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) retain ( ucs1str¢ -- ucs1str ) addarray ( ucs1str, ucs1str -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) nestr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert0 ( bool ) lvar-2+4 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) lvar-4+6 "b" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) retain ( ucs1str¢ -- ucs1str ) lvar-2+8 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) retain ( ucs1str¢ -- ucs1str ) addarray ( ucs1str, ucs1str -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) nestr ( ucs1str¢, ucs1str¢ -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert0 ( bool ) lvar-4+4 "b" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) lvar-2+6 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) 5 ( -- int16 ) 32767 ( -- int16 ) substr ( ucs1str¢, int16, int16 -- ucs1char[to] ) nestr ( ucs1str¢, ucs1char[to] -- bool ) call assert0 ( bool ) "123" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) lvar-2+6 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) 0 ( -- int16 ) 3 ( -- int16 ) substr ( ucs1str¢, int16, int16 -- ucs1char[to] ) nestr ( ucs1str¢, ucs1char[to] -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert0 ( bool ) "23" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) lvar-2+6 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) 1 ( -- int16 ) 3 ( -- int16 ) substr ( ucs1str¢, int16, int16 -- ucs1char[to] ) nestr ( ucs1str¢, ucs1char[to] -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert0 ( bool ) "234" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) lvar-2+6 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) 1 ( -- int16 ) 9 ( -- int16 ) substr ( ucs1str¢, int16, int16 -- ucs1char[to] ) nestr ( ucs1str¢, ucs1char[to] -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert0 ( bool ) "" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) lvar-2+6 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) 2 ( -- int16 ) 2 ( -- int16 ) substr ( ucs1str¢, int16, int16 -- ucs1char[to] ) nestr ( ucs1str¢, ucs1char[to] -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert0 ( bool ) "" ( -- ucs1str ) dup2r ( ucs1str -- ucs1str¢ ) lvar-2+6 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) 3 ( -- int16 ) 2 ( -- int16 ) substr ( ucs1str¢, int16, int16 -- ucs1char[to] ) nestr ( ucs1str¢, ucs1char[to] -- bool ) fromr ( -- ucs1str ) dispose ( ucs1str -- ) call assert0 ( bool ) lvar-4+4 "b" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) lvar-2+6 "a" ( -- ucs1str& ) peek ( ucs1str& -- ucs1str¢ ) 9 ( -- int16 ) 7 ( -- int16 ) substr ( ucs1str¢, int16, int16 -- ucs1char[to] ) nestr ( ucs1str¢, ucs1char[to] -- bool ) call assert0 ( bool ) dispose ( ucs1str -- ) dispose ( ucs1str -- ) local scope ANON { } local scope ANON { } } }