]> gerrit.simantics Code Review - simantics/platform.git/blob - tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/BinaryOperators1.scl
Merge commit '145a2884933f2ffdd48d6835729e58f1152d274e'
[simantics/platform.git] / tests / org.simantics.scl.compiler.tests / src / org / simantics / scl / compiler / tests / scl / BinaryOperators1.scl
1 import "Prelude"\r
2 \r
3 data E = E String\r
4 \r
5 instance Additive E where\r
6     zero = E "0"\r
7     E a + E b = E ("(" + a + "+" + b + ")")\r
8     \r
9 instance Ring E where\r
10     one = E "1"\r
11     neg (E a) = E ("(-" + a + ")")\r
12     E a - E b = E ("(" + a + "-" + b + ")")\r
13     E a * E b = E ("(" + a + "*" + b + ")") \r
14     fromInteger x = E (show x)\r
15 \r
16 eToString (E a) = a\r
17 \r
18 a = E "a"\r
19 b = E "b"\r
20 c = E "c"\r
21 d = E "d"\r
22 \r
23 main = eToString (-a + b + (-c*d))\r
24 --\r
25 (((-a)+b)+(-(c*d)))