File: sub.c

package info (click to toggle)
icmake 7.18.00-2
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 2,840 kB
  • sloc: ansic: 7,784; makefile: 3,811; sh: 319; cpp: 83
file content (30 lines) | stat: -rw-r--r-- 855 bytes parent folder | download | duplicates (4)
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
/*
\funcref{fun\_sub}{void fun\_sub ()}
    {}
    {}
    {pop(), copylist(), delfromlist(), discard()}
    {}
    {funsub.c}
    {

        Function {\em fun\_sub()} processes opcode {\em op\_sub}. Two variables
        are popped and subtracted. Depending on their type, two integer values
        are subtracted or a difference between two lists is computed.

        The result of the subtraction is stored in a temporary variable, which
        is then pushed.

        The two popped variables are discarded after use.
    }
*/

#include "opcodefun.ih"

void fun_sub ()
{
    VAR_ rval = *copyCons(top());    /* make a copy              */
    pop();                          /* remove the r-operand     */

    subtract(top(), &rval);         /* subtract the rval to the top  */
    destructor(&rval);              /* remove the local var     */
}