UNPKG

453 Btext/coffeescriptView Raw
1
2
3Eval_floor = ->
4 push(cadr(p1))
5 Eval()
6 yfloor()
7
8yfloor = ->
9 save()
10 yyfloor()
11 restore()
12
13yyfloor = ->
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