1 |
|
2 |
|
3 | Eval_floor = ->
|
4 | push(cadr(p1))
|
5 | Eval()
|
6 | yfloor()
|
7 |
|
8 | yfloor = ->
|
9 | save()
|
10 | yyfloor()
|
11 | restore()
|
12 |
|
13 | yyfloor = ->
|
14 | d = 0.0
|
15 |
|
16 | p1 = pop()
|
17 |
|
18 | if (!isnum(p1))
|
19 | push_symbol(FLOOR)
|
20 | push(p1)
|
21 | list(2)
|
22 | return
|
23 |
|
24 | if (isdouble(p1))
|
25 | d = Math.floor(p1.d)
|
26 | push_double(d)
|
27 | return
|
28 |
|
29 | if (isinteger(p1))
|
30 | push(p1)
|
31 | return
|
32 |
|
33 | p3 = new U()
|
34 | p3.k = NUM
|
35 | p3.q.a = mdiv(p1.q.a, p1.q.b)
|
36 | p3.q.b = mint(1)
|
37 | push(p3)
|
38 |
|
39 | if (isnegativenumber(p1))
|
40 | push_integer(-1)
|
41 | add()
|
42 |
|
43 |
|