words[]: type Tid = Thread ¢ const bool yes = 1 , no = 0 const uint ok = 0 const { float pi = 3.1415926535898 float ec = 2.718281828459 } enum int FD = { stdin , stdout , stderr , fd_void = - 1 } enum int16 s_type = { s_none = - 1 , s_unknown = 0 , s_any = 0 , s_pipe = 1 , s_tty = 2 , s_dir = 4 , s_block = 6 , s_file = 8 , s_link = 10 , s_socket = 12 , s_erased = 14 } enum { fnm_pathname = 2 , fnm_nohidden = 4 , fnm_casefold = 16 } enum { f_follow_symlink = 1 , f_create_path = 2 } type FileInfo = { str filename ; uint16 filetype ; uint16 permissions ; uint32 user ; uint32 group ; uint32 _dummy ; uint64 count ; float64 ctime ; float64 mtime ; float64 atime ; } ; enum { s_packetized = 1 << 0 , s_connected = 1 << 1 , s_unreliable = 1 << 2 , s_listening = 1 << 3 } type Stream = { int16 fd ; int8 filetype ; int8 streamtype ; uint32 stopctls ; str filepath ; int32 out_state ; int32 in_state ; Irpt out_irpt ; float64 out_lastio ; float64 out_timeout ; int8 [ ] out_data ; int8 * out_ptr ; Irpt in_irpt ; float64 in_lastio ; float64 in_timeout ; int8 [ ] in_data ; int8 * in_ptr ; int8 [ ] putbackbuffer ; } enum SocketDomainType = { local = 0 , inet = 16 , stream = 1 , packet = 2 , datagram = 3 , tcp = inet + stream , udp = inet + datagram } extern { bool match ( str ¢ string , str ¢ pattern , uint flags ) = opcode match str fullpath ( str ¢ path , uint flags ) = opcode fullpath s_type nodetype ( str ¢ path , bool resolve_symlink ) = opcode nodetype FileInfo fileinfo ( str ¢ path , bool resolve_symlink ) = opcode fileinfo void renamefile ( str ¢ path , str ¢ newpath , bool replace ) = opcode renamefile void swapfiles ( str ¢ path , str ¢ path2 ) = opcode swapfiles str tempfile ( str ¢ renamable_to_path ) = opcode tempfile FD tempfile ( ) = opcode tempfile utf8str readfile ( str ¢ path ) = opcode readfile str readlink ( str ¢ path ) = opcode readlink FileInfo [ ] readdir ( str ¢ path ) = opcode readdir void createfile ( str ¢ path , uint8 [ ] ¢ data , uint how , uint mode ) = opcode createfile void createfile ( str ¢ path , utf8str ¢ data , uint how , uint mode ) = opcode createfile void createlink ( str ¢ path , str ¢ data ) = opcode createlink void createdir ( str ¢ path , uint mode ) = opcode createdir void createpipe ( str ¢ path , uint mode ) = opcode createpipe void rmvfile ( str ¢ path ) = opcode rmvfile void rmvlink ( str ¢ path ) = opcode rmvlink void rmvdir ( str ¢ path , bool fulltree ) = opcode rmvdir FD socket ( SocketDomainType , str ¢ myaddress ) = opcode socket void connect ( FD , str ¢ peeraddress ) = opcode connect FD accept ( FD ) = opcode accept FD open ( str ¢ , uint how , uint mode ) = opcode open FD open ( str ¢ , uint how ) = opcode open void close ( FD ) = opcode close long fpos ( FD ) = opcode fpos long flen ( FD ) = opcode flen void seek ( FD , ulong ) = opcode fseek void truncate ( FD ) = opcode truncate str errorstr ( int error ) = opcode errorstr str errorstr ( ) = opcode errorstr void print ( str ) = opcode print void print ( str ¢ ) = opcode print void print ( int ) = opcode print void print ( uint ) = opcode print void print ( long ) = opcode print void print ( ulong ) = opcode print void putchar ( utf8char ) = opcode putbyte void putchar ( ucs1char ) = opcode putchar void putchar ( ucs2char ) = opcode putchar void putchar ( ucs4char ) = opcode putchar char getchar ( ) = opcode getchar void write ( FD , int8 ) = opcode write void write ( FD , int16 ) = opcode write void write ( FD , int32 ) = opcode write void write ( FD , int64 ) = opcode write void write ( FD , uint8 ) = opcode write void write ( FD , uint16 ) = opcode write void write ( FD , uint32 ) = opcode write void write ( FD , uint64 ) = opcode write void write ( FD , str ¢ ) = opcode write void write ( FD , str ) = opcode write int8 read ( FD ) = opcode read int16 read ( FD ) = opcode read int32 read ( FD ) = opcode read int64 read ( FD ) = opcode read uint8 read ( FD ) = opcode read uint16 read ( FD ) = opcode read uint32 read ( FD ) = opcode read uint64 read ( FD ) = opcode read str read ( FD ) = opcode read void read ( FD , str ¢ ) = opcode read void read ( FD , str ¢ , uint32 ) = opcode read bool isfile ( str ¢ path ) bool isdir ( str ¢ path ) bool islink ( str ¢ path ) FileInfo fileinfo ( str ¢ path ) void createfile ( str ¢ path , uint8 [ ] ¢ data , uint how ) void createfile ( str ¢ path , uint8 [ ] ¢ data ) void createdir ( str ¢ path ) void createpipe ( str ¢ path ) } float32 round ( float32 ) = opcode round ; float32 floor ( float32 ) = opcode floor ; float32 ceil ( float32 ) = opcode ceil ; float32 integ ( float32 ) = opcode integ ; float32 fract ( float32 ) = opcode fract ; int sign ( float32 ) = opcode sign ; float32 abs ( float32 ) = opcode abs ; float32 min ( float32 , float32 ) = opcode min ; float32 max ( float32 , float32 ) = opcode max ; float32 min ( float32 , float32 , float32 ) = opcode min ; float32 max ( float32 , float32 , float32 ) = opcode max ; float32 random ( ) = opcode random ; float32 random ( float32 ) = opcode random ; float32 sin ( float32 ) = opcode sin ; float32 cos ( float32 ) = opcode cos ; float32 tan ( float32 ) = opcode tan ; float32 asin ( float32 ) = opcode asin ; float32 acos ( float32 ) = opcode acos ; float32 atan ( float32 ) = opcode atan ; float32 sinh ( float32 ) = opcode sinh ; float32 cosh ( float32 ) = opcode cosh ; float32 tanh ( float32 ) = opcode tanh ; float32 exp10 ( float32 ) = opcode exp10 ; float32 log10 ( float32 ) = opcode log10 ; float32 exp2 ( float32 ) = opcode exp2 ; float32 log2 ( float32 ) = opcode log2 ; float32 expe ( float32 ) = opcode expe ; float32 loge ( float32 ) = opcode loge ; float32 exp ( float32 , float32 ) = opcode exp ; float32 log ( float32 , float32 ) = opcode log ; float32 pow ( float32 , int ) = opcode pow ; float32 sqrt ( float32 ) = opcode sqrt ; str numstr ( float32 ) = opcode numstr ; float32 numval ( str ¢ ) = opcode numval ; float32 min ( float32 [ ] ¢ ) = opcode min ; float32 min ( float32 [ to ] ) = opcode min ; float32 max ( float32 [ ] ¢ ) = opcode max ; float32 max ( float32 [ to ] ) = opcode max ; void print ( float32 ) = opcode print ; void write ( FD , float32 ) = opcode write ; float32 read ( FD ) = opcode read ; scope float32 { float32 mant ( float32 ) = opcode mant ; int exp ( float32 ) = opcode frexp ; } float64 round ( float64 ) = opcode round ; float64 floor ( float64 ) = opcode floor ; float64 ceil ( float64 ) = opcode ceil ; float64 integ ( float64 ) = opcode integ ; float64 fract ( float64 ) = opcode fract ; int sign ( float64 ) = opcode sign ; float64 abs ( float64 ) = opcode abs ; float64 min ( float64 , float64 ) = opcode min ; float64 max ( float64 , float64 ) = opcode max ; float64 min ( float64 , float64 , float64 ) = opcode min ; float64 max ( float64 , float64 , float64 ) = opcode max ; float64 random ( ) = opcode random ; float64 random ( float64 ) = opcode random ; float64 sin ( float64 ) = opcode sin ; float64 cos ( float64 ) = opcode cos ; float64 tan ( float64 ) = opcode tan ; float64 asin ( float64 ) = opcode asin ; float64 acos ( float64 ) = opcode acos ; float64 atan ( float64 ) = opcode atan ; float64 sinh ( float64 ) = opcode sinh ; float64 cosh ( float64 ) = opcode cosh ; float64 tanh ( float64 ) = opcode tanh ; float64 exp10 ( float64 ) = opcode exp10 ; float64 log10 ( float64 ) = opcode log10 ; float64 exp2 ( float64 ) = opcode exp2 ; float64 log2 ( float64 ) = opcode log2 ; float64 expe ( float64 ) = opcode expe ; float64 loge ( float64 ) = opcode loge ; float64 exp ( float64 , float64 ) = opcode exp ; float64 log ( float64 , float64 ) = opcode log ; float64 pow ( float64 , int ) = opcode pow ; float64 sqrt ( float64 ) = opcode sqrt ; str numstr ( float64 ) = opcode numstr ; float64 numval ( str ¢ ) = opcode numval ; float64 min ( float64 [ ] ¢ ) = opcode min ; float64 min ( float64 [ to ] ) = opcode min ; float64 max ( float64 [ ] ¢ ) = opcode max ; float64 max ( float64 [ to ] ) = opcode max ; void print ( float64 ) = opcode print ; void write ( FD , float64 ) = opcode write ; float64 read ( FD ) = opcode read ; scope float64 { float64 mant ( float64 ) = opcode mant ; int exp ( float64 ) = opcode frexp ; } float128 round ( float128 ) = opcode round ; float128 floor ( float128 ) = opcode floor ; float128 ceil ( float128 ) = opcode ceil ; float128 integ ( float128 ) = opcode integ ; float128 fract ( float128 ) = opcode fract ; int sign ( float128 ) = opcode sign ; float128 abs ( float128 ) = opcode abs ; float128 min ( float128 , float128 ) = opcode min ; float128 max ( float128 , float128 ) = opcode max ; float128 min ( float128 , float128 , float128 ) = opcode min ; float128 max ( float128 , float128 , float128 ) = opcode max ; float128 random ( ) = opcode random ; float128 random ( float128 ) = opcode random ; float128 sin ( float128 ) = opcode sin ; float128 cos ( float128 ) = opcode cos ; float128 tan ( float128 ) = opcode tan ; float128 asin ( float128 ) = opcode asin ; float128 acos ( float128 ) = opcode acos ; float128 atan ( float128 ) = opcode atan ; float128 sinh ( float128 ) = opcode sinh ; float128 cosh ( float128 ) = opcode cosh ; float128 tanh ( float128 ) = opcode tanh ; float128 exp10 ( float128 ) = opcode exp10 ; float128 log10 ( float128 ) = opcode log10 ; float128 exp2 ( float128 ) = opcode exp2 ; float128 log2 ( float128 ) = opcode log2 ; float128 expe ( float128 ) = opcode expe ; float128 loge ( float128 ) = opcode loge ; float128 exp ( float128 , float128 ) = opcode exp ; float128 log ( float128 , float128 ) = opcode log ; float128 pow ( float128 , int ) = opcode pow ; float128 sqrt ( float128 ) = opcode sqrt ; str numstr ( float128 ) = opcode numstr ; float128 numval ( str ¢ ) = opcode numval ; float128 min ( float128 [ ] ¢ ) = opcode min ; float128 min ( float128 [ to ] ) = opcode min ; float128 max ( float128 [ ] ¢ ) = opcode max ; float128 max ( float128 [ to ] ) = opcode max ; void print ( float128 ) = opcode print ; void write ( FD , float128 ) = opcode write ; float128 read ( FD ) = opcode read ; scope float128 { float128 mant ( float128 ) = opcode mant ; int exp ( float128 ) = opcode frexp ; } int sign ( int8 ) = opcode sign int sign ( int16 ) = opcode sign int sign ( int32 ) = opcode sign int sign ( int64 ) = opcode sign uint8 abs ( int8 ) = opcode abs uint16 abs ( int16 ) = opcode abs uint32 abs ( int32 ) = opcode abs uint64 abs ( int64 ) = opcode abs int16 swap ( int16 ) = opcode swap uint16 swap ( uint16 ) = opcode swap int32 swap ( int32 ) = opcode swap uint32 swap ( uint32 ) = opcode swap int64 swap ( int64 ) = opcode swap uint64 swap ( uint64 ) = opcode swap int16 hilo ( int16 ) = opcode hilo uint16 hilo ( uint16 ) = opcode hilo int32 hilo ( int32 ) = opcode hilo uint32 hilo ( uint32 ) = opcode hilo int64 hilo ( int64 ) = opcode hilo uint64 hilo ( uint64 ) = opcode hilo int16 lohi ( int16 ) = opcode lohi uint16 lohi ( uint16 ) = opcode lohi int32 lohi ( int32 ) = opcode lohi uint32 lohi ( uint32 ) = opcode lohi int64 lohi ( int64 ) = opcode lohi uint64 lohi ( uint64 ) = opcode lohi uint8 flip ( uint8 ) = opcode flip uint16 flip ( uint16 ) = opcode flip uint32 flip ( uint32 ) = opcode flip uint64 flip ( uint64 ) = opcode flip int pow ( int , int ) = opcode pow uint pow ( uint , int ) = opcode pow long pow ( long , int ) = opcode pow ulong pow ( ulong , int ) = opcode pow uint random ( uint ) = opcode random ulong random ( ulong ) = opcode random void flip ( byte [ to ] ) = opcode flip ; void rol ( byte [ to ] ) = opcode rol ; void ror ( byte [ to ] ) = opcode ror ; void sort ( byte [ to ] ) = opcode sort ; void rsort ( byte [ to ] ) = opcode rsort ; void shuffle ( byte [ to ] ) = opcode shuffle ; void revert ( byte [ to ] ) = opcode revert ; byte [ ] join ( byte [ ] [ ] ¢ , byte ) = opcode join ; byte [ ] join ( byte [ ] [ ] ¢ , byte [ ] ¢ ) = opcode join ; byte [ ] [ ] split ( byte [ ] ¢ , byte ) = opcode split ; byte [ ] [ ] split ( byte [ ] ¢ , byte [ ] ¢ ) = opcode split ; byte min ( byte , byte ) = opcode min ; byte min ( byte [ to ] ) = opcode min ; byte max ( byte , byte ) = opcode max ; byte max ( byte [ to ] ) = opcode max ; uint find ( byte [ to ] , byte ) = opcode find ; uint find ( byte [ to ] , byte [ ] ¢ ) = opcode find ; uint rfind ( byte [ to ] , byte ) = opcode rfind ; uint rfind ( byte [ to ] , byte [ ] ¢ ) = opcode rfind ; void shrinktofit ( byte [ ] & ) = opcode shrinktofit byte [ to ] substr ( byte [ ] ¢ , uint a , uint e ) = opcode substr byte [ to ] midstr ( byte [ ] ¢ , uint i , uint n ) = opcode midstr byte [ to ] leftstr ( byte [ ] ¢ , uint n ) = opcode leftstr byte [ to ] rightstr ( byte [ ] ¢ , uint n ) = opcode rightstr byte numval ( utf8str ¢ ) = opcode numval byte numval ( ucs1str ¢ ) = opcode numval byte numval ( ucs2str ¢ ) = opcode numval byte numval ( ucs4str ¢ ) = opcode numval void flip ( ubyte [ to ] ) = opcode flip ; void rol ( ubyte [ to ] ) = opcode rol ; void ror ( ubyte [ to ] ) = opcode ror ; void sort ( ubyte [ to ] ) = opcode sort ; void rsort ( ubyte [ to ] ) = opcode rsort ; void shuffle ( ubyte [ to ] ) = opcode shuffle ; void revert ( ubyte [ to ] ) = opcode revert ; ubyte [ ] join ( ubyte [ ] [ ] ¢ , ubyte ) = opcode join ; ubyte [ ] join ( ubyte [ ] [ ] ¢ , ubyte [ ] ¢ ) = opcode join ; ubyte [ ] [ ] split ( ubyte [ ] ¢ , ubyte ) = opcode split ; ubyte [ ] [ ] split ( ubyte [ ] ¢ , ubyte [ ] ¢ ) = opcode split ; ubyte min ( ubyte , ubyte ) = opcode min ; ubyte min ( ubyte [ to ] ) = opcode min ; ubyte max ( ubyte , ubyte ) = opcode max ; ubyte max ( ubyte [ to ] ) = opcode max ; uint find ( ubyte [ to ] , ubyte ) = opcode find ; uint find ( ubyte [ to ] , ubyte [ ] ¢ ) = opcode find ; uint rfind ( ubyte [ to ] , ubyte ) = opcode rfind ; uint rfind ( ubyte [ to ] , ubyte [ ] ¢ ) = opcode rfind ; void shrinktofit ( ubyte [ ] & ) = opcode shrinktofit ubyte [ to ] substr ( ubyte [ ] ¢ , uint a , uint e ) = opcode substr ubyte [ to ] midstr ( ubyte [ ] ¢ , uint i , uint n ) = opcode midstr ubyte [ to ] leftstr ( ubyte [ ] ¢ , uint n ) = opcode leftstr ubyte [ to ] rightstr ( ubyte [ ] ¢ , uint n ) = opcode rightstr ubyte numval ( utf8str ¢ ) = opcode numval ubyte numval ( ucs1str ¢ ) = opcode numval ubyte numval ( ucs2str ¢ ) = opcode numval ubyte numval ( ucs4str ¢ ) = opcode numval void flip ( short [ to ] ) = opcode flip ; void rol ( short [ to ] ) = opcode rol ; void ror ( short [ to ] ) = opcode ror ; void sort ( short [ to ] ) = opcode sort ; void rsort ( short [ to ] ) = opcode rsort ; void shuffle ( short [ to ] ) = opcode shuffle ; void revert ( short [ to ] ) = opcode revert ; short [ ] join ( short [ ] [ ] ¢ , short ) = opcode join ; short [ ] join ( short [ ] [ ] ¢ , short [ ] ¢ ) = opcode join ; short [ ] [ ] split ( short [ ] ¢ , short ) = opcode split ; short [ ] [ ] split ( short [ ] ¢ , short [ ] ¢ ) = opcode split ; short min ( short , short ) = opcode min ; short min ( short [ to ] ) = opcode min ; short max ( short , short ) = opcode max ; short max ( short [ to ] ) = opcode max ; uint find ( short [ to ] , short ) = opcode find ; uint find ( short [ to ] , short [ ] ¢ ) = opcode find ; uint rfind ( short [ to ] , short ) = opcode rfind ; uint rfind ( short [ to ] , short [ ] ¢ ) = opcode rfind ; void shrinktofit ( short [ ] & ) = opcode shrinktofit short [ to ] substr ( short [ ] ¢ , uint a , uint e ) = opcode substr short [ to ] midstr ( short [ ] ¢ , uint i , uint n ) = opcode midstr short [ to ] leftstr ( short [ ] ¢ , uint n ) = opcode leftstr short [ to ] rightstr ( short [ ] ¢ , uint n ) = opcode rightstr short numval ( utf8str ¢ ) = opcode numval short numval ( ucs1str ¢ ) = opcode numval short numval ( ucs2str ¢ ) = opcode numval short numval ( ucs4str ¢ ) = opcode numval void flip ( ushort [ to ] ) = opcode flip ; void rol ( ushort [ to ] ) = opcode rol ; void ror ( ushort [ to ] ) = opcode ror ; void sort ( ushort [ to ] ) = opcode sort ; void rsort ( ushort [ to ] ) = opcode rsort ; void shuffle ( ushort [ to ] ) = opcode shuffle ; void revert ( ushort [ to ] ) = opcode revert ; ushort [ ] join ( ushort [ ] [ ] ¢ , ushort ) = opcode join ; ushort [ ] join ( ushort [ ] [ ] ¢ , ushort [ ] ¢ ) = opcode join ; ushort [ ] [ ] split ( ushort [ ] ¢ , ushort ) = opcode split ; ushort [ ] [ ] split ( ushort [ ] ¢ , ushort [ ] ¢ ) = opcode split ; ushort min ( ushort , ushort ) = opcode min ; ushort min ( ushort [ to ] ) = opcode min ; ushort max ( ushort , ushort ) = opcode max ; ushort max ( ushort [ to ] ) = opcode max ; uint find ( ushort [ to ] , ushort ) = opcode find ; uint find ( ushort [ to ] , ushort [ ] ¢ ) = opcode find ; uint rfind ( ushort [ to ] , ushort ) = opcode rfind ; uint rfind ( ushort [ to ] , ushort [ ] ¢ ) = opcode rfind ; void shrinktofit ( ushort [ ] & ) = opcode shrinktofit ushort [ to ] substr ( ushort [ ] ¢ , uint a , uint e ) = opcode substr ushort [ to ] midstr ( ushort [ ] ¢ , uint i , uint n ) = opcode midstr ushort [ to ] leftstr ( ushort [ ] ¢ , uint n ) = opcode leftstr ushort [ to ] rightstr ( ushort [ ] ¢ , uint n ) = opcode rightstr ushort numval ( utf8str ¢ ) = opcode numval ushort numval ( ucs1str ¢ ) = opcode numval ushort numval ( ucs2str ¢ ) = opcode numval ushort numval ( ucs4str ¢ ) = opcode numval void flip ( int [ to ] ) = opcode flip ; void rol ( int [ to ] ) = opcode rol ; void ror ( int [ to ] ) = opcode ror ; void sort ( int [ to ] ) = opcode sort ; void rsort ( int [ to ] ) = opcode rsort ; void shuffle ( int [ to ] ) = opcode shuffle ; void revert ( int [ to ] ) = opcode revert ; int [ ] join ( int [ ] [ ] ¢ , int ) = opcode join ; int [ ] join ( int [ ] [ ] ¢ , int [ ] ¢ ) = opcode join ; int [ ] [ ] split ( int [ ] ¢ , int ) = opcode split ; int [ ] [ ] split ( int [ ] ¢ , int [ ] ¢ ) = opcode split ; int min ( int , int ) = opcode min ; int min ( int [ to ] ) = opcode min ; int max ( int , int ) = opcode max ; int max ( int [ to ] ) = opcode max ; uint find ( int [ to ] , int ) = opcode find ; uint find ( int [ to ] , int [ ] ¢ ) = opcode find ; uint rfind ( int [ to ] , int ) = opcode rfind ; uint rfind ( int [ to ] , int [ ] ¢ ) = opcode rfind ; void shrinktofit ( int [ ] & ) = opcode shrinktofit int [ to ] substr ( int [ ] ¢ , uint a , uint e ) = opcode substr int [ to ] midstr ( int [ ] ¢ , uint i , uint n ) = opcode midstr int [ to ] leftstr ( int [ ] ¢ , uint n ) = opcode leftstr int [ to ] rightstr ( int [ ] ¢ , uint n ) = opcode rightstr int numval ( utf8str ¢ ) = opcode numval int numval ( ucs1str ¢ ) = opcode numval int numval ( ucs2str ¢ ) = opcode numval int numval ( ucs4str ¢ ) = opcode numval void flip ( uint [ to ] ) = opcode flip ; void rol ( uint [ to ] ) = opcode rol ; void ror ( uint [ to ] ) = opcode ror ; void sort ( uint [ to ] ) = opcode sort ; void rsort ( uint [ to ] ) = opcode rsort ; void shuffle ( uint [ to ] ) = opcode shuffle ; void revert ( uint [ to ] ) = opcode revert ; uint [ ] join ( uint [ ] [ ] ¢ , uint ) = opcode join ; uint [ ] join ( uint [ ] [ ] ¢ , uint [ ] ¢ ) = opcode join ; uint [ ] [ ] split ( uint [ ] ¢ , uint ) = opcode split ; uint [ ] [ ] split ( uint [ ] ¢ , uint [ ] ¢ ) = opcode split ; uint min ( uint , uint ) = opcode min ; uint min ( uint [ to ] ) = opcode min ; uint max ( uint , uint ) = opcode max ; uint max ( uint [ to ] ) = opcode max ; uint find ( uint [ to ] , uint ) = opcode find ; uint find ( uint [ to ] , uint [ ] ¢ ) = opcode find ; uint rfind ( uint [ to ] , uint ) = opcode rfind ; uint rfind ( uint [ to ] , uint [ ] ¢ ) = opcode rfind ; void shrinktofit ( uint [ ] & ) = opcode shrinktofit uint [ to ] substr ( uint [ ] ¢ , uint a , uint e ) = opcode substr uint [ to ] midstr ( uint [ ] ¢ , uint i , uint n ) = opcode midstr uint [ to ] leftstr ( uint [ ] ¢ , uint n ) = opcode leftstr uint [ to ] rightstr ( uint [ ] ¢ , uint n ) = opcode rightstr uint numval ( utf8str ¢ ) = opcode numval uint numval ( ucs1str ¢ ) = opcode numval uint numval ( ucs2str ¢ ) = opcode numval uint numval ( ucs4str ¢ ) = opcode numval void flip ( long [ to ] ) = opcode flip ; void rol ( long [ to ] ) = opcode rol ; void ror ( long [ to ] ) = opcode ror ; void sort ( long [ to ] ) = opcode sort ; void rsort ( long [ to ] ) = opcode rsort ; void shuffle ( long [ to ] ) = opcode shuffle ; void revert ( long [ to ] ) = opcode revert ; long [ ] join ( long [ ] [ ] ¢ , long ) = opcode join ; long [ ] join ( long [ ] [ ] ¢ , long [ ] ¢ ) = opcode join ; long [ ] [ ] split ( long [ ] ¢ , long ) = opcode split ; long [ ] [ ] split ( long [ ] ¢ , long [ ] ¢ ) = opcode split ; long min ( long , long ) = opcode min ; long min ( long [ to ] ) = opcode min ; long max ( long , long ) = opcode max ; long max ( long [ to ] ) = opcode max ; uint find ( long [ to ] , long ) = opcode find ; uint find ( long [ to ] , long [ ] ¢ ) = opcode find ; uint rfind ( long [ to ] , long ) = opcode rfind ; uint rfind ( long [ to ] , long [ ] ¢ ) = opcode rfind ; void shrinktofit ( long [ ] & ) = opcode shrinktofit long [ to ] substr ( long [ ] ¢ , uint a , uint e ) = opcode substr long [ to ] midstr ( long [ ] ¢ , uint i , uint n ) = opcode midstr long [ to ] leftstr ( long [ ] ¢ , uint n ) = opcode leftstr long [ to ] rightstr ( long [ ] ¢ , uint n ) = opcode rightstr long numval ( utf8str ¢ ) = opcode numval long numval ( ucs1str ¢ ) = opcode numval long numval ( ucs2str ¢ ) = opcode numval long numval ( ucs4str ¢ ) = opcode numval void flip ( ulong [ to ] ) = opcode flip ; void rol ( ulong [ to ] ) = opcode rol ; void ror ( ulong [ to ] ) = opcode ror ; void sort ( ulong [ to ] ) = opcode sort ; void rsort ( ulong [ to ] ) = opcode rsort ; void shuffle ( ulong [ to ] ) = opcode shuffle ; void revert ( ulong [ to ] ) = opcode revert ; ulong [ ] join ( ulong [ ] [ ] ¢ , ulong ) = opcode join ; ulong [ ] join ( ulong [ ] [ ] ¢ , ulong [ ] ¢ ) = opcode join ; ulong [ ] [ ] split ( ulong [ ] ¢ , ulong ) = opcode split ; ulong [ ] [ ] split ( ulong [ ] ¢ , ulong [ ] ¢ ) = opcode split ; ulong min ( ulong , ulong ) = opcode min ; ulong min ( ulong [ to ] ) = opcode min ; ulong max ( ulong , ulong ) = opcode max ; ulong max ( ulong [ to ] ) = opcode max ; uint find ( ulong [ to ] , ulong ) = opcode find ; uint find ( ulong [ to ] , ulong [ ] ¢ ) = opcode find ; uint rfind ( ulong [ to ] , ulong ) = opcode rfind ; uint rfind ( ulong [ to ] , ulong [ ] ¢ ) = opcode rfind ; void shrinktofit ( ulong [ ] & ) = opcode shrinktofit ulong [ to ] substr ( ulong [ ] ¢ , uint a , uint e ) = opcode substr ulong [ to ] midstr ( ulong [ ] ¢ , uint i , uint n ) = opcode midstr ulong [ to ] leftstr ( ulong [ ] ¢ , uint n ) = opcode leftstr ulong [ to ] rightstr ( ulong [ ] ¢ , uint n ) = opcode rightstr ulong numval ( utf8str ¢ ) = opcode numval ulong numval ( ucs1str ¢ ) = opcode numval ulong numval ( ucs2str ¢ ) = opcode numval ulong numval ( ucs4str ¢ ) = opcode numval void flip ( utf8char [ to ] ) = opcode flip ; void rol ( utf8char [ to ] ) = opcode rol ; void ror ( utf8char [ to ] ) = opcode ror ; void sort ( utf8char [ to ] ) = opcode sort ; void rsort ( utf8char [ to ] ) = opcode rsort ; void shuffle ( utf8char [ to ] ) = opcode shuffle ; void revert ( utf8char [ to ] ) = opcode revert ; utf8char [ ] join ( utf8char [ ] [ ] ¢ , utf8char ) = opcode join ; utf8char [ ] join ( utf8char [ ] [ ] ¢ , utf8char [ ] ¢ ) = opcode join ; utf8char [ ] [ ] split ( utf8char [ ] ¢ , utf8char ) = opcode split ; utf8char [ ] [ ] split ( utf8char [ ] ¢ , utf8char [ ] ¢ ) = opcode split ; utf8char min ( utf8char , utf8char ) = opcode min ; utf8char min ( utf8char [ to ] ) = opcode min ; utf8char max ( utf8char , utf8char ) = opcode max ; utf8char max ( utf8char [ to ] ) = opcode max ; uint find ( utf8char [ to ] , utf8char ) = opcode find ; uint find ( utf8char [ to ] , utf8char [ ] ¢ ) = opcode find ; uint rfind ( utf8char [ to ] , utf8char ) = opcode rfind ; uint rfind ( utf8char [ to ] , utf8char [ ] ¢ ) = opcode rfind ; void shrinktofit ( utf8char [ ] & ) = opcode shrinktofit utf8char [ to ] substr ( utf8char [ ] ¢ , uint a , uint e ) = opcode substr utf8char [ to ] midstr ( utf8char [ ] ¢ , uint i , uint n ) = opcode midstr utf8char [ to ] leftstr ( utf8char [ ] ¢ , uint n ) = opcode leftstr utf8char [ to ] rightstr ( utf8char [ ] ¢ , uint n ) = opcode rightstr utf8char numval ( utf8str ¢ ) = opcode numval utf8char numval ( ucs1str ¢ ) = opcode numval utf8char numval ( ucs2str ¢ ) = opcode numval utf8char numval ( ucs4str ¢ ) = opcode numval void flip ( ucs1char [ to ] ) = opcode flip ; void rol ( ucs1char [ to ] ) = opcode rol ; void ror ( ucs1char [ to ] ) = opcode ror ; void sort ( ucs1char [ to ] ) = opcode sort ; void rsort ( ucs1char [ to ] ) = opcode rsort ; void shuffle ( ucs1char [ to ] ) = opcode shuffle ; void revert ( ucs1char [ to ] ) = opcode revert ; ucs1char [ ] join ( ucs1char [ ] [ ] ¢ , ucs1char ) = opcode join ; ucs1char [ ] join ( ucs1char [ ] [ ] ¢ , ucs1char [ ] ¢ ) = opcode join ; ucs1char [ ] [ ] split ( ucs1char [ ] ¢ , ucs1char ) = opcode split ; ucs1char [ ] [ ] split ( ucs1char [ ] ¢ , ucs1char [ ] ¢ ) = opcode split ; ucs1char min ( ucs1char , ucs1char ) = opcode min ; ucs1char min ( ucs1char [ to ] ) = opcode min ; ucs1char max ( ucs1char , ucs1char ) = opcode max ; ucs1char max ( ucs1char [ to ] ) = opcode max ; uint find ( ucs1char [ to ] , ucs1char ) = opcode find ; uint find ( ucs1char [ to ] , ucs1char [ ] ¢ ) = opcode find ; uint rfind ( ucs1char [ to ] , ucs1char ) = opcode rfind ; uint rfind ( ucs1char [ to ] , ucs1char [ ] ¢ ) = opcode rfind ; void shrinktofit ( ucs1char [ ] & ) = opcode shrinktofit ucs1char [ to ] substr ( ucs1char [ ] ¢ , uint a , uint e ) = opcode substr ucs1char [ to ] midstr ( ucs1char [ ] ¢ , uint i , uint n ) = opcode midstr ucs1char [ to ] leftstr ( ucs1char [ ] ¢ , uint n ) = opcode leftstr ucs1char [ to ] rightstr ( ucs1char [ ] ¢ , uint n ) = opcode rightstr ucs1char numval ( utf8str ¢ ) = opcode numval ucs1char numval ( ucs1str ¢ ) = opcode numval ucs1char numval ( ucs2str ¢ ) = opcode numval ucs1char numval ( ucs4str ¢ ) = opcode numval void flip ( ucs2char [ to ] ) = opcode flip ; void rol ( ucs2char [ to ] ) = opcode rol ; void ror ( ucs2char [ to ] ) = opcode ror ; void sort ( ucs2char [ to ] ) = opcode sort ; void rsort ( ucs2char [ to ] ) = opcode rsort ; void shuffle ( ucs2char [ to ] ) = opcode shuffle ; void revert ( ucs2char [ to ] ) = opcode revert ; ucs2char [ ] join ( ucs2char [ ] [ ] ¢ , ucs2char ) = opcode join ; ucs2char [ ] join ( ucs2char [ ] [ ] ¢ , ucs2char [ ] ¢ ) = opcode join ; ucs2char [ ] [ ] split ( ucs2char [ ] ¢ , ucs2char ) = opcode split ; ucs2char [ ] [ ] split ( ucs2char [ ] ¢ , ucs2char [ ] ¢ ) = opcode split ; ucs2char min ( ucs2char , ucs2char ) = opcode min ; ucs2char min ( ucs2char [ to ] ) = opcode min ; ucs2char max ( ucs2char , ucs2char ) = opcode max ; ucs2char max ( ucs2char [ to ] ) = opcode max ; uint find ( ucs2char [ to ] , ucs2char ) = opcode find ; uint find ( ucs2char [ to ] , ucs2char [ ] ¢ ) = opcode find ; uint rfind ( ucs2char [ to ] , ucs2char ) = opcode rfind ; uint rfind ( ucs2char [ to ] , ucs2char [ ] ¢ ) = opcode rfind ; void shrinktofit ( ucs2char [ ] & ) = opcode shrinktofit ucs2char [ to ] substr ( ucs2char [ ] ¢ , uint a , uint e ) = opcode substr ucs2char [ to ] midstr ( ucs2char [ ] ¢ , uint i , uint n ) = opcode midstr ucs2char [ to ] leftstr ( ucs2char [ ] ¢ , uint n ) = opcode leftstr ucs2char [ to ] rightstr ( ucs2char [ ] ¢ , uint n ) = opcode rightstr ucs2char numval ( utf8str ¢ ) = opcode numval ucs2char numval ( ucs1str ¢ ) = opcode numval ucs2char numval ( ucs2str ¢ ) = opcode numval ucs2char numval ( ucs4str ¢ ) = opcode numval void flip ( ucs4char [ to ] ) = opcode flip ; void rol ( ucs4char [ to ] ) = opcode rol ; void ror ( ucs4char [ to ] ) = opcode ror ; void sort ( ucs4char [ to ] ) = opcode sort ; void rsort ( ucs4char [ to ] ) = opcode rsort ; void shuffle ( ucs4char [ to ] ) = opcode shuffle ; void revert ( ucs4char [ to ] ) = opcode revert ; ucs4char [ ] join ( ucs4char [ ] [ ] ¢ , ucs4char ) = opcode join ; ucs4char [ ] join ( ucs4char [ ] [ ] ¢ , ucs4char [ ] ¢ ) = opcode join ; ucs4char [ ] [ ] split ( ucs4char [ ] ¢ , ucs4char ) = opcode split ; ucs4char [ ] [ ] split ( ucs4char [ ] ¢ , ucs4char [ ] ¢ ) = opcode split ; ucs4char min ( ucs4char , ucs4char ) = opcode min ; ucs4char min ( ucs4char [ to ] ) = opcode min ; ucs4char max ( ucs4char , ucs4char ) = opcode max ; ucs4char max ( ucs4char [ to ] ) = opcode max ; uint find ( ucs4char [ to ] , ucs4char ) = opcode find ; uint find ( ucs4char [ to ] , ucs4char [ ] ¢ ) = opcode find ; uint rfind ( ucs4char [ to ] , ucs4char ) = opcode rfind ; uint rfind ( ucs4char [ to ] , ucs4char [ ] ¢ ) = opcode rfind ; void shrinktofit ( ucs4char [ ] & ) = opcode shrinktofit ucs4char [ to ] substr ( ucs4char [ ] ¢ , uint a , uint e ) = opcode substr ucs4char [ to ] midstr ( ucs4char [ ] ¢ , uint i , uint n ) = opcode midstr ucs4char [ to ] leftstr ( ucs4char [ ] ¢ , uint n ) = opcode leftstr ucs4char [ to ] rightstr ( ucs4char [ ] ¢ , uint n ) = opcode rightstr ucs4char numval ( utf8str ¢ ) = opcode numval ucs4char numval ( ucs1str ¢ ) = opcode numval ucs4char numval ( ucs2str ¢ ) = opcode numval ucs4char numval ( ucs4str ¢ ) = opcode numval bool is_letter ( uint ) = opcode is_letter bool is_bin_digit ( uint ) = opcode is_bin_digit bool is_dec_digit ( uint ) = opcode is_dec_digit bool is_hex_digit ( uint ) = opcode is_hex_digit uint digit_value ( uint ) = opcode digit_value scope ucs4str { ucs4char [ ] spacestr ( uint ) = opcode spacestr ; ucs4char [ ] spacestr ( uint , ucs4char ) = opcode spacestr ; ucs4char [ ] charstr ( uint ) = opcode charstr ; ucs4char hexchar ( uint ) ucs4char [ ] hexstr ( uint8 ) = opcode hexstr ; ucs4char [ ] hexstr ( uint16 ) = opcode hexstr ; ucs4char [ ] hexstr ( uint32 ) = opcode hexstr ; ucs4char [ ] hexstr ( uint64 ) = opcode hexstr ; ucs4char [ ] hexstr ( uint , uint digits ) = opcode hexstr ; ucs4char [ ] hexstr ( ulong , uint digits ) = opcode hexstr ; ucs4char [ ] binstr ( uint8 ) = opcode binstr ; ucs4char [ ] binstr ( uint16 ) = opcode binstr ; ucs4char [ ] binstr ( uint32 ) = opcode binstr ; ucs4char [ ] binstr ( uint64 ) = opcode binstr ; ucs4char [ ] binstr ( uint , uint digits ) = opcode binstr ; ucs4char [ ] binstr ( ulong , uint digits ) = opcode binstr ; ucs4char [ ] binstr ( uint , ucs4char [ ] ¢ o , ucs4char [ ] ¢ l ) = opcode binstr ; ucs4char [ ] binstr ( ulong , ucs4char [ ] ¢ o , ucs4char [ ] ¢ l ) = opcode binstr ; ucs4char [ ] numstr ( int ) = opcode numstr ; ucs4char [ ] numstr ( uint ) = opcode numstr ; ucs4char [ ] numstr ( long ) = opcode numstr ; ucs4char [ ] numstr ( ulong ) = opcode numstr ; ucs4char [ ] toupper ( ucs4char [ ] ¢ ) = opcode toupper ; ucs4char [ ] tolower ( ucs4char [ ] ¢ ) = opcode tolower ; ucs4char [ ] escape ( ucs4char [ ] ¢ , ucs4char leftquote ) = opcode escape ; ucs4char [ ] unescape ( ucs4char [ ] ¢ ) = opcode unescape ; ucs4char [ ] urlencode ( ucs4char [ ] ¢ ) = opcode urlencode ; ucs4char [ ] urldecode ( ucs4char [ ] ¢ ) = opcode urldecode ; ucs4char [ ] entab ( ucs4char [ ] ¢ , uint tabwidth ) = opcode entab ; ucs4char [ ] detab ( ucs4char [ ] ¢ , uint tabwidth ) = opcode detab ; ucs4char [ ] toupper ( ucs4char [ to ] ) = opcode toupper ; ucs4char [ ] tolower ( ucs4char [ to ] ) = opcode tolower ; ucs4char [ ] escape ( ucs4char [ to ] , ucs4char leftquote ) = opcode escape ; ucs4char [ ] unescape ( ucs4char [ to ] ) = opcode unescape ; ucs4char [ ] urlencode ( ucs4char [ to ] ) = opcode urlencode ; ucs4char [ ] urldecode ( ucs4char [ to ] ) = opcode urldecode ; ucs4char [ ] entab ( ucs4char [ to ] , uint tabwidth ) = opcode entab ; ucs4char [ ] detab ( ucs4char [ to ] , uint tabwidth ) = opcode detab ; ucs1str toucs1 ( ucs4char [ ] ¢ ) = opcode toucs1 ; ucs2str toucs2 ( ucs4char [ ] ¢ ) = opcode toucs2 ; ucs4str toucs4 ( ucs4char [ ] ¢ ) = opcode toucs4 ; utf8str toutf8 ( ucs4char [ ] ¢ ) = opcode toutf8 ; ucs1str toucs1 ( ucs4char [ to ] ) = opcode toucs1 ; ucs2str toucs2 ( ucs4char [ to ] ) = opcode toucs2 ; ucs4str toucs4 ( ucs4char [ to ] ) = opcode toucs4 ; utf8str toutf8 ( ucs4char [ to ] ) = opcode toutf8 ; ucs4char [ ] min ( ucs4char [ ] , ucs4char [ ] ) = opcode min ; ucs4char [ ] min ( ucs4char [ ] , ucs4char [ ] ¢ ) = opcode min ; ucs4char [ ] min ( ucs4char [ ] ¢ , ucs4char [ ] ) = opcode min ; ucs4char [ ] ¢ min ( ucs4char [ ] ¢ , ucs4char [ ] ¢ ) = opcode min ; ucs4char [ ] ¢ min ( ucs4char [ ] [ ] ¢ ) = opcode min ; ucs4char [ ] ¢ min ( ucs4char [ ] [ to ] ) = opcode min ; ucs4char [ ] max ( ucs4char [ ] , ucs4char [ ] ) = opcode max ; ucs4char [ ] max ( ucs4char [ ] , ucs4char [ ] ¢ ) = opcode max ; ucs4char [ ] max ( ucs4char [ ] ¢ , ucs4char [ ] ) = opcode max ; ucs4char [ ] ¢ max ( ucs4char [ ] ¢ , ucs4char [ ] ¢ ) = opcode max ; ucs4char [ ] ¢ max ( ucs4char [ ] [ ] ¢ ) = opcode max ; ucs4char [ ] ¢ max ( ucs4char [ ] [ to ] ) = opcode max ; void flip ( ucs4char [ ] [ to ] ) = opcode flip ; void rol ( ucs4char [ ] [ to ] ) = opcode rol ; void ror ( ucs4char [ ] [ to ] ) = opcode ror ; void sort ( ucs4char [ ] [ to ] ) = opcode sort ; void rsort ( ucs4char [ ] [ to ] ) = opcode rsort ; void shuffle ( ucs4char [ ] [ to ] ) = opcode shuffle ; void revert ( ucs4char [ ] [ to ] ) = opcode revert ; } scope ucs2str { ucs2char [ ] spacestr ( uint ) = opcode spacestr ; ucs2char [ ] spacestr ( uint , ucs2char ) = opcode spacestr ; ucs2char [ ] charstr ( uint ) = opcode charstr ; ucs2char hexchar ( uint ) ucs2char [ ] hexstr ( uint8 ) = opcode hexstr ; ucs2char [ ] hexstr ( uint16 ) = opcode hexstr ; ucs2char [ ] hexstr ( uint32 ) = opcode hexstr ; ucs2char [ ] hexstr ( uint64 ) = opcode hexstr ; ucs2char [ ] hexstr ( uint , uint digits ) = opcode hexstr ; ucs2char [ ] hexstr ( ulong , uint digits ) = opcode hexstr ; ucs2char [ ] binstr ( uint8 ) = opcode binstr ; ucs2char [ ] binstr ( uint16 ) = opcode binstr ; ucs2char [ ] binstr ( uint32 ) = opcode binstr ; ucs2char [ ] binstr ( uint64 ) = opcode binstr ; ucs2char [ ] binstr ( uint , uint digits ) = opcode binstr ; ucs2char [ ] binstr ( ulong , uint digits ) = opcode binstr ; ucs2char [ ] binstr ( uint , ucs2char [ ] ¢ o , ucs2char [ ] ¢ l ) = opcode binstr ; ucs2char [ ] binstr ( ulong , ucs2char [ ] ¢ o , ucs2char [ ] ¢ l ) = opcode binstr ; ucs2char [ ] numstr ( int ) = opcode numstr ; ucs2char [ ] numstr ( uint ) = opcode numstr ; ucs2char [ ] numstr ( long ) = opcode numstr ; ucs2char [ ] numstr ( ulong ) = opcode numstr ; ucs2char [ ] toupper ( ucs2char [ ] ¢ ) = opcode toupper ; ucs2char [ ] tolower ( ucs2char [ ] ¢ ) = opcode tolower ; ucs2char [ ] escape ( ucs2char [ ] ¢ , ucs2char leftquote ) = opcode escape ; ucs2char [ ] unescape ( ucs2char [ ] ¢ ) = opcode unescape ; ucs2char [ ] urlencode ( ucs2char [ ] ¢ ) = opcode urlencode ; ucs2char [ ] urldecode ( ucs2char [ ] ¢ ) = opcode urldecode ; ucs2char [ ] entab ( ucs2char [ ] ¢ , uint tabwidth ) = opcode entab ; ucs2char [ ] detab ( ucs2char [ ] ¢ , uint tabwidth ) = opcode detab ; ucs2char [ ] toupper ( ucs2char [ to ] ) = opcode toupper ; ucs2char [ ] tolower ( ucs2char [ to ] ) = opcode tolower ; ucs2char [ ] escape ( ucs2char [ to ] , ucs2char leftquote ) = opcode escape ; ucs2char [ ] unescape ( ucs2char [ to ] ) = opcode unescape ; ucs2char [ ] urlencode ( ucs2char [ to ] ) = opcode urlencode ; ucs2char [ ] urldecode ( ucs2char [ to ] ) = opcode urldecode ; ucs2char [ ] entab ( ucs2char [ to ] , uint tabwidth ) = opcode entab ; ucs2char [ ] detab ( ucs2char [ to ] , uint tabwidth ) = opcode detab ; ucs1str toucs1 ( ucs2char [ ] ¢ ) = opcode toucs1 ; ucs2str toucs2 ( ucs2char [ ] ¢ ) = opcode toucs2 ; ucs4str toucs4 ( ucs2char [ ] ¢ ) = opcode toucs4 ; utf8str toutf8 ( ucs2char [ ] ¢ ) = opcode toutf8 ; ucs1str toucs1 ( ucs2char [ to ] ) = opcode toucs1 ; ucs2str toucs2 ( ucs2char [ to ] ) = opcode toucs2 ; ucs4str toucs4 ( ucs2char [ to ] ) = opcode toucs4 ; utf8str toutf8 ( ucs2char [ to ] ) = opcode toutf8 ; ucs2char [ ] min ( ucs2char [ ] , ucs2char [ ] ) = opcode min ; ucs2char [ ] min ( ucs2char [ ] , ucs2char [ ] ¢ ) = opcode min ; ucs2char [ ] min ( ucs2char [ ] ¢ , ucs2char [ ] ) = opcode min ; ucs2char [ ] ¢ min ( ucs2char [ ] ¢ , ucs2char [ ] ¢ ) = opcode min ; ucs2char [ ] ¢ min ( ucs2char [ ] [ ] ¢ ) = opcode min ; ucs2char [ ] ¢ min ( ucs2char [ ] [ to ] ) = opcode min ; ucs2char [ ] max ( ucs2char [ ] , ucs2char [ ] ) = opcode max ; ucs2char [ ] max ( ucs2char [ ] , ucs2char [ ] ¢ ) = opcode max ; ucs2char [ ] max ( ucs2char [ ] ¢ , ucs2char [ ] ) = opcode max ; ucs2char [ ] ¢ max ( ucs2char [ ] ¢ , ucs2char [ ] ¢ ) = opcode max ; ucs2char [ ] ¢ max ( ucs2char [ ] [ ] ¢ ) = opcode max ; ucs2char [ ] ¢ max ( ucs2char [ ] [ to ] ) = opcode max ; void flip ( ucs2char [ ] [ to ] ) = opcode flip ; void rol ( ucs2char [ ] [ to ] ) = opcode rol ; void ror ( ucs2char [ ] [ to ] ) = opcode ror ; void sort ( ucs2char [ ] [ to ] ) = opcode sort ; void rsort ( ucs2char [ ] [ to ] ) = opcode rsort ; void shuffle ( ucs2char [ ] [ to ] ) = opcode shuffle ; void revert ( ucs2char [ ] [ to ] ) = opcode revert ; } scope ucs1str { ucs1char [ ] spacestr ( uint ) = opcode spacestr ; ucs1char [ ] spacestr ( uint , ucs1char ) = opcode spacestr ; ucs1char [ ] charstr ( uint ) = opcode charstr ; ucs1char hexchar ( uint ) ucs1char [ ] hexstr ( uint8 ) = opcode hexstr ; ucs1char [ ] hexstr ( uint16 ) = opcode hexstr ; ucs1char [ ] hexstr ( uint32 ) = opcode hexstr ; ucs1char [ ] hexstr ( uint64 ) = opcode hexstr ; ucs1char [ ] hexstr ( uint , uint digits ) = opcode hexstr ; ucs1char [ ] hexstr ( ulong , uint digits ) = opcode hexstr ; ucs1char [ ] binstr ( uint8 ) = opcode binstr ; ucs1char [ ] binstr ( uint16 ) = opcode binstr ; ucs1char [ ] binstr ( uint32 ) = opcode binstr ; ucs1char [ ] binstr ( uint64 ) = opcode binstr ; ucs1char [ ] binstr ( uint , uint digits ) = opcode binstr ; ucs1char [ ] binstr ( ulong , uint digits ) = opcode binstr ; ucs1char [ ] binstr ( uint , ucs1char [ ] ¢ o , ucs1char [ ] ¢ l ) = opcode binstr ; ucs1char [ ] binstr ( ulong , ucs1char [ ] ¢ o , ucs1char [ ] ¢ l ) = opcode binstr ; ucs1char [ ] numstr ( int ) = opcode numstr ; ucs1char [ ] numstr ( uint ) = opcode numstr ; ucs1char [ ] numstr ( long ) = opcode numstr ; ucs1char [ ] numstr ( ulong ) = opcode numstr ; ucs1char [ ] toupper ( ucs1char [ ] ¢ ) = opcode toupper ; ucs1char [ ] tolower ( ucs1char [ ] ¢ ) = opcode tolower ; ucs1char [ ] escape ( ucs1char [ ] ¢ , ucs1char leftquote ) = opcode escape ; ucs1char [ ] unescape ( ucs1char [ ] ¢ ) = opcode unescape ; ucs1char [ ] urlencode ( ucs1char [ ] ¢ ) = opcode urlencode ; ucs1char [ ] urldecode ( ucs1char [ ] ¢ ) = opcode urldecode ; ucs1char [ ] entab ( ucs1char [ ] ¢ , uint tabwidth ) = opcode entab ; ucs1char [ ] detab ( ucs1char [ ] ¢ , uint tabwidth ) = opcode detab ; ucs1char [ ] toupper ( ucs1char [ to ] ) = opcode toupper ; ucs1char [ ] tolower ( ucs1char [ to ] ) = opcode tolower ; ucs1char [ ] escape ( ucs1char [ to ] , ucs1char leftquote ) = opcode escape ; ucs1char [ ] unescape ( ucs1char [ to ] ) = opcode unescape ; ucs1char [ ] urlencode ( ucs1char [ to ] ) = opcode urlencode ; ucs1char [ ] urldecode ( ucs1char [ to ] ) = opcode urldecode ; ucs1char [ ] entab ( ucs1char [ to ] , uint tabwidth ) = opcode entab ; ucs1char [ ] detab ( ucs1char [ to ] , uint tabwidth ) = opcode detab ; ucs1str toucs1 ( ucs1char [ ] ¢ ) = opcode toucs1 ; ucs2str toucs2 ( ucs1char [ ] ¢ ) = opcode toucs2 ; ucs4str toucs4 ( ucs1char [ ] ¢ ) = opcode toucs4 ; utf8str toutf8 ( ucs1char [ ] ¢ ) = opcode toutf8 ; ucs1str toucs1 ( ucs1char [ to ] ) = opcode toucs1 ; ucs2str toucs2 ( ucs1char [ to ] ) = opcode toucs2 ; ucs4str toucs4 ( ucs1char [ to ] ) = opcode toucs4 ; utf8str toutf8 ( ucs1char [ to ] ) = opcode toutf8 ; ucs1char [ ] min ( ucs1char [ ] , ucs1char [ ] ) = opcode min ; ucs1char [ ] min ( ucs1char [ ] , ucs1char [ ] ¢ ) = opcode min ; ucs1char [ ] min ( ucs1char [ ] ¢ , ucs1char [ ] ) = opcode min ; ucs1char [ ] ¢ min ( ucs1char [ ] ¢ , ucs1char [ ] ¢ ) = opcode min ; ucs1char [ ] ¢ min ( ucs1char [ ] [ ] ¢ ) = opcode min ; ucs1char [ ] ¢ min ( ucs1char [ ] [ to ] ) = opcode min ; ucs1char [ ] max ( ucs1char [ ] , ucs1char [ ] ) = opcode max ; ucs1char [ ] max ( ucs1char [ ] , ucs1char [ ] ¢ ) = opcode max ; ucs1char [ ] max ( ucs1char [ ] ¢ , ucs1char [ ] ) = opcode max ; ucs1char [ ] ¢ max ( ucs1char [ ] ¢ , ucs1char [ ] ¢ ) = opcode max ; ucs1char [ ] ¢ max ( ucs1char [ ] [ ] ¢ ) = opcode max ; ucs1char [ ] ¢ max ( ucs1char [ ] [ to ] ) = opcode max ; void flip ( ucs1char [ ] [ to ] ) = opcode flip ; void rol ( ucs1char [ ] [ to ] ) = opcode rol ; void ror ( ucs1char [ ] [ to ] ) = opcode ror ; void sort ( ucs1char [ ] [ to ] ) = opcode sort ; void rsort ( ucs1char [ ] [ to ] ) = opcode rsort ; void shuffle ( ucs1char [ ] [ to ] ) = opcode shuffle ; void revert ( ucs1char [ ] [ to ] ) = opcode revert ; } scope utf8str { utf8char [ ] spacestr ( uint ) = opcode spacestr ; utf8char [ ] spacestr ( uint , utf8char ) = opcode spacestr ; utf8char [ ] charstr ( uint ) = opcode charstr ; char hexchar ( uint ) utf8char [ ] hexstr ( uint8 ) = opcode hexstr ; utf8char [ ] hexstr ( uint16 ) = opcode hexstr ; utf8char [ ] hexstr ( uint32 ) = opcode hexstr ; utf8char [ ] hexstr ( uint64 ) = opcode hexstr ; utf8char [ ] hexstr ( uint , uint digits ) = opcode hexstr ; utf8char [ ] hexstr ( ulong , uint digits ) = opcode hexstr ; utf8char [ ] binstr ( uint8 ) = opcode binstr ; utf8char [ ] binstr ( uint16 ) = opcode binstr ; utf8char [ ] binstr ( uint32 ) = opcode binstr ; utf8char [ ] binstr ( uint64 ) = opcode binstr ; utf8char [ ] binstr ( uint , uint digits ) = opcode binstr ; utf8char [ ] binstr ( ulong , uint digits ) = opcode binstr ; utf8char [ ] binstr ( uint , utf8char [ ] ¢ o , utf8char [ ] ¢ l ) = opcode binstr ; utf8char [ ] binstr ( ulong , utf8char [ ] ¢ o , utf8char [ ] ¢ l ) = opcode binstr ; utf8char [ ] numstr ( int ) = opcode numstr ; utf8char [ ] numstr ( uint ) = opcode numstr ; utf8char [ ] numstr ( long ) = opcode numstr ; utf8char [ ] numstr ( ulong ) = opcode numstr ; utf8char [ ] toupper ( utf8char [ ] ¢ ) = opcode toupper ; utf8char [ ] tolower ( utf8char [ ] ¢ ) = opcode tolower ; utf8char [ ] escape ( utf8char [ ] ¢ , char leftquote ) = opcode escape ; utf8char [ ] unescape ( utf8char [ ] ¢ ) = opcode unescape ; utf8char [ ] urlencode ( utf8char [ ] ¢ ) = opcode urlencode ; utf8char [ ] urldecode ( utf8char [ ] ¢ ) = opcode urldecode ; utf8char [ ] entab ( utf8char [ ] ¢ , uint tabwidth ) = opcode entab ; utf8char [ ] detab ( utf8char [ ] ¢ , uint tabwidth ) = opcode detab ; utf8char [ ] toupper ( utf8char [ to ] ) = opcode toupper ; utf8char [ ] tolower ( utf8char [ to ] ) = opcode tolower ; utf8char [ ] escape ( utf8char [ to ] , char leftquote ) = opcode escape ; utf8char [ ] unescape ( utf8char [ to ] ) = opcode unescape ; utf8char [ ] urlencode ( utf8char [ to ] ) = opcode urlencode ; utf8char [ ] urldecode ( utf8char [ to ] ) = opcode urldecode ; utf8char [ ] entab ( utf8char [ to ] , uint tabwidth ) = opcode entab ; utf8char [ ] detab ( utf8char [ to ] , uint tabwidth ) = opcode detab ; ucs1str toucs1 ( utf8char [ ] ¢ ) = opcode toucs1 ; ucs2str toucs2 ( utf8char [ ] ¢ ) = opcode toucs2 ; ucs4str toucs4 ( utf8char [ ] ¢ ) = opcode toucs4 ; utf8str toutf8 ( utf8char [ ] ¢ ) = opcode toutf8 ; ucs1str toucs1 ( utf8char [ to ] ) = opcode toucs1 ; ucs2str toucs2 ( utf8char [ to ] ) = opcode toucs2 ; ucs4str toucs4 ( utf8char [ to ] ) = opcode toucs4 ; utf8str toutf8 ( utf8char [ to ] ) = opcode toutf8 ; utf8char [ ] min ( utf8char [ ] , utf8char [ ] ) = opcode min ; utf8char [ ] min ( utf8char [ ] , utf8char [ ] ¢ ) = opcode min ; utf8char [ ] min ( utf8char [ ] ¢ , utf8char [ ] ) = opcode min ; utf8char [ ] ¢ min ( utf8char [ ] ¢ , utf8char [ ] ¢ ) = opcode min ; utf8char [ ] ¢ min ( utf8char [ ] [ ] ¢ ) = opcode min ; utf8char [ ] ¢ min ( utf8char [ ] [ to ] ) = opcode min ; utf8char [ ] max ( utf8char [ ] , utf8char [ ] ) = opcode max ; utf8char [ ] max ( utf8char [ ] , utf8char [ ] ¢ ) = opcode max ; utf8char [ ] max ( utf8char [ ] ¢ , utf8char [ ] ) = opcode max ; utf8char [ ] ¢ max ( utf8char [ ] ¢ , utf8char [ ] ¢ ) = opcode max ; utf8char [ ] ¢ max ( utf8char [ ] [ ] ¢ ) = opcode max ; utf8char [ ] ¢ max ( utf8char [ ] [ to ] ) = opcode max ; void flip ( utf8char [ ] [ to ] ) = opcode flip ; void rol ( utf8char [ ] [ to ] ) = opcode rol ; void ror ( utf8char [ ] [ to ] ) = opcode ror ; void sort ( utf8char [ ] [ to ] ) = opcode sort ; void rsort ( utf8char [ ] [ to ] ) = opcode rsort ; void shuffle ( utf8char [ ] [ to ] ) = opcode shuffle ; void revert ( utf8char [ ] [ to ] ) = opcode revert ; } utf8char [ ] spacestr ( uint ) = opcode spacestr ; utf8char [ ] spacestr ( uint , utf8char ) = opcode spacestr ; utf8char [ ] charstr ( uint ) = opcode charstr ; char hexchar ( uint ) utf8char [ ] hexstr ( uint8 ) = opcode hexstr ; utf8char [ ] hexstr ( uint16 ) = opcode hexstr ; utf8char [ ] hexstr ( uint32 ) = opcode hexstr ; utf8char [ ] hexstr ( uint64 ) = opcode hexstr ; utf8char [ ] hexstr ( uint , uint digits ) = opcode hexstr ; utf8char [ ] hexstr ( ulong , uint digits ) = opcode hexstr ; utf8char [ ] binstr ( uint8 ) = opcode binstr ; utf8char [ ] binstr ( uint16 ) = opcode binstr ; utf8char [ ] binstr ( uint32 ) = opcode binstr ; utf8char [ ] binstr ( uint64 ) = opcode binstr ; utf8char [ ] binstr ( uint , uint digits ) = opcode binstr ; utf8char [ ] binstr ( ulong , uint digits ) = opcode binstr ; utf8char [ ] binstr ( uint , utf8char [ ] ¢ o , utf8char [ ] ¢ l ) = opcode binstr ; utf8char [ ] binstr ( ulong , utf8char [ ] ¢ o , utf8char [ ] ¢ l ) = opcode binstr ; utf8char [ ] numstr ( int ) = opcode numstr ; utf8char [ ] numstr ( uint ) = opcode numstr ; utf8char [ ] numstr ( long ) = opcode numstr ; utf8char [ ] numstr ( ulong ) = opcode numstr ; utf8char [ ] toupper ( utf8char [ ] ¢ ) = opcode toupper ; utf8char [ ] tolower ( utf8char [ ] ¢ ) = opcode tolower ; utf8char [ ] escape ( utf8char [ ] ¢ , char leftquote ) = opcode escape ; utf8char [ ] unescape ( utf8char [ ] ¢ ) = opcode unescape ; utf8char [ ] urlencode ( utf8char [ ] ¢ ) = opcode urlencode ; utf8char [ ] urldecode ( utf8char [ ] ¢ ) = opcode urldecode ; utf8char [ ] entab ( utf8char [ ] ¢ , uint tabwidth ) = opcode entab ; utf8char [ ] detab ( utf8char [ ] ¢ , uint tabwidth ) = opcode detab ; utf8char [ ] toupper ( utf8char [ to ] ) = opcode toupper ; utf8char [ ] tolower ( utf8char [ to ] ) = opcode tolower ; utf8char [ ] escape ( utf8char [ to ] , char leftquote ) = opcode escape ; utf8char [ ] unescape ( utf8char [ to ] ) = opcode unescape ; utf8char [ ] urlencode ( utf8char [ to ] ) = opcode urlencode ; utf8char [ ] urldecode ( utf8char [ to ] ) = opcode urldecode ; utf8char [ ] entab ( utf8char [ to ] , uint tabwidth ) = opcode entab ; utf8char [ ] detab ( utf8char [ to ] , uint tabwidth ) = opcode detab ; ucs1str toucs1 ( utf8char [ ] ¢ ) = opcode toucs1 ; ucs2str toucs2 ( utf8char [ ] ¢ ) = opcode toucs2 ; ucs4str toucs4 ( utf8char [ ] ¢ ) = opcode toucs4 ; utf8str toutf8 ( utf8char [ ] ¢ ) = opcode toutf8 ; ucs1str toucs1 ( utf8char [ to ] ) = opcode toucs1 ; ucs2str toucs2 ( utf8char [ to ] ) = opcode toucs2 ; ucs4str toucs4 ( utf8char [ to ] ) = opcode toucs4 ; utf8str toutf8 ( utf8char [ to ] ) = opcode toutf8 ; utf8char [ ] min ( utf8char [ ] , utf8char [ ] ) = opcode min ; utf8char [ ] min ( utf8char [ ] , utf8char [ ] ¢ ) = opcode min ; utf8char [ ] min ( utf8char [ ] ¢ , utf8char [ ] ) = opcode min ; utf8char [ ] ¢ min ( utf8char [ ] ¢ , utf8char [ ] ¢ ) = opcode min ; utf8char [ ] ¢ min ( utf8char [ ] [ ] ¢ ) = opcode min ; utf8char [ ] ¢ min ( utf8char [ ] [ to ] ) = opcode min ; utf8char [ ] max ( utf8char [ ] , utf8char [ ] ) = opcode max ; utf8char [ ] max ( utf8char [ ] , utf8char [ ] ¢ ) = opcode max ; utf8char [ ] max ( utf8char [ ] ¢ , utf8char [ ] ) = opcode max ; utf8char [ ] ¢ max ( utf8char [ ] ¢ , utf8char [ ] ¢ ) = opcode max ; utf8char [ ] ¢ max ( utf8char [ ] [ ] ¢ ) = opcode max ; utf8char [ ] ¢ max ( utf8char [ ] [ to ] ) = opcode max ; void flip ( utf8char [ ] [ to ] ) = opcode flip ; void rol ( utf8char [ ] [ to ] ) = opcode rol ; void ror ( utf8char [ ] [ to ] ) = opcode ror ; void sort ( utf8char [ ] [ to ] ) = opcode sort ; void rsort ( utf8char [ ] [ to ] ) = opcode rsort ; void shuffle ( utf8char [ ] [ to ] ) = opcode shuffle ; void revert ( utf8char [ ] [ to ] ) = opcode revert ; void memcpy ( byte * z , byte * q , uint cnt ) = opcode memcpy void memset ( byte * z , int q , uint cnt ) = opcode memset void memclr ( byte * z , uint cnt ) = opcode memclr enum { tm_utc = 0 , tm_localtime = 1 , tm_time = 2 , tm_date = 4 , tm_timezone = 8 , tm_sec = 16 , tm_msec = 32 } extern { float now ( ) = opcode now str timestr ( float seconds , uint flags ) = opcode timestr float timeval ( str ¢ , uint flags ) = opcode timeval } enum int16 tid_state1 = { not_linked = 0 , running = 1 , timeshed = 2 , suspended = 3 } enum int16 tid_state2 = { not_sheduled = 0 , semashed = 1 , mutexshed = 2 , irptshed = 3 } ; type Thread = { tid_state1 state1 ; tid_state2 state2 ; int16 prio ; int16 prio_org ; Tid next1 , prev1 ; Tid next2 , prev2 ; void * blocker ; float64 time ; Mutex * mutexes ; uint16 * [ ] rstack ; int [ ] vstack ; int8 * context0 ; int8 * context1 ; uint16 * ip ; uint16 * * rp ; int32 * vp ; int8 * gp ; int32 _errno ; int32 _dummy ; } scope Thread { Thread kill ( Thread ) = opcode kill } Thread new ( ) = opcode new Thread new ( int16 prio ) = opcode new Thread new ( int16 prio , uint vsz , uint rsz ) = opcode new Tid self ( ) = opcode self int num_cores ( ) = opcode num_cores uint vfree ( ) = opcode vfree uint rfree ( ) = opcode rfree void freeze ( bool ) = opcode freeze void termi ( Tid ) = opcode termi void suspend ( Tid ) = opcode suspend void resume ( Tid ) = opcode resume void termi ( ) = opcode termi void suspend ( ) = opcode suspend void wait ( ) = opcode wait void wait ( float sec ) = opcode wait void shedule ( float when ) = opcode shedule void busywait ( uint usec ) = opcode busywait type Sema = { Tid waiters uint32 count int32 _dummy ; } scope Sema { void request ( Sema ¢ ) = opcode request void request ( Sema ¢ , uint n ) = opcode request void release ( Sema ¢ ) = opcode release void release ( Sema ¢ , uint n ) = opcode release bool tryrequest ( Sema ¢ ) = opcode tryrequest bool tryrequest ( Sema ¢ , float timeout ) = opcode tryrequest void clear ( Sema ¢ ) = opcode clear Sema kill ( Sema ) = opcode kill } Sema new ( ) = opcode new type Mutex = { Tid waiters uint32 count int16 oprio int16 _dummy ; Tid owner Mutex ¢ next , prev } scope Mutex { void lock ( Mutex ¢ ) = opcode lock void unlock ( Mutex ¢ ) = opcode unlock bool trylock ( Mutex ¢ ) = opcode trylock bool trylock ( Mutex ¢ , float timeout ) = opcode trylock Mutex kill ( Mutex ) = opcode kill } Mutex new ( ) = opcode new type Irpt = { Tid waiters uint32 count int32 _dummy ; } scope Irpt { void wait ( Irpt ¢ ) = opcode wait void wait ( Irpt ¢ , float timeout ) = opcode wait void trigger ( Irpt ¢ ) = opcode trigger void clear ( Irpt ¢ ) = opcode clear Irpt kill ( Irpt ) = opcode kill } Irpt new ( ) = opcode new type Object = { void * senders } scope Object { Object kill ( Object ) = opcode kill } extern { void abort ( ) = opcode abort void abort ( str msg ) = opcode abort void abort ( str ¢ msg ) = opcode abort void TODO ( ) void PANIC ( str msg ) void PANIC ( str ¢ msg ) void tron ( ) = opcode tron void troff ( ) = opcode troff } ; scope vt100 { extern { str request_position str save_position str restore_position str cursor_left_1 str cursor_right_1 str cursor_up_1 str cursor_down_1 str clear_right str clear_left str clear_down str clear_up str clear_line str clear_screen str cls str locate ( int row , int col ) str hlocate ( int col ) str vlocate ( int row ) str cursor_left ( int n ) str cursor_right ( int n ) str cursor_up ( int n ) str cursor_down ( int n ) } } extern { int errors void test ( int line , int a , int b ) void test ( int line , long a , long b ) void test ( int line , short a , short b ) void test ( int line , byte a , byte b ) void test ( int line , int a , uint b ) void test ( int line , long a , ulong b ) void test ( int line , short a , ushort b ) void test ( int line , byte a , ubyte b ) void test ( int line , uint a , uint b ) = void test ( int line , int a , int b ) void test ( int line , ulong a , ulong b ) = void test ( int line , long a , long b ) void test ( int line , ushort a , ushort b ) = void test ( int line , short a , short b ) void test ( int line , ubyte a , ubyte b ) = void test ( int line , byte a , byte b ) void test ( int line , uint a , int b ) = void test ( int line , int a , uint b ) void test ( int line , ulong a , long b ) = void test ( int line , long a , ulong b ) void test ( int line , ushort a , short b ) = void test ( int line , short a , ushort b ) void test ( int line , ubyte a , byte b ) = void test ( int line , byte a , ubyte b ) void test ( int line , float a , float b ) void test ( int line , short float a , short float b ) void test ( int line , long float a , long float b ) void test ( int line , str ¢ a , str ¢ b ) void test_minimum_functionality ( ) void test_numeric_operators ( ) void test_numeric_functions ( float ) void test_numeric_functions ( long float ) void test_numeric_functions ( short float ) void test_numeric_functions ( int ) void test_string_functions ( ) } ; void test_string_functions ( ) { print ( "\nstring functions:\n" ) { str a = "123" str b = "abc" test ( 13 , a , "123" ) test ( 14 , b , "abc" ) } { str a = "123" , b = "ABCDE" , nullstr = null test ( 21 , "ab" + "cde" , "abcde" ) test ( 22 , a + b , "123ABCDE" ) test ( 23 , a + "xy" , "123xy" ) test ( 24 , "foo" + b , "fooABCDE" ) test ( 25 , "abc" + 100 , "abcd" ) test ( 26 , a + 101 , "123e" ) test ( 27 , a + 456 , "123456" ) test ( 28 , a [ to 2 ] + "34" , "1234" ) test ( 29 , a [ to 2 ] + b , "12ABCDE" ) test ( 30 , "qwert" + b [ 2 to 4 ] , "qwertCD" ) test ( 31 , a + b [ 2 to 4 ] , "123CD" ) test ( 32 , a [ to 2 ] + b [ 3 to ] , "12DE" ) test ( 34 , "ab" + nullstr , "ab" ) test ( 35 , a + nullstr , "123" ) test ( 36 , a [ to 2 ] + nullstr , "12" ) test ( 38 , "ab" + nullstr [ to ] , "ab" ) test ( 39 , a + nullstr [ to ] , "123" ) test ( 40 , a [ to 2 ] + nullstr [ to ] , "12" ) test ( 42 , nullstr + "ab" , "ab" ) test ( 43 , nullstr + a , "123" ) test ( 44 , nullstr + a [ to 2 ] , "12" ) test ( 46 , nullstr [ to ] + "ab" , "ab" ) test ( 47 , nullstr [ to ] + a , "123" ) test ( 48 , nullstr [ to ] + a [ to 2 ] , "12" ) test ( 50 , "123" + 104 , "123h" ) test ( 51 , "123" + 45 , "12345" ) test ( 52 , "123" + 228 , "123ä" ) test ( 53 , "123" + 8364 , "123€" ) a = "123" ; a += "456" test ( 56 , a , "123456" ) a += "789" test ( 58 , a , "123456789" ) a += "" test ( 60 , a , "123456789" ) a = "123" ; b = "abc" ; a += b test ( 62 , a , "123abc" ) b = "cde" ; a += b test ( 64 , a , "123abccde" ) b = "" ; a += b test ( 66 , a , "123abccde" ) } { test ( 71 , spacestr ( 5 ) , " " ) ; test ( 72 , spacestr ( 5 , 99 ) , "ccccc" ) ; test ( 73 , charstr ( 120 ) , "x" ) ; test ( 75 , hexstr ( 2 ) , "02" ) test ( 76 , hexstr ( 13 ) , "0d" ) test ( 77 , hexstr ( 35 ) , "23" ) test ( 78 , hexstr ( 574 ) , "023e" ) test ( 79 , hexstr ( 9029 ) , "2345" ) test ( 80 , hexstr ( 144470 ) , "00023456" ) test ( 81 , hexstr ( 2311527 ) , "00234567" ) test ( 82 , hexstr ( 36984440 ) , "02345678" ) test ( 83 , hexstr ( 793077641 ) , "2f456789" ) test ( 84 , hexstr ( 3276105609 ) , "c3456789" ) test ( 86 , hexstr ( 67700615049 ) , "0000000fc3456789" ) test ( 87 , hexstr ( 188908822685577 ) , "0000abcfc3456789" ) test ( 88 , hexstr ( 17375920696148191113 ) , "f123abcfc3456789" ) test ( 90 , hexstr ( 2 , 1 ) , "2" ) test ( 91 , hexstr ( 29 , 1 ) , "d" ) test ( 92 , hexstr ( 3875 , 2 ) , "23" ) test ( 93 , hexstr ( 62014 , 3 ) , "23e" ) test ( 94 , hexstr ( 9029 , 4 ) , "2345" ) test ( 95 , hexstr ( 15873110 , 5 ) , "23456" ) test ( 96 , hexstr ( 253969767 , 6 ) , "234567" ) test ( 97 , hexstr ( 4063516280 , 7 ) , "2345678" ) test ( 98 , hexstr ( 793077641 , 8 ) , "2f456789" ) test ( 100 , hexstr ( 67700615049 , 10 ) , "0fc3456789" ) test ( 101 , hexstr ( 188908822685577 , 12 ) , "abcfc3456789" ) test ( 102 , hexstr ( 17375920696148191113 , 14 ) , "23abcfc3456789" ) test ( 104 , binstr ( 2 ) , "00000010" ) test ( 105 , binstr ( 13 ) , "00001101" ) test ( 106 , binstr ( 35 ) , "00100011" ) test ( 107 , binstr ( 574 ) , "0000001000111110" ) test ( 108 , binstr ( 9029 ) , "0010001101000101" ) test ( 109 , binstr ( 144470 ) , "00000000000000100011010001010110" ) test ( 110 , binstr ( 2311527 ) , "00000000001000110100010101100111" ) test ( 111 , binstr ( 36984440 ) , "00000010001101000101011001111000" ) test ( 112 , binstr ( 793077641 ) , "00101111010001010110011110001001" ) test ( 113 , binstr ( 3276105609 ) , "11000011010001010110011110001001" ) test ( 115 , binstr ( 2 , 8 ) , "00000010" ) test ( 116 , binstr ( 253 , 8 ) , "11111101" ) test ( 117 , binstr ( 35 , 10 ) , "0000100011" ) test ( 118 , binstr ( 574 , 12 ) , "001000111110" ) test ( 119 , binstr ( 9029 , 12 ) , "001101000101" ) test ( 120 , binstr ( 144470 , 16 ) , "0011010001010110" ) test ( 121 , binstr ( 2311527 , 24 ) , "001000110100010101100111" ) test ( 122 , binstr ( 36984440 , 32 ) , "00000010001101000101011001111000" ) test ( 123 , binstr ( 793077641 , 40 ) , "0000000000101111010001010110011110001001" ) test ( 124 , binstr ( 3276105609 , 40 ) , "0000000011000011010001010110011110001001" ) test ( 126 , binstr ( 193505761973880 , 24 ) , "001101000101011001111000" ) test ( 127 , binstr ( 193505761973880 , 32 ) , "00010010001101000101011001111000" ) test ( 128 , binstr ( 193505761973880 , 40 ) , "1111111000010010001101000101011001111000" ) test ( 129 , binstr ( 14839272802971047544 , 80 ) , "000000000000000011001101111011111010111111111110" + "00010010001101000101011001111000" ) test ( 132 , binstr ( 6 << 6 + 4 << 3 + 7 , "-----------" , "ssrwxrwxrwx" ) , "--rw-r--rwx" ) test ( 133 , binstr ( ( ulong ) 5 << 12 + 6 << 6 + 4 << 3 + 7 , "-----------" , "ssrwxrwxrwx" ) , "--rw-r--rwx" ) test ( 135 , numstr ( 102938 ) , "102938" ) test ( 136 , numstr ( + 102938 ) , "102938" ) test ( 137 , numstr ( - 102938 ) , "-102938" ) test ( 139 , numstr ( 1029384711 ) , "1029384711" ) test ( 140 , numstr ( + 1029380815 ) , "1029380815" ) test ( 141 , numstr ( - 1029380815 ) , "-1029380815" ) } { str a , b , nullstr = null a = "abc" b = a test ( 149 , a == "abc" , 1 ) test ( 150 , a != "abc" , 0 ) test ( 151 , a > "abc" , 0 ) test ( 152 , a >= "abc" , 1 ) test ( 153 , a < "abc" , 0 ) test ( 154 , a <= "abc" , 1 ) test ( 156 , a == b , 1 ) test ( 157 , a != b , 0 ) test ( 158 , a > b , 0 ) test ( 159 , a >= b , 1 ) test ( 160 , a < b , 0 ) test ( 161 , a <= b , 1 ) test ( 163 , a == b [ to ] , 1 ) test ( 164 , a != b [ to ] , 0 ) test ( 165 , a > b [ to ] , 0 ) test ( 166 , a >= b [ to ] , 1 ) test ( 167 , a < b [ to ] , 0 ) test ( 168 , a <= b [ to ] , 1 ) test ( 170 , "abc" == "abc" , 1 ) test ( 171 , "abc" != "abc" , 0 ) test ( 172 , "abc" > "abc" , 0 ) test ( 173 , "abc" >= "abc" , 1 ) test ( 174 , "abc" < "abc" , 0 ) test ( 175 , "abc" <= "abc" , 1 ) test ( 177 , "abc" == b , 1 ) test ( 178 , "abc" != b , 0 ) test ( 179 , "abc" > b , 0 ) test ( 180 , "abc" >= b , 1 ) test ( 181 , "abc" < b , 0 ) test ( 182 , "abc" <= b , 1 ) test ( 184 , "abc" == b [ to ] , 1 ) test ( 185 , "abc" != b [ to ] , 0 ) test ( 186 , "abc" > b [ to ] , 0 ) test ( 187 , "abc" >= b [ to ] , 1 ) test ( 188 , "abc" < b [ to ] , 0 ) test ( 189 , "abc" <= b [ to ] , 1 ) test ( 191 , a [ to ] == "abc" , 1 ) test ( 192 , a [ to ] != "abc" , 0 ) test ( 193 , a [ to ] > "abc" , 0 ) test ( 194 , a [ to ] >= "abc" , 1 ) test ( 195 , a [ to ] < "abc" , 0 ) test ( 196 , a [ to ] <= "abc" , 1 ) test ( 198 , a [ to ] == b , 1 ) test ( 199 , a [ to ] != b , 0 ) test ( 200 , a [ to ] > b , 0 ) test ( 201 , a [ to ] >= b , 1 ) test ( 202 , a [ to ] < b , 0 ) test ( 203 , a [ to ] <= b , 1 ) test ( 205 , a [ to ] == b [ to ] , 1 ) test ( 206 , a [ to ] != b [ to ] , 0 ) test ( 207 , a [ to ] > b [ to ] , 0 ) test ( 208 , a [ to ] >= b [ to ] , 1 ) test ( 209 , a [ to ] < b [ to ] , 0 ) test ( 210 , a [ to ] <= b [ to ] , 1 ) a = "12345" test ( 213 , "12345" == "1234" , 0 ) test ( 214 , "12345" != "1234" , 1 ) test ( 215 , "12345" > "1234" , 1 ) test ( 216 , "12345" >= "1234" , 1 ) test ( 217 , "12345" < "1234" , 0 ) test ( 218 , "12345" <= "1234" , 0 ) test ( 220 , "12345" == "12346" , 0 ) test ( 221 , "12345" != "12346" , 1 ) test ( 222 , "12345" > "12346" , 0 ) test ( 223 , "12345" >= "12346" , 0 ) test ( 224 , "12345" < "12346" , 1 ) test ( 225 , "12345" <= "12346" , 1 ) test ( 227 , a == "1234" , 0 ) test ( 228 , a != "1234" , 1 ) test ( 229 , a > "1234" , 1 ) test ( 230 , a >= "1234" , 1 ) test ( 231 , a < "1234" , 0 ) test ( 232 , a <= "1234" , 0 ) test ( 234 , a == "12346" , 0 ) test ( 235 , a != "12346" , 1 ) test ( 236 , a == "12345" , 1 ) test ( 237 , a != "12345" , 0 ) test ( 238 , "1234" == a , 0 ) test ( 239 , "1234" != a , 1 ) test ( 240 , "12346" == a , 0 ) test ( 241 , "12346" != a , 1 ) test ( 242 , "12345" == a , 1 ) test ( 243 , "12345" != a , 0 ) b = "1234" test ( 246 , a == b , 0 ) test ( 247 , b == a , 0 ) test ( 248 , a != b , 1 ) test ( 249 , b != a , 1 ) b = "12346" test ( 251 , a == b , 0 ) test ( 252 , b == a , 0 ) test ( 253 , a != b , 1 ) test ( 254 , b != a , 1 ) b = "12345" test ( 256 , a == b , 1 ) test ( 257 , b == a , 1 ) test ( 258 , a != b , 0 ) test ( 259 , b != a , 0 ) a = "" test ( 262 , "" == "" , 1 ) test ( 263 , "" != "" , 0 ) test ( 264 , "" > "" , 0 ) test ( 265 , "" >= "" , 1 ) test ( 266 , "" < "" , 0 ) test ( 267 , "" <= "" , 1 ) test ( 269 , "" == nullstr , 1 ) test ( 270 , "" != nullstr , 0 ) test ( 271 , "" > nullstr , 0 ) test ( 272 , "" >= nullstr , 1 ) test ( 273 , "" < nullstr , 0 ) test ( 274 , "" <= nullstr , 1 ) test ( 276 , nullstr == "" , 1 ) test ( 277 , nullstr != "" , 0 ) test ( 278 , nullstr > "" , 0 ) test ( 279 , nullstr >= "" , 1 ) test ( 280 , nullstr < "" , 0 ) test ( 281 , nullstr <= "" , 1 ) test ( 283 , a == nullstr , 1 ) test ( 284 , a != nullstr , 0 ) test ( 285 , nullstr == a , 1 ) test ( 286 , nullstr != a , 0 ) test ( 287 , a [ to ] == nullstr , 1 ) test ( 288 , a [ to ] != nullstr , 0 ) test ( 289 , nullstr == a [ to ] , 1 ) test ( 290 , nullstr != a [ to ] , 0 ) a = "v" test ( 293 , "" == "x" , 0 ) test ( 294 , "" != "x" , 1 ) test ( 295 , "x" == nullstr , 0 ) test ( 296 , "x" != nullstr , 1 ) test ( 297 , nullstr == "x" , 0 ) test ( 298 , nullstr != "x" , 1 ) test ( 299 , a == nullstr , 0 ) test ( 300 , a != nullstr , 1 ) test ( 301 , nullstr == a , 0 ) test ( 302 , nullstr != a , 1 ) test ( 303 , a [ to ] == nullstr , 0 ) test ( 304 , a [ to ] != nullstr , 1 ) test ( 305 , nullstr == a [ to ] , 0 ) test ( 306 , nullstr != a [ to ] , 1 ) } { test ( 311 , min ( "ab" , "a" ) , "a" ) test ( 312 , min ( "a" , "ab" ) , "a" ) test ( 313 , min ( "ab" , "bc" ) , "ab" ) test ( 314 , min ( "bc" , "ab" ) , "ab" ) test ( 316 , min ( "" , "affe" ) , "" ) test ( 317 , min ( ( str ) null , "pipi" ) , ( str ) null ) test ( 318 , min ( "affe" , ( str ) null ) , ( str ) null ) str affe = "affe" str bist = "bist" uint refcnt = affe . refcnt ( ) test ( 324 , min ( affe , bist ) , affe ) test ( 325 , min ( bist , affe ) , affe ) test ( 326 , min ( "affe" , bist ) , affe ) test ( 327 , min ( bist , "affe" ) , affe ) test ( 328 , min ( affe , "bist" ) , affe ) test ( 329 , min ( "bist" , affe ) , affe ) test ( 331 , affe . refcnt ( ) , refcnt ) test ( 332 , bist . refcnt ( ) , refcnt ) } { test ( 337 , max ( "ab" , "a" ) , "ab" ) test ( 338 , max ( "a" , "ab" ) , "ab" ) test ( 339 , max ( "ab" , "bc" ) , "bc" ) test ( 340 , max ( "bc" , "ab" ) , "bc" ) test ( 342 , max ( "" , "affe" ) , "affe" ) test ( 343 , max ( ( str ) null , "pipi" ) , "pipi" ) test ( 344 , max ( "affe" , ( str ) null ) , "affe" ) str affe = "affe" str bist = "bist" uint refcnt = affe . refcnt ( ) test ( 350 , max ( affe , bist ) , bist ) test ( 351 , max ( bist , affe ) , bist ) test ( 352 , max ( "affe" , bist ) , bist ) test ( 353 , max ( bist , "affe" ) , bist ) test ( 354 , max ( affe , "bist" ) , bist ) test ( 355 , max ( "bist" , affe ) , bist ) test ( 357 , affe . refcnt ( ) , refcnt ) test ( 358 , bist . refcnt ( ) , refcnt ) } { test ( 363 , "12345" [ 3 ] , 52 ) ; test ( 364 , "12345" [ 0 to 3 ] , "123" ) ; test ( 365 , "12345" [ to 3 ] , "123" ) ; test ( 366 , "12345" [ 3 to 5 ] , "45" ) ; test ( 367 , "12345" [ 3 to ] , "45" ) ; test ( 368 , "12345" [ to ] , "12345" ) ; test ( 369 , "12345" [ 3 to 9 ] , "45" ) ; test ( 370 , "12345" [ 3 to 3 ] , "" ) ; test ( 371 , "12345" [ 3 to 2 ] , "" ) ; test ( 372 , "12345" [ 3 to - 2 ] , "" ) ; test ( 373 , "12345" [ 9 to - 2 ] , "" ) ; test ( 374 , "12345" [ - 2 to ] , "12345" ) ; test ( 376 , leftstr ( "12345" , 3 ) , "123" ) test ( 377 , rightstr ( "12345" , 3 ) , "345" ) str s = "012345" s [ 3 ] = 109 test ( 381 , s , "012m45" ) s [ 2 to 5 ] = "abc" test ( 383 , s , "01abc5" ) s [ 2 to 4 ] = "ABC" test ( 385 , s , "01ABc5" ) s [ 2 to 5 ] = "23" test ( 387 , s , "0123c5" ) s = "0123456789" test ( 390 , s [ 6 to 5 ] . count ( ) , 0 ) test ( 391 , s [ - 2 to 12 ] . count ( ) , 10 ) test ( 392 , s [ 12 to 14 ] . count ( ) , 0 ) test ( 393 , s [ - 2 to - 1 ] . count ( ) , 0 ) test ( 394 , s [ - 2 to ] . count ( ) , 10 ) test ( 395 , s [ to 12 ] . count ( ) , 10 ) test ( 396 , s [ 12 to - 1 ] . count ( ) , 0 ) s [ - 2 to 4 ] = "abcdef" test ( 399 , s , "abcd456789" ) s [ 8 to 12 ] = "ABCD" test ( 401 , s , "abcd4567AB" ) s [ 7 to 7 ] = "ABCD" test ( 403 , s , "abcd4567AB" ) s [ 7 to 6 ] = "ABCD" test ( 405 , s , "abcd4567AB" ) s [ 7 to - 1 ] = "ABCD" test ( 407 , s , "abcd4567AB" ) s [ 12 to 7 ] = "ABCD" test ( 409 , s , "abcd4567AB" ) } { test ( 414 , leftstr ( "abcde" , 2 ) , "ab" ) test ( 415 , leftstr ( "abcde" , 0 ) , "" ) test ( 416 , leftstr ( "abcde" , - 2 ) , "" ) test ( 417 , leftstr ( "abcde" , 9 ) , "abcde" ) test ( 419 , rightstr ( "abcde" , 2 ) , "de" ) test ( 420 , rightstr ( "abcde" , 0 ) , "" ) test ( 421 , rightstr ( "abcde" , - 2 ) , "" ) test ( 422 , rightstr ( "abcde" , 9 ) , "abcde" ) test ( 424 , midstr ( "abcde" , 2 , 3 ) , "cde" ) test ( 425 , midstr ( "abcde" , 0 , 3 ) , "abc" ) test ( 426 , midstr ( "abcde" , - 2 , 3 ) , "a" ) test ( 427 , midstr ( "abcde" , 9 , 3 ) , "" ) test ( 428 , midstr ( "abcde" , 2 , 0 ) , "" ) test ( 429 , midstr ( "abcde" , 0 , 0 ) , "" ) test ( 430 , midstr ( "abcde" , - 2 , 0 ) , "" ) test ( 431 , midstr ( "abcde" , 9 , 0 ) , "" ) test ( 432 , midstr ( "abcde" , 2 , - 6 ) , "" ) test ( 433 , midstr ( "abcde" , 0 , - 6 ) , "" ) test ( 434 , midstr ( "abcde" , - 2 , - 6 ) , "" ) test ( 435 , midstr ( "abcde" , 9 , - 6 ) , "" ) test ( 437 , substr ( "abcde" , 2 , 3 ) , "c" ) test ( 438 , substr ( "abcde" , 0 , 3 ) , "abc" ) test ( 439 , substr ( "abcde" , - 2 , 3 ) , "abc" ) test ( 440 , substr ( "abcde" , 9 , 3 ) , "" ) test ( 442 , substr ( "abcde" , 2 , 9 ) , "cde" ) test ( 443 , substr ( "abcde" , 0 , 9 ) , "abcde" ) test ( 444 , substr ( "abcde" , - 2 , 9 ) , "abcde" ) test ( 445 , substr ( "abcde" , 9 , 9 ) , "" ) } { test ( 450 , numval uint8 ( "123" ) , 123 ) test ( 451 , numval uint8 ( "255" ) , 255 ) test ( 452 , numval uint8 ( "0" ) , 0 ) test ( 453 , numval uint8 ( "+45" ) , 45 ) test ( 454 , numval uint8 ( "-45" ) , ( uint8 ) - 45 ) test ( 456 , numval int8 ( "123" ) , + 123 ) test ( 457 , numval int8 ( "255" ) , ( int8 ) 255 ) test ( 458 , numval int8 ( "0" ) , + 0 ) test ( 459 , numval int8 ( "+45" ) , + 45 ) test ( 460 , numval int8 ( "-45" ) , - 45 ) test ( 462 , numval uint16 ( "123" ) , 123 ) test ( 463 , numval uint16 ( "65535" ) , 65535 ) test ( 464 , numval uint16 ( "0" ) , 0 ) test ( 465 , numval uint16 ( "+4567" ) , 4567 ) test ( 466 , numval uint16 ( "-4567" ) , ( uint16 ) - 4567 ) test ( 468 , numval int16 ( "12346" ) , + 12346 ) test ( 469 , numval int16 ( "65535" ) , ( int16 ) 65535 ) test ( 470 , numval int16 ( "0" ) , + 0 ) test ( 471 , numval int16 ( "+4567" ) , + 4567 ) test ( 472 , numval int16 ( "-4567" ) , - 4567 ) test ( 474 , numval uint32 ( "1234567" ) , 1234567 ) test ( 475 , numval uint32 ( "4294967295" ) , 4294967295 ) test ( 476 , numval uint32 ( "0" ) , 0 ) test ( 477 , numval uint32 ( "+4567899" ) , 4567899 ) test ( 478 , numval uint32 ( "-4567899" ) , ( uint32 ) - 4567899 ) test ( 480 , numval int32 ( "123464567" ) , + 123464567 ) test ( 481 , numval int32 ( "4294967295" ) , ( int32 ) 4294967295 ) test ( 482 , numval int32 ( "0" ) , + 0 ) test ( 483 , numval int32 ( "+45674567" ) , + 45674567 ) test ( 484 , numval int32 ( "-45674567" ) , - 45674567 ) test ( 486 , numval uint64 ( "844674407370955161" ) , 844674407370955161 ) test ( 487 , numval uint64 ( "18446744073709551615" ) , 18446744073709551615 ) test ( 488 , numval uint64 ( "0" ) , 0 ) test ( 489 , numval uint64 ( "+456789965535" ) , 456789965535 ) test ( 490 , numval uint64 ( "-456789965535" ) , ( uint64 ) - 456789965535 ) test ( 492 , numval int64 ( "1844674407370955161" ) , + 1844674407370955161 ) test ( 493 , numval int64 ( "9223372036854775807" ) , + 9223372036854775807 ) test ( 494 , numval int64 ( "+9223372036854775807" ) , + 9223372036854775807 ) test ( 495 , numval int64 ( "-9223372036854775808" ) , - 9223372036854775808 ) test ( 496 , numval int64 ( "0" ) , + 0 ) test ( 497 , numval int64 ( "+6553545674567" ) , + 6553545674567 ) test ( 498 , numval int64 ( "-6553545674567" ) , - 6553545674567 ) print ( " " ) test ( 503 , numval float32 ( "123464567" ) , + 123464567 ) test ( 504 , numval float32 ( "4294967295" ) , 4294967295 ) test ( 505 , numval float32 ( "0" ) , + 0 ) test ( 506 , numval float32 ( "+45674567" ) , + 45674567 ) test ( 507 , numval float32 ( "-45674567" ) , - 45674567 ) test ( 508 , numval float32 ( "+45674567" ) , + 45674567 ) test ( 509 , numval float32 ( "-45674567" ) , - 45674567 ) test ( 510 , numval float32 ( "+4567.4567e10" ) , + 45674565468160 ) test ( 511 , numval float32 ( "-4567.4567e10" ) , - 45674565468160 ) test ( 512 , numval float32 ( "+4567.4567e+10" ) , + 45674565468160 ) test ( 513 , numval float32 ( "-4567.4567e+10" ) , - 45674565468160 ) test ( 514 , numval float32 ( "+4567.4567e-10" ) , + 4.5674568127652e-07 ) test ( 515 , numval float32 ( "-4567.4567e-10" ) , - 4.5674568127652e-07 ) print ( " " ) test ( 518 , numval float64 ( "123464567" ) , + 123464567 ) test ( 519 , numval float64 ( "4294967295" ) , 4294967295 ) test ( 520 , numval float64 ( "0" ) , + 0 ) test ( 521 , numval float64 ( "+45674567" ) , + 45674567 ) test ( 522 , numval float64 ( "-45674567" ) , - 45674567 ) test ( 523 , numval float64 ( "+45674567" ) , + 45674567 ) test ( 524 , numval float64 ( "-45674567" ) , - 45674567 ) test ( 525 , numval float64 ( "+4567.4567e10" ) , + 45674567000000 ) test ( 526 , numval float64 ( "-4567.4567e10" ) , - 45674567000000 ) test ( 527 , numval float64 ( "+4567.4567e+10" ) , + 45674567000000 ) test ( 528 , numval float64 ( "-4567.4567e+10" ) , - 45674567000000 ) test ( 529 , numval float64 ( "+4567.4567e-10" ) , + 4.5674567e-07 ) test ( 530 , numval float64 ( "-4567.4567e-10" ) , - 4.5674567e-07 ) print ( " " ) test ( 533 , numval float128 ( "123464567" ) , + 123464567.000000006854 ) test ( 534 , numval float128 ( "4294967295" ) , 4294967295.000000238419 ) test ( 535 , numval float128 ( "0" ) , + 0 ) test ( 536 , numval float128 ( "+45674567" ) , + 45674567.00000000253567 ) test ( 537 , numval float128 ( "-45674567" ) , - 45674567.00000000253567 ) test ( 538 , numval float128 ( "+45674567" ) , + 45674567.00000000253567 ) test ( 539 , numval float128 ( "-45674567" ) , - 45674567.00000000253567 ) test ( 540 , numval float128 ( "+4567.4567e110" ) , + 4.567456700000000415936e+113 ) test ( 541 , numval float128 ( "-4567.4567e110" ) , - 4.567456700000000415936e+113 ) test ( 542 , numval float128 ( "+4567.4567e+110" ) , + 4.567456700000000415936e+113 ) test ( 543 , numval float128 ( "-4567.4567e+110" ) , - 4.567456700000000415936e+113 ) test ( 544 , numval float128 ( "+4567.4567e-110" ) , + 4.567456700000000231431e-107 ) test ( 545 , numval float128 ( "-4567.4567e-110" ) , - 4.567456700000000231431e-107 ) test ( 546 , numval float128 ( "-45674567e-110" ) , - 4.567456700000000233765e-103 ) print ( " " ) } { str nullstr = null test ( 555 , find ( "abcde" , 98 ) , 1 ) test ( 556 , find ( "abcde" , "b" ) , 1 ) test ( 557 , find ( "abcde" , "bc" ) , 1 ) test ( 558 , find ( "abcde" , "" ) , 0 ) test ( 559 , find ( "abcde" , 102 ) , ~ 0 ) test ( 560 , find ( "abcde" , "f" ) , ~ 0 ) test ( 561 , find ( "" , "" ) , 0 ) test ( 562 , find ( "" , "X" ) , ~ 0 ) test ( 563 , find ( nullstr , "X" ) , ~ 0 ) test ( 564 , find ( "abcde" , nullstr ) , 0 ) test ( 566 , find ( "abcde" [ to ] , 98 ) , 1 ) test ( 567 , find ( "abcde" [ to ] , "b" ) , 1 ) test ( 568 , find ( "abcde" [ to ] , "bc" ) , 1 ) test ( 569 , find ( "abcde" [ to ] , "" ) , 0 ) test ( 570 , find ( "abcde" [ to ] , 102 ) , ~ 0 ) test ( 571 , find ( "abcde" [ to ] , "f" ) , ~ 0 ) test ( 572 , find ( "" [ to ] , "" ) , 0 ) test ( 573 , find ( nullstr [ to ] , "X" ) , ~ 0 ) test ( 574 , find ( "abcde" [ to ] , nullstr ) , 0 ) test ( 576 , rfind ( "abcde" , 98 ) , 1 ) test ( 577 , rfind ( "abcde" , "b" ) , 1 ) test ( 578 , rfind ( "abcde" , "bc" ) , 1 ) test ( 579 , rfind ( "abcde" , "" ) , 0 ) test ( 580 , rfind ( "abcde" , 102 ) , ~ 0 ) test ( 581 , rfind ( "abcde" , "f" ) , ~ 0 ) test ( 582 , rfind ( "" , "" ) , 0 ) test ( 583 , rfind ( "" , "X" ) , ~ 0 ) test ( 584 , rfind ( nullstr , "X" ) , ~ 0 ) test ( 585 , rfind ( "abcde" , nullstr ) , 0 ) test ( 587 , rfind ( "abcde" [ to ] , 98 ) , 1 ) test ( 588 , rfind ( "abcde" [ to ] , "b" ) , 1 ) test ( 589 , rfind ( "abcde" [ to ] , "bc" ) , 1 ) test ( 590 , rfind ( "abcde" [ to ] , "" ) , 0 ) test ( 591 , rfind ( "abcde" [ to ] , 102 ) , ~ 0 ) test ( 592 , rfind ( "abcde" [ to ] , "f" ) , ~ 0 ) test ( 593 , rfind ( "" [ to ] , "" ) , 0 ) test ( 594 , rfind ( nullstr [ to ] , "X" ) , ~ 0 ) test ( 595 , rfind ( "abcde" [ to ] , nullstr ) , 0 ) } { str s = null flip ( s ) test ( 600 , s , "" ) s = "" flip ( s ) test ( 601 , s , "" ) s = "1" flip ( s ) test ( 602 , s , "1" ) s = "1234" flip ( s ) test ( 603 , s , "4321" ) s = "12345" flip ( s ) test ( 604 , s , "54321" ) s = null rol ( s ) test ( 606 , s , "" ) s = "" rol ( s ) test ( 607 , s , "" ) s = "1" rol ( s ) test ( 608 , s , "1" ) s = "1234" rol ( s ) test ( 609 , s , "2341" ) s = "12345" rol ( s ) test ( 610 , s , "23451" ) s = null ror ( s ) test ( 612 , s , "" ) s = "" ror ( s ) test ( 613 , s , "" ) s = "1" ror ( s ) test ( 614 , s , "1" ) s = "1234" ror ( s ) test ( 615 , s , "4123" ) s = "12345" ror ( s ) test ( 616 , s , "51234" ) } { str s = null sort ( s ) test ( 621 , s , "" ) s = "" sort ( s ) test ( 622 , s , "" ) s = "1" sort ( s ) test ( 623 , s , "1" ) s = "521436" sort ( s ) test ( 624 , s , "123456" ) s = "2715643" sort ( s ) test ( 625 , s , "1234567" ) s = "123456" sort ( s ) test ( 626 , s , "123456" ) s = "1234567" sort ( s ) test ( 627 , s , "1234567" ) s = "654321" sort ( s ) test ( 628 , s , "123456" ) s = "7654321" sort ( s ) test ( 629 , s , "1234567" ) s = null rsort ( s ) test ( 631 , s , "" ) s = "" rsort ( s ) test ( 632 , s , "" ) s = "1" rsort ( s ) test ( 633 , s , "1" ) s = "521436" rsort ( s ) test ( 634 , s , "654321" ) s = "2715643" rsort ( s ) test ( 635 , s , "7654321" ) s = "123456" rsort ( s ) test ( 636 , s , "654321" ) s = "1234567" rsort ( s ) test ( 637 , s , "7654321" ) s = "654321" rsort ( s ) test ( 638 , s , "654321" ) s = "7654321" rsort ( s ) test ( 639 , s , "7654321" ) s = null shuffle ( s ) test ( 641 , s , "" ) s = "" shuffle ( s ) test ( 642 , s , "" ) s = "1" shuffle ( s ) test ( 643 , s , "1" ) s = "521436" do { shuffle ( s ) while s == "521436" } sort ( s ) test ( 644 , s , "123456" ) s = "2715643" do { shuffle ( s ) while s == "2715643" } sort ( s ) test ( 645 , s , "1234567" ) s = "123456" do { shuffle ( s ) while s == "123456" } sort ( s ) test ( 646 , s , "123456" ) s = "1234567" do { shuffle ( s ) while s == "1234567" } sort ( s ) test ( 647 , s , "1234567" ) s = "654321" do { shuffle ( s ) while s == "654321" } sort ( s ) test ( 648 , s , "123456" ) s = "7654321" do { shuffle ( s ) while s == "7654321" } sort ( s ) test ( 649 , s , "1234567" ) s = "doedel,123,47kSpaceshuttle111,Antonov,Sipirsky,Woig234512344711" sort ( s ) test ( 653 , s , ",,,,,11111112223334444577ASSWacddeeeeghiiikkllnnoooopprsstttuvy" ) str [ ] a = { "dödel" , "123" , "4711" , "Antonov" , "Sipirsky" , "Woigk" , "Space shuttle" , "12345" , "1234" , "4711" } sort ( a ) test ( 657 , join ( a , 44 ) , "123,1234,12345,4711,4711,Antonov,Sipirsky,Space shuttle,Woigk,dödel" ) } { str t = "123,234,345,4567,6789,0000" str s = t str [ ] a a = split ( s , 44 ) test ( 667 , a . count ( ) , 6 ) s = join ( a , 44 ) test ( 669 , s , t ) a = split ( s , "," ) test ( 672 , a . count ( ) , 6 ) s = join ( a , "," ) test ( 674 , s , t ) t = "123,.234,.345,.4567,.6789,.0000" s = t a = split ( s , ",." ) test ( 679 , a . count ( ) , 6 ) s = join ( a , ",." ) test ( 681 , s , t ) a = split ( "abc" , "a" ) test ( 684 , a . count ( ) , 2 ) test ( 685 , a [ 0 ] , "" ) test ( 686 , a [ 1 ] , "bc" ) s = join ( a , "a" ) test ( 688 , s , "abc" ) a = split ( "abc" , "c" ) test ( 691 , a . count ( ) , 2 ) test ( 692 , a [ 0 ] , "ab" ) test ( 693 , a [ 1 ] , "" ) s = join ( a , "c" ) test ( 695 , s , "abc" ) a = split ( "abc" , "" ) test ( 698 , a . count ( ) , 3 ) test ( 699 , a [ 0 ] , "a" ) test ( 700 , a [ 1 ] , "b" ) test ( 701 , a [ 2 ] , "c" ) s = join ( a , "" ) test ( 703 , s , "abc" ) } { test ( 708 , toupper ( null ) , "" ) test ( 709 , toupper ( "" ) , "" ) test ( 710 , toupper ( "abcde12345,.-{ }" ) , "ABCDE12345,.-{ }" ) test ( 711 , toupper ( "Füße" ) , "FÜßE" ) test ( 712 , toupper ( "über ältere öfters lästern" ) , "ÜBER ÄLTERE ÖFTERS LÄSTERN" ) test ( 713 , toupper ( "çñaáàâ" ) , "ÇÑAÁÀÂ" ) test ( 714 , toupper ( "ṱūȕṵừʋẋẏżöǫổờǿṙ" ) , "ṰŪȔṴỪƲẊẎŻÖǪỔỜǾṘ" ) test ( 715 , "çñaáàâ" . toupper ( ) , "ÇÑAÁÀÂ" ) test ( 717 , tolower ( null ) , "" ) test ( 718 , tolower ( "" ) , "" ) test ( 719 , tolower ( "ABCDE12345,.-{ }" ) , "abcde12345,.-{ }" ) test ( 720 , tolower ( "FÜßE" ) , "füße" ) test ( 721 , tolower ( "ÜBER ÄLTERE ÖFTERS LÄSTERN" ) , "über ältere öfters lästern" ) test ( 722 , tolower ( "ÇÑAÁÀÂ" ) , "çñaáàâ" ) test ( 723 , tolower ( "ṰŪȔṴỪƲẊẎŻÖǪỔỜǾṘ" ) , "ṱūȕṵừʋẋẏżöǫổờǿṙ" ) test ( 724 , "CHINATOWN" . tolower ( ) , "chinatown" ) } } ""