-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathoperator_f
executable file
·75 lines (70 loc) · 3.79 KB
/
operator_f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
typedef ENTIER: A_int: int;
typedef boolean: A_bool: char;
typedef Boolean: A_bool: char;
typedef REEL: A_real: double;
typedef void: void: void;
FIN;
binary [ + 7 ((ENTIER ENTIER ENTIER constant "(%L) + (%R)")
(ENTIER REEL REEL constant "((double)(%L)) + (%R)")
(REEL REEL REEL constant "(%L) + (%R)")
(REEL ENTIER REEL constant "(%L) + ((double)(%R))"))]
[ * 8 ((ENTIER ENTIER ENTIER constant "(%L) * (%R)")
(ENTIER REEL REEL constant "((double)(%L)) * (%R)")
(REEL ENTIER REEL constant "(%L) * ((double)(%R))")
(REEL REEL REEL constant "(%L) * (%R)")) ]
[ ^ 9 ((ENTIER ENTIER ENTIER "(__ipow(%L,%R))")
(REEL ENTIER REEL " __npow (%L, %R)")
(ENTIER REEL REEL "__fpow ((double)%L, %R)")
(REEL REEL REEL "__fpow (%L, %R)")) ]
[ / 8 ((ENTIER ENTIER ENTIER constant "(%L) / (%R)")
(ENTIER REEL REEL constant "((double)(%L))/(%R)")
(REEL ENTIER REEL constant "(%L) /((double)(%R))")
(REEL REEL REEL constant "(%L)/(%R)")) ]
[ mod 8 ((ENTIER ENTIER ENTIER "__mod (%L, %R)" ))]
[ - 7 ((ENTIER ENTIER ENTIER constant "(%L) - (%R)")
(ENTIER REEL REEL constant "((double)%L)-(%R)")
(REEL REEL REEL constant "(%L) - (%R)")
(REEL ENTIER REEL constant "%L - (double)%R " ) ) ]
[ <= 6 ((ENTIER ENTIER boolean "(%L) <= (%R)")
(REEL REEL boolean "(%L) <= (%R)")
(ENTIER REEL boolean "((double)(%L))<= (%R)")
(REEL ENTIER boolean "(%L) <= ((double)(%R))"))]
[ >= 6 ((ENTIER ENTIER boolean "(%L) >= (%R)")
(REEL REEL boolean "(%L) >= (%R)")
(ENTIER REEL boolean "((double)(%L)) >= (%R)")
(REEL ENTIER boolean "(%L) >= ((double)(%R))"))]
[ > 6 ((ENTIER ENTIER boolean "(%L) > (%R) ")
(REEL REEL boolean "(%L) > (%R)")
(ENTIER REEL boolean "((double)(%L)) > (%R)")
(REEL ENTIER boolean "(%L) > ((double)(%R))"))]
[ < 6 ((ENTIER ENTIER boolean "(%L) < (%R) ")
(REEL REEL boolean "(%L) < (%R)")
(ENTIER REEL boolean "((double)(%L)) < (%R)")
(REEL ENTIER boolean "(%L) < ((double)(%R))"))]
[ = 6 ((ENTIER ENTIER boolean "(%L) == (%R)")
(REEL REEL boolean "(%L) == (%R)")
(boolean boolean boolean "(%L) == (%R)")
(ENTIER REEL boolean "((double)(%L)) == (%R)")
(REEL ENTIER boolean "(%L) == ((double)(%R))" ))]
[ ^= 6 ((ENTIER ENTIER boolean "(%L) != (%R)")
(REEL REEL boolean "(%L) != (%R) ")
(boolean boolean boolean "(%L) != (%R)")
(ENTIER REEL boolean "((double)(%L)) != (%R)")
(REEL ENTIER boolean "(%L) != ((double)(%R))" ))]
[ notequal 6 ((ENTIER ENTIER boolean "(%L) != (%R)")
(REEL REEL boolean "(%L) != (%R) ")
(boolean boolean boolean "(%L) != (%R)")
(ENTIER REEL boolean "((double)(%L)) != (%R)")
(REEL ENTIER boolean "(%L) != ((double)(%R))" ))]
[ div 8 ((ENTIER ENTIER ENTIER constant "(%L) /(%R)"))]
[ equiv 1 ((boolean boolean boolean "(%L) == (%R)")) ]
[ implies 2 ((boolean boolean boolean "(((%L) & (%R)) || (!(%L) & !(%R)))")) ]
[ ET 4 ((boolean boolean boolean "(%L) && (%R)"))]
[ or 3 ((boolean boolean boolean "(%L) || (%R)"))]
FIN;
unary [ + 10 ((ENTIER ENTIER constant "%L")
(REEL REEL constant "%L")) ]
[ - 10 ((ENTIER ENTIER constant " -(%L)")
(REEL REEL constant " -(%L)")) ]
[ not 5 ((boolean boolean constant "! (%L)"))]
FIN;