Changeset 17c6edeb for tests/loopctrl.cfa
- Timestamp:
- Aug 16, 2022, 2:52:24 PM (3 years ago)
- Branches:
- ADT, ast-experimental, master, pthread-emulation
- Children:
- 71cf630
- Parents:
- 32d1383 (diff), e116db3 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tests/loopctrl.cfa
r32d1383 r17c6edeb 10 10 // Created On : Wed Aug 8 18:32:59 2018 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Dec 12 17:55:26 201913 // Update Count : 1 0812 // Last Modified On : Thu Aug 11 23:04:35 2022 13 // Update Count : 160 14 14 // 15 15 16 16 #include <fstream.hfa> 17 18 void fred() { 19 // Test all possible loop syntax. 20 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; 52 53 // CANNOT DIRECTLY INITIALIZE INDEX VARIABLE, ONLY SINGLE LOOP INDEX VARIABLE IN DECLARATION 54 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; 82 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; } 89 } 17 90 18 91 struct S { int i, j; }; … … 35 108 36 109 int main() { 110 // Test some loop options. 111 37 112 sout | nlOff; // turn off auto newline 38 113 while () { sout | "empty"; break; } sout | nl; … … 43 118 for ( 1 ) { sout | "A"; } sout | nl; 44 119 for ( 10 ) { sout | "A"; } sout | nl; 45 for ( = 10 ) { sout | "A"; } sout | nl;120 for ( ~= 10 ) { sout | "A"; } sout | nl; 46 121 for ( 1 ~= 10 ~ 2 ) { sout | "B"; } sout | nl; 47 for ( 1 0 -~= 1~ 2 ) { sout | "C"; } sout | nl;122 for ( 1 -~= 10 ~ 2 ) { sout | "C"; } sout | nl; 48 123 for ( 0.5 ~ 5.5 ) { sout | "D"; } sout | nl; 49 for ( 5.5 -~ 0.5 ) { sout | "E"; } sout | nl | nl;124 for ( 0.5 -~ 5.5 ) { sout | "E"; } sout | nl | nl; 50 125 51 126 for ( i; 10 ) { sout | i; } sout | nl; 52 for ( i; = 10 ) { sout | i; } sout | nl;127 for ( i; ~= 10 ) { sout | i; } sout | nl; 53 128 for ( i; 1 ~= 10 ~ 2 ) { sout | i; } sout | nl; 54 for ( i; 1 0 -~= 1~ 2 ) { sout | i; } sout | nl;129 for ( i; 1 -~= 10 ~ 2 ) { sout | i; } sout | nl; 55 130 for ( i; 0.5 ~ 5.5 ) { sout | i; } sout | nl; 56 for ( i; 5.5 -~ 0.5 ) { sout | i; } sout | nl;131 for ( i; 0.5 -~ 5.5 ) { sout | i; } sout | nl; 57 132 for ( ui; 2u ~= 10u ~ 2u ) { sout | ui; } sout | nl; 58 for ( ui; 10u -~= 2u ~ 2u ) { sout | ui; } sout | nl | nl;133 for ( ui; 2u -~= 10u ~ 2u ) { sout | ui; } sout | nl | nl; 59 134 60 135 // @ means do nothing … … 63 138 sout | i; 64 139 } sout | nl; 65 for ( i; 10 -~ @) {140 for ( i; @ -~ 10 ) { 66 141 if ( i < 0 ) break; 67 142 sout | i; … … 76 151 i += 1.7; 77 152 } sout | nl; 78 for ( i; 10 -~ @~ 2 ) {153 for ( i; @ -~ 10 ~ 2 ) { 79 154 if ( i < 0 ) break; 80 155 sout | i; … … 89 164 for ( N ) { sout | "N"; } sout | nl; 90 165 for ( i; N ) { sout | i; } sout | nl; 91 for ( i; = N ) { sout | i; } sout | nl;92 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; 93 168 94 169 const int start = 3, comp = 10, inc = 2; 95 170 for ( i; start ~ comp ~ inc + 1 ) { sout | i; } sout | nl | nl; 171 172 for ( i; 10 : j; -5 ~ @ ) { sout | i | j; } sout | nl; 173 for ( i; 10 : j; @ -~ -5 ) { sout | i | j; } sout | nl; 174 for ( i; 10 : j; -5 ~ @ ~ 2 ) { sout | i | j; } sout | nl; 175 for ( i; 10 : j; @ -~ -5 ~ 2 ) { sout | i | j; } sout | nl | nl; 176 177 for ( j; -5 ~ @ : i; 10 ) { sout | i | j; } sout | nl; 178 for ( j; @ -~ -5 : i; 10 ) { sout | i | j; } sout | nl; 179 for ( j; -5 ~ @ ~ 2 : i; 10 ) { sout | i | j; } sout | nl; 180 for ( j; @ -~ -5 ~ 2 : i; 10 ) { sout | i | j; } sout | nl | nl; 181 182 for ( j; @ -~ -5 ~ 2 : i; 10 : k; 1.5 ~ @ ) { sout | i | j | k; } sout | nl; 183 for ( j; @ -~ -5 ~ 2 : k; 1.5 ~ @ : i; 10 ) { sout | i | j | k; } sout | nl; 184 for ( k; 1.5 ~ @ : j; @ -~ -5 ~ 2 : i; 10 ) { sout | i | j | k; } sout | nl; 96 185 97 186 for ( S s = (S){0}; s < (S){10,10}; s += (S){1} ) { sout | s; } sout | nl; … … 103 192 for ( s; (S){0} ~= (S){10,10} ~ (S){1} ) { sout | s; } sout | nl; 104 193 sout | nl; 105 for ( s; (S){10,10} -~ (S){0} ) { sout | s; } sout | nl; 106 for ( s; (S){10,10} -~ (S){0} ~ (S){1} ) { sout | s; } sout | nl; 107 for ( s; (S){10,10} -~= (S){0} ) { sout | s; } sout | nl; 108 for ( s; (S){10,10} -~= (S){0} ~ (S){1} ) { sout | s; } sout | nl | nl; 109 110 for ( i; 10 : j; -5 ~ @ ) { sout | i | j; } sout | nl; 111 for ( i; 10 : j; -5 -~ @ ) { sout | i | j; } sout | nl; 112 for ( i; 10 : j; -5 ~ @ ~ 2 ) { sout | i | j; } sout | nl; 113 for ( i; 10 : j; -5 -~ @ ~ 2 ) { sout | i | j; } sout | nl | nl; 114 115 for ( j; -5 ~ @ : i; 10 ) { sout | i | j; } sout | nl; 116 for ( j; -5 -~ @ : i; 10 ) { sout | i | j; } sout | nl; 117 for ( j; -5 ~ @ ~ 2 : i; 10 ) { sout | i | j; } sout | nl; 118 for ( j; -5 -~ @ ~ 2 : i; 10 ) { sout | i | j; } sout | nl | nl; 119 120 for ( j; -5 -~ @ ~ 2 : i; 10 : k; 1.5 ~ @ ) { sout | i | j | k; } sout | nl; 121 for ( j; -5 -~ @ ~ 2 : k; 1.5 ~ @ : i; 10 ) { sout | i | j | k; } sout | nl; 122 for ( k; 1.5 ~ @ : j; -5 -~ @ ~ 2 : i; 10 ) { sout | i | j | k; } sout | nl; 194 for ( s; (S){0} -~ (S){10,10} ) { sout | s; } sout | nl; 195 for ( s; (S){0} -~ (S){10,10} ~ (S){1} ) { sout | s; } sout | nl; 196 for ( s; (S){0} -~= (S){10,10} ) { sout | s; } sout | nl; 197 for ( s; (S){0} -~= (S){10,10} ~ (S){1} ) { sout | s; } sout | nl | nl; 198 199 fred(); 123 200 } 124 201
Note:
See TracChangeset
for help on using the changeset viewer.