From 8409f6998377e359560007b4b2fe93567021b727 Mon Sep 17 00:00:00 2001 From: Dmitry Boulytchev Date: Tue, 20 Mar 2018 23:13:51 +0300 Subject: [PATCH] Control constructs --- regression/Makefile | 2 +- regression/orig/test013.log | 9 ++++++++- regression/orig/test014.log | 31 +++++++++++++++++++++++++++++++ regression/test013.expr | 16 ++++++++++++++++ regression/test013.input | 1 + regression/test014.expr | 27 +++++++++++++++++++++++++++ regression/test014.input | 1 + regression/test016.expr | 12 ++++++++++++ regression/test016.input | 1 + 9 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 regression/orig/test014.log create mode 100644 regression/test013.expr create mode 100644 regression/test013.input create mode 100644 regression/test014.expr create mode 100644 regression/test014.input create mode 100644 regression/test016.expr create mode 100644 regression/test016.input diff --git a/regression/Makefile b/regression/Makefile index 07fdbcf81..4d77df5f9 100644 --- a/regression/Makefile +++ b/regression/Makefile @@ -1,4 +1,4 @@ -TESTS=test001 test002 test003 test004 test005 test006 test007 test008 test009 test010 test011 test012 test015 test017 test018 test019 test020 test021 test022 test023 +TESTS=test001 test002 test003 test004 test005 test006 test007 test008 test009 test010 test011 test012 test013 test014 test015 test016 test017 test018 test019 test020 test021 test022 test023 RC=../src/rc.opt diff --git a/regression/orig/test013.log b/regression/orig/test013.log index 47ae14062..87338fa01 100644 --- a/regression/orig/test013.log +++ b/regression/orig/test013.log @@ -1 +1,8 @@ -40320 +> 10 +11 +10 +11 +3 +2 +1 +0 diff --git a/regression/orig/test014.log b/regression/orig/test014.log new file mode 100644 index 000000000..8ddc17591 --- /dev/null +++ b/regression/orig/test014.log @@ -0,0 +1,31 @@ +> 1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 diff --git a/regression/test013.expr b/regression/test013.expr new file mode 100644 index 000000000..70dd33ef3 --- /dev/null +++ b/regression/test013.expr @@ -0,0 +1,16 @@ +read (n); + +repeat + + if n == 1 then write (0) +elif n == 2 then write (1) +elif n == 3 then write (2) +elif n == 4 then write (3) + else write (10) + fi; + + if n >= 5 then write (11) fi; + + n := n - 1 + +until n == 0 \ No newline at end of file diff --git a/regression/test013.input b/regression/test013.input new file mode 100644 index 000000000..1e8b31496 --- /dev/null +++ b/regression/test013.input @@ -0,0 +1 @@ +6 diff --git a/regression/test014.expr b/regression/test014.expr new file mode 100644 index 000000000..1190fe28e --- /dev/null +++ b/regression/test014.expr @@ -0,0 +1,27 @@ +read (n); + +while n > 0 do + + if n < 1000 + then + if n < 500 + then + if n < 250 + then + if n < 125 + then + if n < 63 + then + if n < 32 + then + write (1) + fi + fi + fi + fi + fi + fi; + + n := n - 1 + +od \ No newline at end of file diff --git a/regression/test014.input b/regression/test014.input new file mode 100644 index 000000000..29d6383b5 --- /dev/null +++ b/regression/test014.input @@ -0,0 +1 @@ +100 diff --git a/regression/test016.expr b/regression/test016.expr new file mode 100644 index 000000000..f398c0e9b --- /dev/null +++ b/regression/test016.expr @@ -0,0 +1,12 @@ +read (n); + +s := 1; + +repeat + + s := s * n; + n := n - 1 + +until n == 0; + +write (s) \ No newline at end of file diff --git a/regression/test016.input b/regression/test016.input new file mode 100644 index 000000000..f599e28b8 --- /dev/null +++ b/regression/test016.input @@ -0,0 +1 @@ +10