Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • tests/ctrl-flow/loopctrl.cfa

    r8789ae4 r72abc90a  
    1010// Created On       : Wed Aug  8 18:32:59 2018
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Aug  2 08:42:55 2024
    13 // Update Count     : 185
     12// Last Modified On : Thu Jun 27 11:00:09 2024
     13// Update Count     : 161
    1414//
    1515
    1616#include <fstream.hfa>
    17 #include <enum.hfa>
    1817
    1918void fred() {
     
    8281        for ( int j; s ~ @ ~ @ ) { if ( j == 10 ) break; sout | j; j += 1; } sout | nl;
    8382
    84         enum(int) E { A, B, C, D };
    85 //      for ( E e; A ~= C ) { sout | e; } sout | nl;
    86 //      for ( e; A ~= D ) { sout | e; } sout | nl;
    87 //      for ( e; A -~= D ~ 2 ) { sout | e; } sout | nl;
    88         for ( e; E ) { sout | e; } sout | nl;
    89         for ( e; -~= E ) { sout | e; } sout | nl;
     83        // enum E { A, B, C, D };
     84        // for ( e; A ~= C ) { sout | j; }
     85        // for ( e; A ~= D ) { sout | j; }
     86        // for ( e; A -~= D ~ 2 ) { sout | j; }
     87        // for ( e; E ) { sout | j; }
     88        // for ( e; -~ E ) { sout | j; }
    9089}
    9190
     
    9695void ?{}( S & s, zero_t ) { s.[i, j] = 0; }
    9796void ?{}( S & s, one_t ) { s.[i, j] = 1; }
    98 int ?<?( S s1, S s2 ) { return s1.i < s2.i || s1.j < s2.j; }
    99 int ?<=?( S s1, S s2 ) { return s1.i <= s2.i || s1.j <= s2.j; }
    100 int ?>?( S s1, S s2 ) { return s1.i > s2.i || s1.j > s2.j; }
    101 int ?>=?( S s1, S s2 ) { return s1.i >= s2.i || s1.j >= s2.j; }
    102 S ?+=?( S & s1, S s2 ) { s1.i += s2.i; s1.j += s2.j; return s1; }
    103 S ?+=?( S & s, one_t ) { s.i += 1; s.j += 1; return s; }
    104 S ?-=?( S & s1, S s2 ) { s1.i -= s2.i; s1.j -= s2.j; return s1; }
    105 S ?-=?( S & s, one_t ) { s.i -= 1; s.j -= 1; return s; }
    106 ofstream & ?|?( ofstream & os, S s ) { return os | '(' | s.i | s.j | ')'; }
    107 void & ?|?( ofstream & os, S s ) { (ofstream &)(os | s); ends( os ); }
     97int ?<?( S t1, S t2 ) { return t1.i < t2.i && t1.j < t2.j; }
     98int ?<=?( S t1, S t2 ) { return t1.i <= t2.i && t1.j <= t2.j; }
     99int ?>?( S t1, S t2 ) { return t1.i > t2.i && t1.j > t2.j; }
     100int ?>=?( S t1, S t2 ) { return t1.i >= t2.i && t1.j >= t2.j; }
     101S ?+=?( S & t1, S t2 ) { t1.i += t2.i; t1.j += t2.j; return t1; }
     102S ?+=?( S & t, one_t ) { t.i += 1; t.j += 1; return t; }
     103S ?-=?( S & t1, S t2 ) { t1.i -= t2.i; t1.j -= t2.j; return t1; }
     104S ?-=?( S & t, one_t ) { t.i -= 1; t.j -= 1; return t; }
     105ofstream & ?|?( ofstream & os, S v ) { return os | '(' | v.i | v.j | ')'; }
     106void & ?|?( ofstream & os, S v ) { (ofstream &)(os | v); ends( os ); }
    108107
    109108int main() {
     
    184183        for ( k; 1.5 ~ @ : j; @ -~ -5 ~ 2 : i; 10 ) { sout | i | j | k; } sout | nl;
    185184
    186         for ( S s = (S){0}; s < (S){10,10}; s += (S){1} ) { sout | s; } sout | nl; // 0 does not work
     185        for ( S s = (S){0}; s < (S){10,10}; s += (S){1} ) { sout | s; } sout | nl;
    187186        for ( s; (S){10,10} ) { sout | s; } sout | nl;
    188187        sout | nl;
     
    197196        for ( s; (S){0} -~= (S){10,10} ~ (S){1} ) { sout | s; } sout | nl | nl;
    198197
    199         int i = 10;
    200         double d = 10.;
    201         char c = 'e';
    202         S s = { 7 };
    203 
    204         for ( anon; 3 ~ i ) sout | anon;                                        sout | nl;
    205         for ( anon; 3 ~ i ) sout | anon;                                        sout | nl;
    206         for ( anon; 3 -~ i ) sout | anon;                                       sout | nl;
    207         for ( anon; 3.5 ~ d ) sout | anon;                                      sout | nl;
    208         for ( anon; 'a' ~= c ) sout | anon;                                     sout | nl;
    209         for ( anon; 'a' -~= c ) sout | anon;                            sout | nl;
    210         for ( anon; (S){0} ~ s ) sout | anon;                           sout | nl; // 0 does not work
    211         for ( anon; (S){1} ~ s ) sout | anon;                           sout | nl; // 1 does not work
    212         for ( anon; (S){3} ~ s ) sout | anon;                           sout | nl;
    213         for ( anon; (S){3} -~ s ) sout | anon;                          sout | nl | nl;
    214 
    215198        fred();
    216199}
Note: See TracChangeset for help on using the changeset viewer.