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_numeric_operators ( ) { print ( "\nnumeric operators:\n" ) test ( 13 , 1.2 + 3.5 , 4.7 ) test ( 14 , 1.5 - 0.65 , 0.85 ) test ( 15 , - 1.25 + 4 , 2.75 ) test ( 16 , 1.4 / 7 , 0.2 ) test ( 17 , ! 0 + 0.5 , 1.5 ) test ( 19 , - 17 / 5 , - 3 ) test ( 20 , - 17 / - 5 , + 3 ) test ( 21 , - 17 / + 5 , - 3 ) test ( 22 , + 17 / 5 , + 3 ) test ( 23 , + 17 / - 5 , - 3 ) test ( 24 , + 17 / + 5 , + 3 ) test ( 25 , 17 / 5 , 3 ) test ( 26 , 17 / - 5 , - 3 ) test ( 27 , 17 / + 5 , + 3 ) test ( 29 , - 17 % 5 , - 2 ) test ( 30 , - 17 % - 5 , - 2 ) test ( 31 , - 17 % + 5 , - 2 ) test ( 32 , + 17 % 5 , + 2 ) test ( 33 , + 17 % - 5 , + 2 ) test ( 34 , + 17 % + 5 , + 2 ) test ( 35 , 17 % 5 , 2 ) test ( 36 , 17 % - 5 , 2 ) test ( 37 , 17 % + 5 , 2 ) test ( 39 , 5 * - 3 , - 15 ) test ( 40 , - 5 * + 3 , - 15 ) test ( 41 , + 5 * - 3 , - 15 ) test ( 42 , 5 * + 3 , + 15 ) test ( 43 , - 5 * - 3 , + 15 ) test ( 44 , + 5 * + 3 , + 15 ) test ( 45 , 5 * 3 , 15 ) test ( 46 , - 5 * - 3 , + 15 ) test ( 47 , + 5 * + 3 , + 15 ) { uint n = 5 test ( 51 , - 17 / n , - 3 ) test ( 52 , - 17 / - n , + 3 ) test ( 53 , - 17 / + n , - 3 ) test ( 54 , + 17 / n , + 3 ) test ( 55 , + 17 / - n , - 3 ) test ( 56 , + 17 / + n , + 3 ) test ( 57 , 17 / n , 3 ) test ( 58 , 17 / - n , - 3 ) test ( 59 , 17 / + n , + 3 ) test ( 61 , - 17 % n , - 2 ) test ( 62 , - 17 % - n , - 2 ) test ( 63 , - 17 % + n , - 2 ) test ( 64 , + 17 % n , + 2 ) test ( 65 , + 17 % - n , + 2 ) test ( 66 , + 17 % + n , + 2 ) test ( 67 , 17 % n , 2 ) test ( 68 , 17 % - n , 2 ) test ( 69 , 17 % + n , 2 ) test ( 71 , - n * 3 , - 15 ) test ( 72 , - n * + 3 , - 15 ) test ( 73 , - n * - 3 , + 15 ) test ( 74 , + n * 3 , + 15 ) test ( 75 , + n * + 3 , + 15 ) test ( 76 , + n * - 3 , - 15 ) test ( 77 , n * 3 , 15 ) test ( 78 , n * + 3 , + 15 ) test ( 79 , n * - 3 , - 15 ) } test ( 82 , - 17 / 5 , - 3 ) test ( 83 , - 17 / - 5 , + 3 ) test ( 84 , - 17 / + 5 , - 3 ) test ( 85 , + 17 / 5 , + 3 ) test ( 86 , + 17 / - 5 , - 3 ) test ( 87 , + 17 / + 5 , + 3 ) test ( 88 , 17 / 5 , 3 ) test ( 89 , 17 / - 5 , - 3 ) test ( 90 , 17 / + 5 , + 3 ) test ( 92 , - 17 % 5 , - 2 ) test ( 93 , - 17 % - 5 , - 2 ) test ( 94 , - 17 % + 5 , - 2 ) test ( 95 , + 17 % 5 , + 2 ) test ( 96 , + 17 % - 5 , + 2 ) test ( 97 , + 17 % + 5 , + 2 ) test ( 98 , 17 % 5 , 2 ) test ( 99 , 17 % - 5 , 2 ) test ( 100 , 17 % + 5 , 2 ) test ( 102 , 5 * - 3 , - 15 ) test ( 103 , - 5 * + 3 , - 15 ) test ( 104 , + 5 * - 3 , - 15 ) test ( 105 , 5 * + 3 , + 15 ) test ( 106 , - 5 * - 3 , + 15 ) test ( 107 , + 5 * + 3 , + 15 ) test ( 108 , 5 * 3 , 15 ) test ( 109 , - 5 * - 3 , + 15 ) test ( 110 , + 5 * + 3 , + 15 ) { ulong n = 5 test ( 114 , - 17 / n , - 3 ) test ( 115 , - 17 / - n , + 3 ) test ( 116 , - 17 / + n , - 3 ) test ( 117 , + 17 / n , + 3 ) test ( 118 , + 17 / - n , - 3 ) test ( 119 , + 17 / + n , + 3 ) test ( 120 , 17 / n , 3 ) test ( 121 , 17 / - n , - 3 ) test ( 122 , 17 / + n , + 3 ) test ( 124 , - 17 % n , - 2 ) test ( 125 , - 17 % - n , - 2 ) test ( 126 , - 17 % + n , - 2 ) test ( 127 , + 17 % n , + 2 ) test ( 128 , + 17 % - n , + 2 ) test ( 129 , + 17 % + n , + 2 ) test ( 130 , 17 % n , 2 ) test ( 131 , 17 % - n , 2 ) test ( 132 , 17 % + n , 2 ) test ( 134 , - n * 3 , - 15 ) test ( 135 , - n * + 3 , - 15 ) test ( 136 , - n * - 3 , + 15 ) test ( 137 , + n * 3 , + 15 ) test ( 138 , + n * + 3 , + 15 ) test ( 139 , + n * - 3 , - 15 ) test ( 140 , n * 3 , 15 ) test ( 141 , n * + 3 , + 15 ) test ( 142 , n * - 3 , - 15 ) test ( 144 , - 17 / n , - 3 ) test ( 145 , - 17 / - n , + 3 ) test ( 146 , - 17 / + n , - 3 ) test ( 147 , + 17 / n , + 3 ) test ( 148 , + 17 / - n , - 3 ) test ( 149 , + 17 / + n , + 3 ) test ( 150 , 17 / n , 3 ) test ( 151 , 17 / - n , - 3 ) test ( 152 , 17 / + n , + 3 ) test ( 154 , - 17 % n , - 2 ) test ( 155 , - 17 % - n , - 2 ) test ( 156 , - 17 % + n , - 2 ) test ( 157 , + 17 % n , + 2 ) test ( 158 , + 17 % - n , + 2 ) test ( 159 , + 17 % + n , + 2 ) test ( 160 , 17 % n , 2 ) test ( 161 , 17 % - n , 2 ) test ( 162 , 17 % + n , 2 ) test ( 164 , - n * 3 , - 15 ) test ( 165 , - n * + 3 , - 15 ) test ( 166 , - n * - 3 , + 15 ) test ( 167 , + n * 3 , + 15 ) test ( 168 , + n * + 3 , + 15 ) test ( 169 , + n * - 3 , - 15 ) test ( 170 , n * 3 , 15 ) test ( 171 , n * + 3 , + 15 ) test ( 172 , n * - 3 , - 15 ) } float a , b , c , d a = 1.23 test ( 179 , a , 1.23 ) a = 4 test ( 182 , a , 4 ) test ( 183 , a + 4 , 8 ) test ( 185 , 17 % 2.5 , 2 ) test ( 186 , - 17 % 2.5 , - 2 ) test ( 187 , 17 % - 2.5 , 2 ) test ( 188 , - 17 % - 2.5 , - 2 ) test ( 189 , 4 - 3.5 , 0.5 ) test ( 190 , - a , + 3 - 7 ) test ( 191 , - 0 , + 0 ) test ( 192 , ! 0 , 1 ) test ( 193 , ! 55 , 0 ) test ( 194 , + ~ 0 , - 1 ) test ( 195 , + a , 4 ) test ( 196 , a * 3.5 , 14 ) test ( 197 , a / 0.5 , + 0 + 8 ) test ( 198 , 123.456 , ( ( ( ( 123 ) ) + ( 0.456 ) ) ) ) test ( 200 , ( 3 + 4 * 50 ) , 203 ) test ( 201 , ( 3 - 4 / 5 ) , 2.2 ) test ( 202 , ( 3 * ( 4 + 5 ) ) , 27 ) test ( 203 , ( ( 3 + 4 ) * 5 ) , 35 ) test ( 204 , ( 3 + - 4 ) , - 1 ) test ( 205 , ( 15 & 26 != 10 ) , 0 ) a = 123.456 + 385.12 * 46.1 / 46 / ( 1.02 * ( 0.03 + 164.44 ) ) b = 1.02 * 0.03 + 164.44 * 1.02 test ( 208 , b , 167.7594 ) ; c = 385.12 * 46.1 test ( 209 , c , 17754.032 ) d = c / 23 / 2 test ( 210 , a , d / b + 123 + 0.456 ) a = 44 test ( 212 , ++ a != 45 || ++ a != 46 , 0 ) a = 44 test ( 213 , -- a != 43 || -- a != 42 , 0 ) a = 44 test ( 214 , a ++ != 44 || a ++ != 45 , 0 ) a = 44 test ( 215 , a -- != 44 || a -- != 43 , 0 ) a = 123 ; a -= 20 + 3 ; test ( 217 , a - 100 , 0 ) a = 123 ; a += - 46 / 2 ; test ( 218 , a - 100 , 0 ) a = 123 ; a *= 3 + 2 * 10 ; test ( 219 , a , 2829 ) a = 1604.928 a /= 123.456 test ( 220 , a , 13 ) a = 3 a = a + a + a test ( 221 , a , 9 ) test ( 223 , 3 == 4 , 0 ) test ( 224 , 4 != 5 , 1 ) test ( 225 , 7 < 9 , 1 ) test ( 226 , 9 >= 9 , 1 ) test ( 227 , 5 >= 6 , 0 ) test ( 228 , 5 <= 6 , 1 ) test ( 229 , 5 + 1 == 6 , 1 ) test ( 231 , 33 << 2 , 132 ) test ( 232 , 132 >> 2 , 33 ) test ( 234 , 4 << 2 , 16 ) test ( 235 , 5 >> 2 , 1.25 ) test ( 236 , - 4 << 2 , - 16 ) test ( 237 , - 5 >> 2 , - 1.25 ) test ( 239 , 4660 , 4660 ) test ( 240 , 2600461647 , 2600461647 ) test ( 242 , 8 & 2 , 0 ) test ( 243 , 7 & 3 , 3 ) test ( 244 , 255 & 129 & 3 , 1 ) test ( 246 , 8 | 2 , 10 ) test ( 247 , 7 | 3 , 7 ) test ( 248 , 255 | 129 | 3 , 255 ) { uint32 a a = 3 test ( 251 , a == 4 , 0 ) a = 4 test ( 252 , a != 5 , 1 ) a = 7 test ( 253 , a < 9 , 1 ) a = 9 test ( 254 , a >= 9 , 1 ) a = 5 test ( 255 , a >= 6 , 0 ) a = 5 test ( 256 , a <= 6 , 1 ) a = 5 test ( 257 , a + 1 == 6 , 1 ) a = 4 test ( 259 , 3 == a , 0 ) a = 5 test ( 260 , 4 != a , 1 ) a = 9 test ( 261 , 7 < a , 1 ) a = 9 test ( 262 , 9 >= a , 1 ) a = 6 test ( 263 , 5 >= a , 0 ) a = 6 test ( 264 , 5 <= a , 1 ) a = 6 test ( 265 , 5 + 1 == a , 1 ) a = 33 test ( 267 , a << 2 , 132 ) a = 132 test ( 268 , a >> 2 , 33 ) a = 2 test ( 269 , 33 << a , 132 ) a = 2 test ( 270 , 132 >> a , 33 ) test ( 272 , 1 || a / 0 , 1 ) test ( 273 , 0 && a / 0 , 0 ) a = 1 test ( 274 , a || a / 0 , 1 ) a = 0 test ( 275 , a && a / 0 , 0 ) a = 8 test ( 277 , a & 2 , 0 ) a = 7 test ( 278 , a & 3 , 3 ) a = 255 test ( 279 , a & 129 & 3 , 1 ) a = 8 test ( 281 , a | 2 , 10 ) a = 7 test ( 282 , a | 3 , 7 ) a = 255 test ( 283 , a | 129 | 3 , 255 ) } { uint64 a a = 3 test ( 286 , a == 4 , 0 ) a = 4 test ( 287 , a != 5 , 1 ) a = 7 test ( 288 , a < 9 , 1 ) a = 9 test ( 289 , a >= 9 , 1 ) a = 5 test ( 290 , a >= 6 , 0 ) a = 5 test ( 291 , a <= 6 , 1 ) a = 5 test ( 292 , a + 1 == 6 , 1 ) a = 4 test ( 294 , 3 == a , 0 ) a = 5 test ( 295 , 4 != a , 1 ) a = 9 test ( 296 , 7 < a , 1 ) a = 9 test ( 297 , 9 >= a , 1 ) a = 6 test ( 298 , 5 >= a , 0 ) a = 6 test ( 299 , 5 <= a , 1 ) a = 6 test ( 300 , 5 + 1 == a , 1 ) a = 33 test ( 302 , a << 2 , 132 ) a = 132 test ( 303 , a >> 2 , 33 ) a = 2 test ( 304 , 33 << a , 132 ) a = 2 test ( 305 , 132 >> a , 33 ) test ( 307 , 1 || a / 0 , 1 ) test ( 308 , 0 && a / 0 , 0 ) a = 1 test ( 309 , a || a / 0 , 1 ) a = 0 test ( 310 , a && a / 0 , 0 ) a = 8 test ( 312 , a & 2 , 0 ) a = 7 test ( 313 , a & 3 , 3 ) a = 255 test ( 314 , a & 129 & 3 , 1 ) a = 8 test ( 316 , a | 2 , 10 ) a = 7 test ( 317 , a | 3 , 7 ) a = 255 test ( 318 , a | 129 | 3 , 255 ) } { uint16 a a = 3 test ( 321 , a == 4 , 0 ) a = 4 test ( 322 , a != 5 , 1 ) a = 7 test ( 323 , a < 9 , 1 ) a = 9 test ( 324 , a >= 9 , 1 ) a = 5 test ( 325 , a >= 6 , 0 ) a = 5 test ( 326 , a <= 6 , 1 ) a = 5 test ( 327 , a + 1 == 6 , 1 ) a = 4 test ( 329 , 3 == a , 0 ) a = 5 test ( 330 , 4 != a , 1 ) a = 9 test ( 331 , 7 < a , 1 ) a = 9 test ( 332 , 9 >= a , 1 ) a = 6 test ( 333 , 5 >= a , 0 ) a = 6 test ( 334 , 5 <= a , 1 ) a = 6 test ( 335 , 5 + 1 == a , 1 ) a = 33 test ( 337 , a << 2 , 132 ) a = 132 test ( 338 , a >> 2 , 33 ) a = 2 test ( 339 , 33 << a , 132 ) a = 2 test ( 340 , 132 >> a , 33 ) test ( 342 , 1 || a / 0 , 1 ) test ( 343 , 0 && a / 0 , 0 ) a = 1 test ( 344 , a || a / 0 , 1 ) a = 0 test ( 345 , a && a / 0 , 0 ) a = 8 test ( 347 , a & 2 , 0 ) a = 7 test ( 348 , a & 3 , 3 ) a = 255 test ( 349 , a & 129 & 3 , 1 ) a = 8 test ( 351 , a | 2 , 10 ) a = 7 test ( 352 , a | 3 , 7 ) a = 255 test ( 353 , a | 129 | 3 , 255 ) } { int a = 1 , b = 0 test ( 358 , a ? 1 : 0 , 1 ) test ( 359 , b ? 0 : 1 , 1 ) test ( 360 , a ? b ? 0 : 1 : b ? 2 : 3 , 1 ) test ( 361 , a ? ! b ? 0 : 1 : ! b ? 2 : 3 , 0 ) test ( 362 , ! a ? b ? 0 : 1 : b ? 2 : 3 , 3 ) test ( 363 , ! a ? ! b ? 0 : 1 : ! b ? 2 : 3 , 2 ) test ( 364 , 1 ? 2 : 1 ? 3 : 1 ? 4 : 5 , 2 ) test ( 365 , 0 ? 2 : 1 ? 3 : 1 ? 4 : 5 , 3 ) test ( 366 , 0 ? 2 : 0 ? 3 : 1 ? 4 : 5 , 4 ) test ( 367 , 0 ? 2 : 0 ? 3 : 0 ? 4 : 5 , 5 ) } print ( 2.225073858507201279476e-308 ) ; test ( 372 , "a " + "test" , "a test" ) test ( 373 , "and " + "one " + "more" , "and one more" ) test ( 374 , "Result " + "3" , "Result 3" ) test ( 375 , "Result " + 51 , "Result 51" ) test ( 376 , "Result " + 51 , "Result 3" ) str s = "String" s += "Builder" test ( 378 , s , "StringBuilder" ) test ( 379 , "" < "string" , 1 ) test ( 380 , "a" == "a" , 1 ) test ( 381 , "a" != "b" , 1 ) test ( 382 , "classa" <= "classb" , 1 ) test ( 383 , binstr ( ( uint8 ) 72 ) , "01001000" ) test ( 384 , binstr ( ( uint16 ) 72 ) , "0000000001001000" ) test ( 385 , binstr ( ( uint16 ) 72 , "------------" , "sssrwxrwxrwx" ) , "-----x--x---" ) test ( 386 , hexstr ( 406247989 ) , "1836da35" ) test ( 387 , hexstr ( 1744821829773428757 ) , "1836da35affe0815" ) test ( 389 , "AbCd34$%äß" . toupper ( ) , "ABCD34$%Äß" ) test ( 390 , "AbCd34$%Äß" . tolower ( ) , "abcd34$%äß" ) } ""