Changeset 3d0560d for libcfa/src/bits/sequence_example.cfa
- Timestamp:
- Dec 2, 2020, 12:31:42 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:
- 833ba13
- Parents:
- 4f0c520
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/bits/sequence_example.cfa
r4f0c520 r3d0560d 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) {28 for ( i; 10 ) { 30 29 add( fred, new( 2 * i ) ); 31 30 } 32 31 33 for ( over( fredIter, fred ); fredIter >> f; ) {34 sout | f ->i | ' ';32 for ( SeqIter(Fred) iter = { fred }; iter >> f; ) { 33 sout | f.i | ' '; 35 34 } 36 35 sout | nl; 37 36 38 for ( i = 0; i < 9; i += 1) {37 for ( i; 9 ) { 39 38 delete( dropHead( fred ) ); 40 39 } 41 40 42 41 for ( over( fredIter, fred ); fredIter >> f; ) { 43 sout | f ->i | ' ';42 sout | f.i | ' '; 44 43 } 45 44 sout | nl; 46 45 47 for ( i = 0; i < 10; i += 1) {46 for ( i; 10 ) { 48 47 addTail( fred, new( 2 * i + 1 ) ); 49 48 } 50 49 for ( over( fredIter, fred ); fredIter >> f; ) { 51 sout | f ->i | ' ';50 sout | f.i | ' '; 52 51 } 53 52 sout | nl; 54 53 55 for ( i = 0; i < 9; i += 1) {56 delete( dropTail( fred ) );54 for ( i; 9 ) { 55 delete( &dropTail( fred ) ); 57 56 } 58 57 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) {88 for ( i; 10 ) { 90 89 add( mary, new( 2 * i ) ); 91 90 add( baz, new( 2 * i ) ); 92 91 } 93 92 94 for ( over( maryIter, mary ); maryIter >> m; ) {95 sout | m ->i | m->j | ' ';93 for ( SeqIter(Mary) iter = { mary }; iter >> m; ) { 94 sout | m.i | m.j | ' '; 96 95 } 97 96 sout | nl; 98 97 99 for ( i = 0; i < 9; i += 1) {98 for ( i; 9 ) { 100 99 delete( dropHead( mary ) ); 101 100 } 102 101 103 102 for ( over( maryIter, mary ); maryIter >> m; ) { 104 sout | m ->i | m->j | ' ';103 sout | m.i | m.j | ' '; 105 104 } 106 105 sout | nl; 107 106 108 for ( i = 0; i < 10; i += 1) {107 for ( i; 10 ) { 109 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.