Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/bits/sequence_example.cfa

    r5e82d56 rb37515b  
    1717        Sequence(Fred) fred;
    1818        SeqIter(Fred) fredIter = { fred };
    19         Fred * f;
    20         int i;
     19        Fred & f;
    2120
    2221        sout | nlOff;                                                                           // turn off auto newline
    2322
    2423        for ( ; fredIter >> f; ) {                                                      // empty list
    25                 sout | f->i | ' ';
     24                sout | f.i | ' ';
    2625        }
    2726        sout | "empty" | nl;
    2827       
    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 ) );
    3139        }
    3240
    3341        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 | ' ';
    3551        }
    3652        sout | nl;
    3753
    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 ) );
    4956        }
    5057        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 | ' ';
    6059        }
    6160        sout | nl;
    6261
    6362        for ( over( fredIter, fred ); fredIter >> f; ) {
    64                 delete( f );
     63                delete( &f );
    6564        }
    6665
     
    8079        Sequence(Mary) baz;
    8180        SeqIter(Mary) maryIter = { mary };
    82         Mary * m;
     81        Mary & m;
    8382
    8483        for ( ; maryIter >> m; ) {                                                      // empty list
    85                 sout | m->i | m->j | ' ';
     84                sout | m.i | m.j | ' ';
    8685        }
    8786        sout | "empty" | nl;
    8887       
    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 ) );
    92100        }
    93101
    94102        for ( over( maryIter, mary ); maryIter >> m; ) {
    95                 sout | m->i | m->j | ' ';
     103                sout | m.i | m.j | ' ';
    96104        }
    97105        sout | nl;
    98106       
    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 ) );
    110109        }
    111110        for ( over( maryIter, mary ); maryIter >> m; ) {
    112                 sout | m->i | m->j | ' ';
     111                sout | m.i | m.j | ' ';
    113112        }
    114113        sout | nl;
    115114
    116         for ( i = 0; i < 9; i += 1 ) {
    117                 delete( dropTail( mary ) );
     115        for ( i; 9 ) {
     116                delete( &dropTail( mary ) );
    118117        }
    119118        for ( over( maryIter, mary ); maryIter >> m; ) {
    120                 sout | m->i | m->j | ' ';
     119                sout | m.i | m.j | ' ';
    121120        }
    122121        sout | nl;
     
    125124
    126125        for ( over( maryIter, baz ); maryIter >> m; ) {
    127                 sout | m->i | m->j | ' ';
     126                sout | m.i | m.j | ' ';
    128127        }
    129128        sout | "empty" | nl;
    130129
    131130        for ( over( maryIter, mary ); maryIter >> m; ) {
    132                 sout | m->i | m->j | ' ';
     131                sout | m.i | m.j | ' ';
    133132        }
    134133        sout | nl;
    135134
    136135        for ( over( maryIter, mary ); maryIter >> m; ) {
    137                 delete( m );
     136                delete( &m );
    138137        }
    139138}
    140139
    141140// Local Variables: //
    142 // compile-command: "cfa sequence_example.cc" //
     141// compile-command: "cfa sequence_example.cfa" //
    143142// End: //
Note: See TracChangeset for help on using the changeset viewer.