- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/bits/sequence_example.cfa
r5e82d56 rb37515b 17 17 Sequence(Fred) fred; 18 18 SeqIter(Fred) fredIter = { fred }; 19 Fred * f; 20 int i; 19 Fred & f; 21 20 22 21 sout | nlOff; // turn off auto newline 23 22 24 23 for ( ; fredIter >> f; ) { // empty list 25 sout | f ->i | ' ';24 sout | f.i | ' '; 26 25 } 27 26 sout | "empty" | nl; 28 27 29 for ( i = 0; i < 10; i += 1 ) { 30 add( fred, new( 2 * i ) ); 28 for ( i; 10 ) { 29 add( fred, *new( 2 * i ) ); 30 } 31 32 for ( SeqIter(Fred) iter = { fred }; iter >> f; ) { 33 sout | f.i | ' '; 34 } 35 sout | nl; 36 37 for ( i; 9 ) { 38 delete( &dropHead( fred ) ); 31 39 } 32 40 33 41 for ( over( fredIter, fred ); fredIter >> f; ) { 34 sout | f->i | ' '; 42 sout | f.i | ' '; 43 } 44 sout | nl; 45 46 for ( i; 10 ) { 47 addTail( fred, *new( 2 * i + 1 ) ); 48 } 49 for ( over( fredIter, fred ); fredIter >> f; ) { 50 sout | f.i | ' '; 35 51 } 36 52 sout | nl; 37 53 38 for ( i = 0; i < 9; i += 1 ) { 39 delete( dropHead( fred ) ); 40 } 41 42 for ( over( fredIter, fred ); fredIter >> f; ) { 43 sout | f->i | ' '; 44 } 45 sout | nl; 46 47 for ( i = 0; i < 10; i += 1 ) { 48 addTail( fred, new( 2 * i + 1 ) ); 54 for ( i; 9 ) { 55 delete( &dropTail( fred ) ); 49 56 } 50 57 for ( over( fredIter, fred ); fredIter >> f; ) { 51 sout | f->i | ' '; 52 } 53 sout | nl; 54 55 for ( i = 0; i < 9; i += 1 ) { 56 delete( dropTail( fred ) ); 57 } 58 for ( over( fredIter, fred ); fredIter >> f; ) { 59 sout | f->i | ' '; 58 sout | f.i | ' '; 60 59 } 61 60 sout | nl; 62 61 63 62 for ( over( fredIter, fred ); fredIter >> f; ) { 64 delete( f );63 delete( &f ); 65 64 } 66 65 … … 80 79 Sequence(Mary) baz; 81 80 SeqIter(Mary) maryIter = { mary }; 82 Mary *m;81 Mary & m; 83 82 84 83 for ( ; maryIter >> m; ) { // empty list 85 sout | m ->i | m->j | ' ';84 sout | m.i | m.j | ' '; 86 85 } 87 86 sout | "empty" | nl; 88 87 89 for ( i = 0; i < 10; i += 1 ) { 90 add( mary, new( 2 * i ) ); 91 add( baz, new( 2 * i ) ); 88 for ( i; 10 ) { 89 add( mary, *new( 2 * i ) ); 90 add( baz, *new( 2 * i ) ); 91 } 92 93 for ( SeqIter(Mary) iter = { mary }; iter >> m; ) { 94 sout | m.i | m.j | ' '; 95 } 96 sout | nl; 97 98 for ( i; 9 ) { 99 delete( &dropHead( mary ) ); 92 100 } 93 101 94 102 for ( over( maryIter, mary ); maryIter >> m; ) { 95 sout | m ->i | m->j | ' ';103 sout | m.i | m.j | ' '; 96 104 } 97 105 sout | nl; 98 106 99 for ( i = 0; i < 9; i += 1 ) { 100 delete( dropHead( mary ) ); 101 } 102 103 for ( over( maryIter, mary ); maryIter >> m; ) { 104 sout | m->i | m->j | ' '; 105 } 106 sout | nl; 107 108 for ( i = 0; i < 10; i += 1 ) { 109 addTail( mary, new( 2 * i + 1 ) ); 107 for ( i; 10 ) { 108 addTail( mary, *new( 2 * i + 1 ) ); 110 109 } 111 110 for ( over( maryIter, mary ); maryIter >> m; ) { 112 sout | m ->i | m->j | ' ';111 sout | m.i | m.j | ' '; 113 112 } 114 113 sout | nl; 115 114 116 for ( i = 0; i < 9; i += 1) {117 delete( dropTail( mary ) );115 for ( i; 9 ) { 116 delete( &dropTail( mary ) ); 118 117 } 119 118 for ( over( maryIter, mary ); maryIter >> m; ) { 120 sout | m ->i | m->j | ' ';119 sout | m.i | m.j | ' '; 121 120 } 122 121 sout | nl; … … 125 124 126 125 for ( over( maryIter, baz ); maryIter >> m; ) { 127 sout | m ->i | m->j | ' ';126 sout | m.i | m.j | ' '; 128 127 } 129 128 sout | "empty" | nl; 130 129 131 130 for ( over( maryIter, mary ); maryIter >> m; ) { 132 sout | m ->i | m->j | ' ';131 sout | m.i | m.j | ' '; 133 132 } 134 133 sout | nl; 135 134 136 135 for ( over( maryIter, mary ); maryIter >> m; ) { 137 delete( m );136 delete( &m ); 138 137 } 139 138 } 140 139 141 140 // Local Variables: // 142 // compile-command: "cfa sequence_example.c c" //141 // compile-command: "cfa sequence_example.cfa" // 143 142 // End: //
Note:
See TracChangeset
for help on using the changeset viewer.