Changeset 3d0560d for libcfa/src/bits/stack_example.cfa
- Timestamp:
- Dec 2, 2020, 12:31:42 PM (4 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/stack_example.cfa
r4f0c520 r3d0560d 17 17 Stack(Fred) fred; 18 18 StackIter(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 push( fred, new( 2 * i ) ); 31 30 } 32 31 33 for ( over( fredIter, fred ); fredIter >> f; ) {34 sout | f ->i | ' ';32 for ( StackIter(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( pop( 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 push( 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 54 for ( over( fredIter, fred ); fredIter >> f; ) { 56 delete( f );55 delete( &f ); 57 56 } 58 57 … … 71 70 Stack(Mary) mary; 72 71 StackIter(Mary) maryIter = { mary }; 73 Mary *m;72 Mary & m; 74 73 75 74 for ( ; maryIter >> m; ) { // empty list 76 sout | m ->i | m->j | ' ';75 sout | m.i | m.j | ' '; 77 76 } 78 77 sout | "empty" | nl; 79 78 80 for ( i = 0; i < 10; i += 1) {79 for ( i; 10 ) { 81 80 push( mary, new( 2 * i ) ); 82 81 } 83 82 84 for ( over( maryIter, mary ); maryIter >> m; ) {85 sout | m ->i | m->j | ' ';83 for ( StackIter(Mary) iter = { mary }; iter >> m; ) { 84 sout | m.i | m.j | ' '; 86 85 } 87 86 sout | nl; 88 87 89 for ( i = 0; i < 9; i += 1) {88 for ( i; 9 ) { 90 89 delete( pop( mary ) ); 91 90 } 92 91 93 92 for ( over( maryIter, mary ); maryIter >> m; ) { 94 sout | m ->i | m->j | ' ';93 sout | m.i | m.j | ' '; 95 94 } 96 95 sout | nl; 97 96 98 for ( i = 0; i < 10; i += 1) {97 for ( i; 10 ) { 99 98 push( mary, new( 2 * i + 1 ) ); 100 99 } 101 100 for ( over( maryIter, mary ); maryIter >> m; ) { 102 sout | m ->i | m->j | ' ';101 sout | m.i | m.j | ' '; 103 102 } 104 103 sout | nl; 105 104 106 105 for ( over( maryIter, mary ); maryIter >> m; ) { 107 delete( m );106 delete( &m ); 108 107 } 109 108 }
Note: See TracChangeset
for help on using the changeset viewer.