diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2023-12-30 23:39:37 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2023-12-30 23:39:37 +0100 |
| commit | 263915832993dd12beee10e204f9ebcc6c786ed2 (patch) | |
| tree | 862e51208a99c35746e574a76564a4532b3a4a49 /CompilerDriver/cc2/regression-tests/pure2-break-continue.cpp2 | |
Meta: initial commit of WestCo optimized toolchain.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'CompilerDriver/cc2/regression-tests/pure2-break-continue.cpp2')
| -rw-r--r-- | CompilerDriver/cc2/regression-tests/pure2-break-continue.cpp2 | 226 |
1 files changed, 226 insertions, 0 deletions
diff --git a/CompilerDriver/cc2/regression-tests/pure2-break-continue.cpp2 b/CompilerDriver/cc2/regression-tests/pure2-break-continue.cpp2 new file mode 100644 index 0000000..fef40f4 --- /dev/null +++ b/CompilerDriver/cc2/regression-tests/pure2-break-continue.cpp2 @@ -0,0 +1,226 @@ + +main: () -> int = +{ + std::cout << "while_continue_inner:\n "; while_continue_inner(); + std::cout << "\nwhile_continue_outer:\n "; while_continue_outer(); + std::cout << "\nwhile_break_inner:\n "; while_break_inner(); + std::cout << "\nwhile_break_outer:\n "; while_break_outer(); + + std::cout << "\n\ndo_continue_inner:\n "; do_continue_inner(); + std::cout << "\ndo_continue_outer:\n "; do_continue_outer(); + std::cout << "\ndo_break_inner:\n "; do_break_inner(); + std::cout << "\ndo_break_outer:\n "; do_break_outer(); + + std::cout << "\n\nfor_continue_inner:\n "; for_continue_inner(); + std::cout << "\nfor_continue_outer:\n "; for_continue_outer(); + std::cout << "\nfor_break_inner:\n "; for_break_inner(); + std::cout << "\nfor_break_outer:\n "; for_break_outer(); +} + +while_continue_inner: () = +{ + i := 0; + while i<3 next i++ { + j := 0; + inner: while j<3 next j++ { + std::cout << i << j << " "; + if j == 1 { + continue inner; + } + std::cout << "inner "; + } + std::cout << "outer "; + } +} + +while_continue_outer: () = +{ + i := 0; + outer: while i<3 next i++ { + j := 0; + while j<3 next j++ { + std::cout << i << j << " "; + if j == 1 { + continue outer; + } + std::cout << "inner "; + } + std::cout << "outer "; + } +} + +while_break_inner: () = +{ + i := 0; + while i<3 next i++ { + j := 0; + inner: while j<3 next j++ { + std::cout << i << j << " "; + if j == 1 { + break inner; + } + std::cout << "inner "; + } + std::cout << "outer "; + } +} + +while_break_outer: () = +{ + i := 0; + outer: while i<3 next i++ { + j := 0; + while j<3 next j++ { + std::cout << i << j << " "; + if j == 1 { + break outer; + } + std::cout << "inner "; + } + std::cout << "outer "; + } +} + +do_continue_inner: () = +{ + i := 0; + do { + j := 0; + inner: do { + std::cout << i << j << " "; + if j == 1 { + continue inner; + } + std::cout << "inner "; + } + next j++ while j<3; + + std::cout << "outer "; + } + next i++ while i<3; +} + +do_continue_outer: () = +{ + i := 0; + outer: do { + j := 0; + do { + std::cout << i << j << " "; + if j == 1 { + continue outer; + } + std::cout << "inner "; + } + next j++ while j<3; + + std::cout << "outer "; + } + next i++ while i<3; +} + +do_break_inner: () = +{ + i := 0; + do { + j := 0; + inner: do { + std::cout << i << j << " "; + if j == 1 { + break inner; + } + std::cout << "inner "; + } + next j++ while j<3; + + std::cout << "outer "; + } + next i++ while i<3; +} + +do_break_outer: () = +{ + i := 0; + outer: do { + j := 0; + do { + std::cout << i << j << " "; + if j == 1 { + break outer; + } + std::cout << "inner "; + } + next j++ while j<3; + + std::cout << "outer "; + } + next i++ while i<3; +} + +for_continue_inner: () = +{ + vi: std::vector = ( 0, 1, 2 ); + for vi do (i) { + vj: std::vector = ( 0, 1, 2 ); + inner: for vj do (j) { + std::cout << i << j << " "; + if j == 1 { + continue inner; + } + std::cout << "inner "; + } + + std::cout << "outer "; + } +} + +for_continue_outer: () = +{ + vi: std::vector = ( 0, 1, 2 ); + outer: for vi do (i) { + vj: std::vector = ( 0, 1, 2 ); + for vj do (j) { + std::cout << i << j << " "; + if j == 1 { + continue outer; + } + std::cout << "inner "; + } + + std::cout << "outer "; + } +} + +for_break_inner: () = +{ + vi: std::vector = ( 0, 1, 2 ); + for vi do (i) { + vj: std::vector = ( 0, 1, 2 ); + inner: for vj do (j) { + std::cout << i << j << " "; + if j == 1 { + break inner; + } + std::cout << "inner "; + } + + std::cout << "outer "; + } +} + +for_break_outer: () = +{ + vi: std::vector = ( 0, 1, 2 ); + outer: for vi do (i) { + vj: std::vector = ( 0, 1, 2 ); + for vj do (j) { + std::cout << i << j << " "; + if j == 1 { + break outer; + } + std::cout << "inner "; + } + + std::cout << "outer "; + } +} |
