Changeset 62a7cc0 for tests/collections/sequence.cfa
- Timestamp:
- Dec 27, 2020, 5:59:17 PM (3 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 1e6f632f
- Parents:
- a3a76ea
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tests/collections/sequence.cfa
ra3a76ea r62a7cc0 14 14 i = p; 15 15 } 16 17 16 Fred *& Back( Fred * n ) { 18 17 return (Fred *)Back( (Seqable *)n ); 19 18 } 20 21 19 Fred *& Next( Fred * n ) { 22 20 return (Fred *)Next( (Colable *)n ); … … 38 36 } 39 37 38 sout | head( fred ).i | tail( fred ).i | nl; 39 40 40 for ( SeqIter(Fred) iter = { fred }; iter >> f; ) { 41 41 sout | f.i | ' '; … … 55 55 addTail( fred, *new( 2 * i + 1 ) ); 56 56 } 57 for ( over( fredIter, fred ); fredIter >> f; ) { 58 sout | f.i | ' '; 59 } 60 sout | nl; 61 62 for ( i; 9 ) { 57 58 Fred * head = new( -1 ), tail = { -2 }; 59 addHead( fred, *head ); 60 addTail( fred, tail ); 61 62 sout | head( fred ).i | succ( fred, head )->i | tail( fred ).i | nl; 63 for ( over( fredIter, fred ); fredIter >> f; ) { 64 sout | f.i | ' '; 65 } 66 sout | nl; 67 68 remove( fred, *head ); 69 remove( fred, tail ); 70 delete( head ); 71 delete( &dropTail( fred ) ); 72 73 for ( over( fredIter, fred ); fredIter >> f; ) { 74 sout | f.i | ' '; 75 } 76 sout | nl; 77 78 for ( i; 5 ) { 63 79 delete( &dropTail( fred ) ); 64 80 } … … 69 85 70 86 for ( over( fredIter, fred ); fredIter >> f; ) { 71 delete( &f ); 72 } 73 74 Sequence(Fred) fred0; 75 Fred * middle; 76 for ( i; 10 ) { 77 if( i == 5) { 78 middle = new( i ); 79 addHead( fred0, *middle ); 80 continue; 87 delete( &remove( fred, f ) ); 88 } 89 for ( over( fredIter, fred ); fredIter >> f; ) { 90 sout | f.i | ' '; 91 } 92 sout | "empty" | nl; 93 94 Fred & middle; 95 for ( i; 10 ) { 96 addHead( fred, *new( i ) ); // reverse oder 97 if ( i == 5 ) { 98 &middle = &head( fred ); 81 99 } 82 addHead( fred0, *new( i ) ); 83 } 84 85 for ( SeqIterRev(Fred) iter = { fred0 }; iter >> f; ) { 86 sout | f.i | ' '; 87 } 88 sout | nl; 89 90 Fred * front = new( -1 ); 91 insertBef( fred0, *front, tail(fred0)); 92 insertAft( fred0, *front, *new( -2 ) ); 93 remove( fred0, *front ); 94 delete( front ); 95 96 sout | head(fred0).i | nl; 97 Fred & end = dropTail( fred ); 98 delete( &end ); 99 100 for ( over( fredIter, fred0 ); fredIter >> f; ) { 100 } 101 for ( SeqIterRev(Fred) iter = { fred }; iter >> f; ) { 102 sout | f.i | ' '; 103 } 104 sout | nl; 105 106 head = new( -1 ); 107 insertBef( fred, *head, head( fred ) ); 108 insertAft( fred, *head, tail ); 109 110 sout | head( fred ).i | succ( fred, head )->i | tail( fred ).i | nl; 111 for ( over( fredIter, fred ); fredIter >> f; ) { 112 sout | f.i | ' '; 113 } 114 sout | nl; 115 116 remove( fred, *head ); 117 remove( fred, tail ); 118 delete( head ); 119 delete( &dropTail( fred ) ); 120 121 for ( over( fredIter, fred ); fredIter >> f; ) { 101 122 sout | f.i | ' '; 102 123 } … … 105 126 Sequence(Fred) fred2; 106 127 107 split( fred2, fred 0, *middle);108 109 for ( over( fredIter, fred 0); fredIter >> f; ) {128 split( fred2, fred, middle ); 129 130 for ( over( fredIter, fred ); fredIter >> f; ) { 110 131 sout | f.i | ' '; 111 132 } … … 117 138 sout | nl; 118 139 119 transfer( fred 0, fred2);120 121 for ( over( fredIter, fred 0); fredIter >> f; ) {122 sout | f.i | ' '; 123 } 124 sout | nl; 125 126 for ( over( fredIter, fred 0); fredIter >> f; ) {140 transfer( fred, fred2 ); 141 142 for ( over( fredIter, fred ); fredIter >> f; ) { 143 sout | f.i | ' '; 144 } 145 sout | nl; 146 147 for ( over( fredIter, fred ); fredIter >> f; ) { 127 148 delete( &f ); 128 149 } … … 139 160 j = p; 140 161 } 141 142 162 Mary *& Back( Mary * n ) { 143 163 return (Mary *)Back( (Fred *)n ); 144 164 } 145 146 165 Mary *& Next( Mary * n ) { 147 166 return (Mary *)Next( (Fred *)n ); … … 149 168 150 169 Sequence(Mary) mary; 151 Sequence(Mary) baz;152 170 SeqIter(Mary) maryIter = { mary }; 153 171 Mary & m; … … 160 178 for ( i; 10 ) { 161 179 add( mary, *new( 2 * i ) ); 162 add( baz, *new( 2 * i ) ); 163 } 180 } 181 182 sout | head( mary ).i | tail( mary ).i | nl; 164 183 165 184 for ( SeqIter(Mary) iter = { mary }; iter >> m; ) { … … 180 199 addTail( mary, *new( 2 * i + 1 ) ); 181 200 } 182 for ( over( maryIter, mary ); maryIter >> m; ) { 183 sout | m.i | m.j | ' '; 184 } 185 sout | nl; 186 187 for ( i; 9 ) { 188 delete( &dropTail( mary ) ); 189 } 190 for ( over( maryIter, mary ); maryIter >> m; ) { 191 sout | m.i | m.j | ' '; 192 } 193 sout | nl; 194 195 transfer( mary, baz ); 196 197 for ( over( maryIter, baz ); maryIter >> m; ) { 198 sout | m.i | m.j | ' '; 199 } 200 sout | "empty" | nl; 201 202 for ( over( maryIter, mary ); maryIter >> m; ) { 203 sout | m.i | m.j | ' '; 204 } 205 sout | nl; 206 201 202 Mary * head = new( -1 ), tail = { -1 }; 203 addHead( mary, *head ); 204 addTail( mary, tail ); 205 sout | head( mary ).i | succ( mary, head )->i | tail( mary ).i | nl; 206 remove( mary, *head ); 207 remove( mary, tail ); 208 delete( (Mary *)head ); 209 delete( &dropTail( mary ) ); 210 211 for ( over( maryIter, mary ); maryIter >> m; ) { 212 sout | m.i | m.j | ' '; 213 } 214 sout | nl; 215 216 for ( over( maryIter, mary ); maryIter >> m; ) { 217 delete( &remove( mary, m ) ); 218 } 219 220 Mary & middle; 221 for ( i; 10 ) { 222 add( mary, *new( i ) ); 223 if ( i == 4 ) { 224 &middle = &tail( mary ); 225 } 226 } 227 for ( SeqIter(Mary) iter = { mary }; iter >> m; ) { 228 sout | m.i | m.j | ' '; 229 } 230 sout | nl; 231 232 Sequence(Mary) mary2; 233 234 split( mary2, mary, middle ); 235 236 for ( over( maryIter, mary ); maryIter >> m; ) { 237 sout | m.i | m.j | ' '; 238 } 239 sout | nl; 240 for ( over( maryIter, mary2 ); maryIter >> m; ) { 241 sout | m.i | m.j | ' '; 242 } 243 sout | nl; 244 245 transfer( mary, mary2 ); 246 247 for ( over( maryIter, mary ); maryIter >> m; ) { 248 sout | m.i | m.j | ' '; 249 } 250 sout | nl; 207 251 for ( over( maryIter, mary ); maryIter >> m; ) { 208 252 delete( &m );
Note: See TracChangeset
for help on using the changeset viewer.