Changeset c48b61c


Ignore:
Timestamp:
Aug 9, 2022, 5:40:36 PM (6 months ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
master, pthread-emulation
Children:
571f220
Parents:
52be594
Message:

update for-control test-programs and expected output

Location:
tests
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • tests/.expect/loop_else.txt

    r52be594 rc48b61c  
    33330 1 2 3 4 5 6 7 8 9 else
    34340 1 2 3 4 5 6 7 8 9 10 else
    35 10 9 8 7 6 5 4 3 2 1 else
     3510 9 8 7 6 5 4 3 2 1 0 else
    3636
    37373 6 9 else
  • tests/.expect/loopctrl.txt

    r52be594 rc48b61c  
    31310 1 2 3 4 5 6 7 8 9
    32320 1 2 3 4 5 6 7 8 9 10
    33 10 9 8 7 6 5 4 3 2 1
     3310 9 8 7 6 5 4 3 2 1 0
    3434
    35353 6 9
     
    61610 -5 1.5 1 -7 2.5 2 -9 3.5 3 -11 4.5 4 -13 5.5 5 -15 6.5 6 -17 7.5 7 -19 8.5 8 -21 9.5 9 -23 10.5
    62620 -5 1.5 1 -7 2.5 2 -9 3.5 3 -11 4.5 4 -13 5.5 5 -15 6.5 6 -17 7.5 7 -19 8.5 8 -21 9.5 9 -23 10.5
     63A A A A A A A A A A
     64B B B B B B B B B B B
     65C C C C C C C C C C
     66D D D D D D D D D D D
     67A A A A A A A A A A
     68B B B B B B B B B B B
     69C C C C C C C C C C
     70D D D D D D D D D D D
     71A A A A A
     72B B B B B B
     73C C C C C
     74D D D D D D
     750 1 2 3 4 5 6 7 8 9
     760 1 2 3 4 5 6 7 8 9 10
     7710 9 8 7 6 5 4 3 2 1
     7810 9 8 7 6 5 4 3 2 1 0
     790 1 2 3 4 5 6 7 8 9
     800 1 2 3 4 5 6 7 8 9 10
     8110 9 8 7 6 5 4 3 2 1
     8210 9 8 7 6 5 4 3 2 1 0
     830 2 4 6 8
     840 2 4 6 8 10
     8510 8 6 4 2
     8610 8 6 4 2 0
     870 1 2 3 4 5 6 7 8 9
     880 1 2 3 4 5 6 7 8 9
     890 1 2 3 4 5 6 7 8 9 10
     9010 9 8 7 6 5 4 3 2 1
     9110 9 8 7 6 5 4 3 2 1 0
     920 1 2 3 4 5 6 7 8 9
     930 1 2 3 4 5 6 7 8 9 10
     9410 9 8 7 6 5 4 3 2 1
     9510 9 8 7 6 5 4 3 2 1 0
     960 2 4 6 8
     970 2 4 6 8 10
     9810 8 6 4 2
     9910 8 6 4 2 0
     1000 1 2 3 4 5 6 7 8 9
     1010 -1 -2 -3 -4 -5 -6 -7 -8 -9
     1020 2 4 6 8
     1030 -2 -4 -6 -8
     1040 1 2 3 4 5 6 7 8 9
     1050 2 4 6 8
     1060 -2 -4 -6 -8
     1070 2 4 6 8
     1080 -2 -4 -6 -8
     1090 1 2 3 4 5 6 7 8 9
  • tests/loop_else.cfa

    r52be594 rc48b61c  
    2020
    2121int main() {
    22     sout | nlOff;                                                                               // turn off auto newline
    23         while () { sout | "empty"; break; } else { sout | "else"; }                                         sout | nl;
    24         do { sout | "empty"; break; } while () else { sout | "else"; }                              sout | nl;
    25         for () { sout | "empty"; break; } else { sout | "else"; }                                           sout | nl | nl;
     22        // Test some loop options.
    2623
    27     do { sout | "false"; } while (false) else { sout | "else"; }                                    sout | nl | nl;
     24        sout | nlOff;                                                                           // turn off auto newline
     25        while () { sout | "empty"; break; } else { sout | "else"; }                                             sout | nl;
     26        do { sout | "empty"; break; } while () else { sout | "else"; }                                  sout | nl;
     27        for () { sout | "empty"; break; } else { sout | "else"; }                                               sout | nl | nl;
    2828
    29         for ( 0 ) { sout | "A"; } else { sout | "else"; }                                                   sout | "zero" | nl;
     29        do { sout | "false"; } while (false) else { sout | "else"; }                                    sout | nl | nl;
     30
     31        for ( 0 ) { sout | "A"; } else { sout | "else"; }                                                               sout | "zero" | nl;
    3032        for ( 1 ) { sout | "A"; } else { sout | "else"; }                                                               sout | nl;
    31         for ( 10 ) { sout | "A"; } else { sout | "else"; }                                                          sout | nl;
     33        for ( 10 ) { sout | "A"; } else { sout | "else"; }                                                              sout | nl;
    3234        for ( ~= 10 ) { sout | "A"; } else { sout | "else"; }                                                   sout | nl;
    3335        for ( 1 ~= 10 ~ 2 ) { sout | "B"; } else { sout | "else"; }                                             sout | nl;
    34         for ( 10 -~= 1 ~ 2 ) { sout | "C"; } else { sout | "else"; }                                    sout | nl;
     36        for ( 1 -~= 10 ~ 2 ) { sout | "C"; } else { sout | "else"; }                                    sout | nl;
    3537        for ( 0.5 ~ 5.5 ) { sout | "D"; } else { sout | "else"; }                                               sout | nl;
    36         for ( 5.5 -~ 0.5 ) { sout | "E"; } else { sout | "else"; }                                              sout | nl | nl;
     38        for ( 0.5 -~ 5.5 ) { sout | "E"; } else { sout | "else"; }                                              sout | nl | nl;
    3739
    3840        for ( i; 10 ) { sout | i; } else { sout | "else"; }                                                             sout | nl;
    3941        for ( i; ~= 10 ) { sout | i; } else { sout | "else"; }                                                  sout | nl;
    4042        for ( i; 1 ~= 10 ~ 2 ) { sout | i; } else { sout | "else"; }                                    sout | nl;
    41         for ( i; 10 -~= 1 ~ 2 ) { sout | i; } else { sout | "else"; }                                   sout | nl;
     43        for ( i; 1 -~= 10 ~ 2 ) { sout | i; } else { sout | "else"; }                                   sout | nl;
    4244        for ( i; 0.5 ~ 5.5 ) { sout | i; } else { sout | "else"; }                                              sout | nl;
    43         for ( i; 5.5 -~ 0.5 ) { sout | i; } else { sout | "else"; }                                             sout | nl;
     45        for ( i; 0.5 -~ 5.5 ) { sout | i; } else { sout | "else"; }                                             sout | nl;
    4446        for ( ui; 2u ~= 10u ~ 2u ) { sout | ui; } else { sout | "else"; }                               sout | nl;
    45         for ( ui; 10u -~= 2u ~ 2u ) { sout | ui; } else { sout | "else"; }                              sout | nl | nl;
     47        for ( ui; 2u -~= 10u ~ 2u ) { sout | ui; } else { sout | "else"; }                              sout | nl | nl;
    4648
    4749        // @ means do nothing
     
    7779        for ( i; N ) { sout | i; } else { sout | "else"; }                                                      sout | nl;
    7880        for ( i; ~= N ) { sout | i; } else { sout | "else"; }                                           sout | nl;
    79         for ( i; N -~ 0 ) { sout | i; } else { sout | "else"; }                                         sout | nl | nl;
     81        for ( i; -~= N ) { sout | i; } else { sout | "else"; }                                          sout | nl | nl;
    8082
    8183        const int start = 3, comp = 10, inc = 2;
     
    9092        for ( s; (S){0} ~= (S){10,10} ~ (S){1} ) { sout | s; } else { sout | "else"; } sout | nl;
    9193        sout | nl;
    92         for ( s; (S){10,10} -~ (S){0} ) { sout | s; } else { sout | "else"; }            sout | nl;
    93         for ( s; (S){10,10} -~ (S){0} ~ (S){1} ) { sout | s; } else { sout | "else"; } sout | nl;
    94         for ( s; (S){10,10} -~= (S){0} ) { sout | s; } else { sout | "else"; }           sout | nl;
    95         for ( s; (S){10,10} -~= (S){0} ~ (S){1} ) { sout | s; } else { sout | "else"; } sout | nl | nl;
     94        for ( s; (S){0} -~  (S){10,10} ) { sout | s; } else { sout | "else"; }           sout | nl;
     95        for ( s; (S){0} -~  (S){10,10} ~ (S){1} ) { sout | s; } else { sout | "else"; } sout | nl;
     96        for ( s; (S){0} -~= (S){10,10} ) { sout | s; } else { sout | "else"; }           sout | nl;
     97        for ( s; (S){0} -~= (S){10,10} ~ (S){1} ) { sout | s; } else { sout | "else"; } sout | nl | nl;
    9698
    9799        for ( i; 10 : j; -5 ~ @ ) { sout | i | j; } else { sout | "else"; } sout | nl;
  • tests/loopctrl.cfa

    r52be594 rc48b61c  
    1010// Created On       : Wed Aug  8 18:32:59 2018
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Aug  8 17:36:57 2022
    13 // Update Count     : 116
     12// Last Modified On : Tue Aug  9 17:29:08 2022
     13// Update Count     : 144
    1414//
    1515
     
    1919        // Test all possible loop syntax.
    2020
    21         int s, c, i;
    22 
    23         for ( c ) {} // start 0
    24         for ( ~= c ) {} // start 0     
    25         for ( -~ c ) {} // start c
    26         for ( -~= c ) {} // start c
    27 
    28         for ( @ ~ c ) {} // start 0
    29         for ( @ ~= c ) {} // start 0
    30         for ( @ -~ c ) {} // start c
    31         for ( @ -~= c ) {} // start c
    32 
    33         for ( @ ~ c ~ i ) {} // start 0
    34         for ( @ ~= c ~ i ) {} // start 0
    35         for ( @ -~ c ~ i ) {} // start c
    36         for ( @ -~= c ~ i ) {} // start c
    37 
    38         for ( s ~ c ) {} // start s
    39         for ( s ~= c ) {} // start s
    40         for ( s -~ c ) {} // start c
    41         for ( s -~= c ) {} // start c
    42 
    43         for ( s ~ c ~ i ) {} // start s
    44         for ( s ~= c ~ i ) {} // start s
    45         for ( s -~ c ~ i ) {} // start c
    46         for ( s -~= c ~ i ) {} // start c
    47 
    48         for ( j; c ) {} // start 0
    49         for ( j; ~= c ) {} // start 0
    50         for ( j; -~ c ) {} // start c
    51         for ( j; -~= c ) {} // start c
    52 
    53         for ( j; @ ~ c ) {} // start 0
    54         for ( j; @ ~= c ) {} // start 0
    55         for ( j; @ -~ c ) {} // start c
    56         for ( j; @ -~= c ) {} // start c
    57 
    58         for ( j; @ ~ c ~ i ) {} // start 0
    59         for ( j; @ ~= c ~ i ) {} // start 0
    60         for ( j; @ -~ c ~ i ) {} // start c
    61         for ( j; @ -~= c ~ i ) {} // start c
    62 
    63         for ( j; s ~ c ) {} // start s
    64         for ( j; s ~= c ) {} // start s
    65         for ( j; s -~ c ) {} // start c
    66         for ( j; s -~= c ) {} // start c
    67 
    68         for ( j; s ~ c ~ i ) {} // start s
    69         for ( j; s ~= c ~ i ) {} // start s
    70         for ( j; s -~ c ~ i ) {} // start c
    71         for ( j; s -~= c ~ i ) {} // start c
     21        int s = 0, c = 10, i = 2;
     22
     23        for ( c ) { sout | "A"; }                                               sout | nl;
     24        for ( ~= c ) { sout | "B"; }                                    sout | nl;
     25        for ( -~ c ) { sout | "C"; }                                    sout | nl;
     26        for ( -~= c ) { sout | "D"; }                                   sout | nl;
     27
     28        for ( s ~ c ) { sout | "A"; }                                   sout | nl;
     29        for ( s ~= c ) { sout | "B"; }                                  sout | nl;
     30        for ( s -~ c ) { sout | "C"; }                                  sout | nl;
     31        for ( s -~= c ) { sout | "D"; }                                 sout | nl;
     32
     33        for ( s ~ c ~ i ) { sout | "A"; }                               sout | nl;
     34        for ( s ~= c ~ i ) { sout | "B"; }                              sout | nl;
     35        for ( s -~ c ~ i ) { sout | "C"; }                              sout | nl;
     36        for ( s -~= c ~ i ) { sout | "D"; }                             sout | nl;
     37
     38        for ( j; c ) { sout | j; }                                                      sout | nl;
     39        for ( j; ~= c ) { sout | j; }                                   sout | nl;
     40        for ( j; -~ c ) { sout | j; }                                   sout | nl;
     41        for ( j; -~= c ) { sout | j; }                                  sout | nl;
     42
     43        for ( j; s ~ c ) { sout | j; }                                  sout | nl;
     44        for ( j; s ~= c ) { sout | j; }                                 sout | nl;
     45        for ( j; s -~ c ) { sout | j; }                                 sout | nl;
     46        for ( j; s -~= c ) { sout | j; }                                sout | nl;
     47
     48        for ( j; s ~ c ~ i ) { sout | j; }                              sout | nl;
     49        for ( j; s ~= c ~ i ) { sout | j; }                             sout | nl;
     50        for ( j; s -~ c ~ i ) { sout | j; }                             sout | nl;
     51        for ( j; s -~= c ~ i ) { sout | j; }                    sout | nl;
    7252
    7353        // CANNOT DIRECTLY INITIALIZE INDEX VARIABLE, ONLY SINGLE LOOP INDEX VARIABLE IN DECLARATION
    7454
    75         for ( j; c ) {} // start 0
    76         for ( int j; c ) {} // start 0
    77         for ( int j; ~= c ) {} // start 0
    78         for ( int j; -~ c ) {} // start c
    79         for ( int j; -~= c ) {} // start c
    80 
    81         for ( int j; @ ~ c ) {} // start 0
    82         for ( int j; @ ~= c ) {} // start 0
    83         for ( int j; @ -~ c ) {} // start c
    84         for ( int j; @ -~= c ) {} // start c
    85 
    86         for ( int j; @ ~ c ~ i ) {} // start 0
    87         for ( int j; @ ~= c ~ i ) {} // start 0
    88         for ( int j; @ -~ c ~ i ) {} // start c
    89         for ( int j; @ -~= c ~ i ) {} // start c
    90 
    91         for ( int j; s ~ c ) {} // start s
    92         for ( int j; s ~= c ) {} // start s
    93         for ( int j; s -~ c ) {} // start c
    94         for ( int j; s -~= c ) {} // start c
    95 
    96         for ( int j; s ~ c ~ i ) {} // start s
    97         for ( int j; s ~= c ~ i ) {} // start s
    98         for ( int j; s -~ c ~ i ) {} // start c
    99         for ( int j; s -~= c ~ i ) {} // start c
    100 
    101         for ( s ~ @ ) {} // start s
    102         for ( s -~ @ ) {} // start s
    103         for ( s ~ @ ~ i ) {} // start s
    104         for ( s -~ @ ~ i ) {} // start s
    105         for ( s ~ @ ~ @ ) {} // start s
    106 
    107         for ( j; s ~ @ ) {} // start s
    108         for ( j; s -~ @ ) {} // start s
    109         for ( j; s ~ @ ~ i ) {} // start s
    110         for ( j; s -~ @ ~ i ) {} // start s
    111         for ( j; s ~ @ ~ @ ) {} // start s
    112 
    113         for ( int j; s ~ @ ) {} // start s
    114         for ( int j; s -~ @ ) {} // start s
    115         for ( int j; s ~ @ ~ i ) {} // start s
    116         for ( int j; s -~ @ ~ i ) {} // start s
    117         for ( int j; s ~ @ ~ @ ) {} // start s
     55        for ( j; c ) { sout | j; }                                              sout | nl;
     56        for ( int j; c ) { sout | j; }                                  sout | nl;
     57        for ( int j; ~= c ) { sout | j; }                               sout | nl;
     58        for ( int j; -~ c ) { sout | j; }                               sout | nl;
     59        for ( int j; -~= c ) { sout | j; }                              sout | nl;
     60
     61        for ( int j; s ~ c ) { sout | j; }                              sout | nl;
     62        for ( int j; s ~= c ) { sout | j; }                             sout | nl;
     63        for ( int j; s -~ c ) { sout | j; }                             sout | nl;
     64        for ( int j; s -~= c ) { sout | j; }                    sout | nl;
     65
     66        for ( int j; s ~ c ~ i ) { sout | j; }                  sout | nl;
     67        for ( int j; s ~= c ~ i ) { sout | j; }                 sout | nl;
     68        for ( int j; s -~ c ~ i ) { sout | j; }                 sout | nl;
     69        for ( int j; s -~= c ~ i ) { sout | j; }                sout | nl;
     70
     71        for ( j; s ~ @ ) { if ( j == 10 ) break; sout | j; }                            sout | nl;
     72        for ( j; s -~ @ ) { if ( j == -10 ) break; sout | j; }                          sout | nl;
     73        for ( j; s ~ @ ~ i ) { if ( j == 10 ) break; sout | j; }                        sout | nl;
     74        for ( j; s -~ @ ~ i ) { if ( j == -10 ) break; sout | j; }                      sout | nl;
     75        for ( j; s ~ @ ~ @ ) { if ( j == 10 ) break; sout | j; j += 1; }        sout | nl;
     76
     77        for ( int j; s ~ @ ) { if ( j == 10 ) break; sout | j; j += 1; }        sout | nl;
     78        for ( int j; s -~ @ ) { if ( j == -10 ) break; sout | j; j -= 1; }      sout | nl;
     79        for ( int j; s ~ @ ~ i ) { if ( j == 10 ) break; sout | j; }            sout | nl;
     80        for ( int j; s -~ @ ~ i ) { if ( j == -10 ) break; sout | j; }          sout | nl;
     81        for ( int j; s ~ @ ~ @ ) { if ( j == 10 ) break; sout | j; j += 1; } sout | nl;
    11882
    11983        // enum E { A, B, C, D };
    120         // for ( e; A ~= C ) {}
    121         // for ( e; A ~= D ) {}
    122         // for ( e; A -~= D ~ 2 ) {}
    123         // for ( e; E ) {}
    124         // for ( e; -~ E ) {}
     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; }
    12589}
    12690
     
    156120        for ( ~= 10 ) { sout | "A"; }                                           sout | nl;
    157121        for ( 1 ~= 10 ~ 2 ) { sout | "B"; }                                     sout | nl;
    158         for ( 10 -~= 1 ~ 2 ) { sout | "C"; }                            sout | nl;
     122        for ( 1 -~= 10 ~ 2 ) { sout | "C"; }                            sout | nl;
    159123        for ( 0.5 ~ 5.5 ) { sout | "D"; }                                       sout | nl;
    160         for ( 5.5 -~ 0.5 ) { sout | "E"; }                                      sout | nl | nl;
     124        for ( 0.5 -~ 5.5 ) { sout | "E"; }                                      sout | nl | nl;
    161125
    162126        for ( i; 10 ) { sout | i; }                                                     sout | nl;
    163127        for ( i; ~= 10 ) { sout | i; }                                          sout | nl;
    164128        for ( i; 1 ~= 10 ~ 2 ) { sout | i; }                            sout | nl;
    165         for ( i; 10 -~= 1 ~ 2 ) { sout | i; }                           sout | nl;
     129        for ( i; 1 -~= 10 ~ 2 ) { sout | i; }                           sout | nl;
    166130        for ( i; 0.5 ~ 5.5 ) { sout | i; }                                      sout | nl;
    167         for ( i; 5.5 -~ 0.5 ) { sout | i; }                                     sout | nl;
     131        for ( i; 0.5 -~ 5.5 ) { sout | i; }                                     sout | nl;
    168132        for ( ui; 2u ~= 10u ~ 2u ) { sout | ui; }                       sout | nl;
    169         for ( ui; 10u -~= 2u ~ 2u ) { sout | ui; }                      sout | nl | nl;
     133        for ( ui; 2u -~= 10u ~ 2u ) { sout | ui; }                      sout | nl | nl;
    170134
    171135        // @ means do nothing
     
    200164        for ( N ) { sout | "N"; }                                                       sout | nl;
    201165        for ( i; N ) { sout | i; }                                                      sout | nl;
    202         for ( i; ~= N ) { sout | i; }                                           sout | nl;
    203         for ( i; N -~ 0 ) { sout | i; }                                         sout | nl | nl;
     166        for ( i; ~=  N ) { sout | i; }                                          sout | nl;
     167        for ( i; -~= N ) { sout | i; }                                          sout | nl | nl;
    204168
    205169        const int start = 3, comp = 10, inc = 2;
     
    214178        for ( s; (S){0} ~= (S){10,10} ~ (S){1} ) { sout | s; } sout | nl;
    215179        sout | nl;
    216         for ( s; (S){10,10} -~ (S){0} ) { sout | s; }            sout | nl;
    217         for ( s; (S){10,10} -~ (S){0} ~ (S){1} ) { sout | s; } sout | nl;
    218         for ( s; (S){10,10} -~= (S){0} ) { sout | s; }           sout | nl;
    219         for ( s; (S){10,10} -~= (S){0} ~ (S){1} ) { sout | s; } sout | nl | nl;
     180        for ( s; (S){0} -~  (S){10,10} ) { sout | s; }           sout | nl;
     181        for ( s; (S){0} -~  (S){10,10} ~ (S){1} ) { sout | s; } sout | nl;
     182        for ( s; (S){0} -~= (S){10,10} ) { sout | s; }           sout | nl;
     183        for ( s; (S){0} -~= (S){10,10} ~ (S){1} ) { sout | s; } sout | nl | nl;
    220184
    221185        for ( i; 10 : j; -5 ~ @ ) { sout | i | j; } sout | nl;
     
    232196        for ( j; -5 -~ @ ~ 2 : k; 1.5 ~ @ : i; 10 ) { sout | i | j | k; } sout | nl;
    233197        for ( k; 1.5 ~ @ : j; -5 -~ @ ~ 2 : i; 10 ) { sout | i | j | k; } sout | nl;
     198
     199        fred();
    234200}
    235201
Note: See TracChangeset for help on using the changeset viewer.