diff options
Diffstat (limited to 'progs/tests/expression')
| -rw-r--r-- | progs/tests/expression/add.sy | 9 | ||||
| -rw-r--r-- | progs/tests/expression/boolean_ops_count.sy | 41 | ||||
| -rw-r--r-- | progs/tests/expression/boolean_order.sy | 42 | ||||
| -rw-r--r-- | progs/tests/expression/div.sy | 5 | ||||
| -rw-r--r-- | progs/tests/expression/in_rhs.sy | 3 | ||||
| -rw-r--r-- | progs/tests/expression/negation.sy | 7 | ||||
| -rw-r--r-- | progs/tests/expression/parenthesis.sy | 3 | ||||
| -rw-r--r-- | progs/tests/expression/simple.sy | 5 | ||||
| -rw-r--r-- | progs/tests/expression/sub.sy | 9 | ||||
| -rw-r--r-- | progs/tests/expression/terms_and_factors.sy | 4 |
10 files changed, 128 insertions, 0 deletions
diff --git a/progs/tests/expression/add.sy b/progs/tests/expression/add.sy new file mode 100644 index 0000000..7be4012 --- /dev/null +++ b/progs/tests/expression/add.sy @@ -0,0 +1,9 @@ +start :: fn { + + a := 0 + b := 99999 + a += 1 + a <=> 1 + b <=> 99999 + +} diff --git a/progs/tests/expression/boolean_ops_count.sy b/progs/tests/expression/boolean_ops_count.sy new file mode 100644 index 0000000..b4a43e9 --- /dev/null +++ b/progs/tests/expression/boolean_ops_count.sy @@ -0,0 +1,41 @@ +start :: fn { + ts := 0 + t :: fn -> bool { + ts += 1 + ret true + } + + fs := 0 + f :: fn -> bool { + fs += 1 + ret false + } + + i :: fn -> bool { + <!> + ret false + } + + if f() && i() { + <!> + } + + if t() || i() { + // This block is intentionally left blank + } else { + <!> + } + + if f() && i() && i() { + <!> + } + + if t() || i() || i() { + // This block is intentionally left blank + } else { + <!> + } + + fs <=> 2 + ts <=> 2 +} diff --git a/progs/tests/expression/boolean_order.sy b/progs/tests/expression/boolean_order.sy new file mode 100644 index 0000000..567c068 --- /dev/null +++ b/progs/tests/expression/boolean_order.sy @@ -0,0 +1,42 @@ +start :: fn { + ts := 0 + t :: fn -> bool { + ts += 1 + ret true + } + + fs := 0 + f :: fn -> bool { + fs += 1 + ret false + } + + i :: fn -> bool { + <!> + ret false + } + + if t() || i() && i() { + // This block is intentionally left blank + } else { + <!> + } + + if f() && i() || t() { + // This block is intentionally left blank + } else { + <!> + } + + fs <=> 1 + fs = 0 + ts <=> 2 + ts = 0 + + f() && i() || f() <=> t() && f() || f() + f() && i() || f() <=> (t() && f()) || f() + t() && t() && f() || t() <=> t() || i() && i() && i() + + fs <=> 9 + ts <=> 6 +} diff --git a/progs/tests/expression/div.sy b/progs/tests/expression/div.sy new file mode 100644 index 0000000..df3e7bb --- /dev/null +++ b/progs/tests/expression/div.sy @@ -0,0 +1,5 @@ +start :: fn { + a := 2 + a /= 2 + a <=> 1 +} diff --git a/progs/tests/expression/in_rhs.sy b/progs/tests/expression/in_rhs.sy new file mode 100644 index 0000000..28ed276 --- /dev/null +++ b/progs/tests/expression/in_rhs.sy @@ -0,0 +1,3 @@ +start :: fn { + 5 <=> 1 * 2 + 3 +} diff --git a/progs/tests/expression/negation.sy b/progs/tests/expression/negation.sy new file mode 100644 index 0000000..0c702aa --- /dev/null +++ b/progs/tests/expression/negation.sy @@ -0,0 +1,7 @@ +start :: fn { + -1 <=> 0 - 1 + -1 + 2 <=> 1 + -(1 + 2) <=> -3 + 1 + -1 <=> 0 + 2 * -1 <=> -2 +} diff --git a/progs/tests/expression/parenthesis.sy b/progs/tests/expression/parenthesis.sy new file mode 100644 index 0000000..dd6fe8a --- /dev/null +++ b/progs/tests/expression/parenthesis.sy @@ -0,0 +1,3 @@ +start :: fn { + (1 + 2) * 3 <=> 9 +} diff --git a/progs/tests/expression/simple.sy b/progs/tests/expression/simple.sy new file mode 100644 index 0000000..29d7c76 --- /dev/null +++ b/progs/tests/expression/simple.sy @@ -0,0 +1,5 @@ +start :: fn { + 1 + 1 // blargh + 2 // blargh + // HARGH +} diff --git a/progs/tests/expression/sub.sy b/progs/tests/expression/sub.sy new file mode 100644 index 0000000..c220b8f --- /dev/null +++ b/progs/tests/expression/sub.sy @@ -0,0 +1,9 @@ +start :: fn { + + a := 0 + b := 99999 + a -= 1 + a <=> -1 + b <=> 99999 + +} diff --git a/progs/tests/expression/terms_and_factors.sy b/progs/tests/expression/terms_and_factors.sy new file mode 100644 index 0000000..42a48e2 --- /dev/null +++ b/progs/tests/expression/terms_and_factors.sy @@ -0,0 +1,4 @@ +start :: fn { + 1 + 1 * 2 <=> 3 + 1 * 2 + 3 <=> 5 +} |
