/usr/include/calc/opcodes.h is in apcalc-dev 2.12.5.0-1+b3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 | /*
* opcodes - opcode execution module definition
*
* Copyright (C) 1999-2007,2014 David I. Bell
*
* Calc is open software; you can redistribute it and/or modify it under
* the terms of the version 2.1 of the GNU Lesser General Public License
* as published by the Free Software Foundation.
*
* Calc is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
* Public License for more details.
*
* A copy of version 2.1 of the GNU Lesser General Public License is
* distributed with calc under the filename COPYING-LGPL. You should have
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.3 $
* @(#) $Id: opcodes.h,v 30.3 2014/08/24 21:56:51 chongo Exp $
* @(#) $Source: /usr/local/src/bin/calc/RCS/opcodes.h,v $
*
* Under source code control: 1990/02/15 01:48:35
* File existed as early as: before 1990
*
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
*/
#if !defined(INCLUDE_OPCODES_H)
#define INCLUDE_OPCODES_H
#if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "calc/decl.h"
#else
# include <calc/decl.h>
#endif
/*
* Opcodes
*/
#define OP_NOP 0L /* no operation */
#define OP_LOCALADDR 1L /* load address of local variable */
#define OP_GLOBALADDR 2L /* load address of global variable */
#define OP_PARAMADDR 3L /* load address of paramater variable */
#define OP_LOCALVALUE 4L /* load value of local variable */
#define OP_GLOBALVALUE 5L /* load value of global variable */
#define OP_PARAMVALUE 6L /* load value of paramater variable */
#define OP_NUMBER 7L /* load constant real numeric value */
#define OP_INDEXADDR 8L /* load array index address */
#define OP_PRINTRESULT 9L /* print result of top-level expression */
#define OP_ASSIGN 10L /* assign value to variable */
#define OP_ADD 11L /* add top two values */
#define OP_SUB 12L /* subtract top two values */
#define OP_MUL 13L /* multiply top two values */
#define OP_DIV 14L /* divide top two values */
#define OP_MOD 15L /* take mod of top two values */
#define OP_SAVE 16L /* save value for later use */
#define OP_NEGATE 17L /* negate top value */
#define OP_INVERT 18L /* invert top value */
#define OP_INT 19L /* take integer part of top value */
#define OP_FRAC 20L /* take fraction part of top value */
#define OP_NUMERATOR 21L /* take numerator of top value */
#define OP_DENOMINATOR 22L /* take denominator of top value */
#define OP_DUPLICATE 23L /* duplicate top value on stack */
#define OP_POP 24L /* pop top value from stack */
#define OP_RETURN 25L /* return value of function */
#define OP_JUMPZ 26L /* jump if top value is zero */
#define OP_JUMPNZ 27L /* jump if top value is nonzero */
#define OP_JUMP 28L /* jump unconditionally */
#define OP_USERCALL 29L /* call a user-defined function */
#define OP_GETVALUE 30L /* convert address to value */
#define OP_EQ 31L /* test top two elements for equality */
#define OP_NE 32L /* test top two elements for inequality */
#define OP_LE 33L /* test top two elements for <= */
#define OP_GE 34L /* test top two elements for >= */
#define OP_LT 35L /* test top two elements for < */
#define OP_GT 36L /* test top two elements for > */
#define OP_PREINC 37L /* add one to variable (++x) */
#define OP_PREDEC 38L /* subtract one from variable (--x) */
#define OP_POSTINC 39L /* add one to variable (x++) */
#define OP_POSTDEC 40L /* subtract one from variable (x--) */
#define OP_DEBUG 41L /* debugging point */
#define OP_PRINT 42L /* print value */
#define OP_ASSIGNPOP 43L /* assign to variable and remove it */
#define OP_ZERO 44L /* put zero on the stack */
#define OP_ONE 45L /* put one on the stack */
#define OP_PRINTEOL 46L /* print end of line */
#define OP_PRINTSPACE 47L /* print a space */
#define OP_PRINTSTRING 48L /* print constant string */
#define OP_DUPVALUE 49L /* duplicate value of top value */
#define OP_OLDVALUE 50L /* old calculation value */
#define OP_QUO 51L /* integer quotient of top two values */
#define OP_POWER 52L /* number raised to a power */
#define OP_QUIT 53L /* quit program */
#define OP_CALL 54L /* call built-in routine */
#define OP_GETEPSILON 55L /* get allowed error for calculations */
#define OP_AND 56L /* arithmetic and */
#define OP_OR 57L /* arithmetic or */
#define OP_NOT 58L /* logical not */
#define OP_ABS 59L /* absolute value */
#define OP_SGN 60L /* sign of number */
#define OP_ISINT 61L /* whether top value is integer */
#define OP_CONDORJUMP 62L /* conditional or jump */
#define OP_CONDANDJUMP 63L /* conditional and jump */
#define OP_SQUARE 64L /* square top value */
#define OP_STRING 65L /* load constant string value */
#define OP_ISNUM 66L /* whether top value is a number */
#define OP_UNDEF 67L /* load undefined value on stack */
#define OP_ISNULL 68L /* whether variable is the null value */
#define OP_ARGVALUE 69L /* load value of argument (parameter) n */
#define OP_MATCREATE 70L /* create matrix */
#define OP_ISMAT 71L /* whether variable is a matrix */
#define OP_ISSTR 72L /* whether variable is a string */
#define OP_GETCONFIG 73L /* get value of configuration parameter */
#define OP_LEFTSHIFT 74L /* left shift of integer */
#define OP_RIGHTSHIFT 75L /* right shift of integer */
#define OP_CASEJUMP 76L /* test case and jump if not matched */
#define OP_ISODD 77L /* whether value is an odd integer */
#define OP_ISEVEN 78L /* whether value is even integer */
#define OP_FIADDR 79L /* 'fast index' matrix value address */
#define OP_FIVALUE 80L /* 'fast index' matrix value */
#define OP_ISREAL 81L /* test value for real number */
#define OP_IMAGINARY 82L /* load imaginary numeric constant */
#define OP_RE 83L /* real part of complex number */
#define OP_IM 84L /* imaginary part of complex number */
#define OP_CONJUGATE 85L /* complex conjugate of complex number */
#define OP_OBJCREATE 86L /* create object */
#define OP_ISOBJ 87L /* whether value is an object */
#define OP_NORM 88L /* norm of value (square of abs) */
#define OP_ELEMADDR 89L /* address of element of object */
#define OP_ELEMVALUE 90L /* value of element of object */
#define OP_ISTYPE 91L /* whether two values are the same type */
#define OP_SCALE 92L /* scale value by a power of two */
#define OP_ISLIST 93L /* whether value is a list */
#define OP_SWAP 94L /* swap values of two variables */
#define OP_ISSIMPLE 95L /* whether value is a simple type */
#define OP_CMP 96L /* compare values returning -1, 0, or 1 */
#define OP_SETCONFIG 97L /* set configuration parameter */
#define OP_SETEPSILON 98L /* set allowed error for calculations */
#define OP_ISFILE 99L /* whether value is a file */
#define OP_ISASSOC 100L /* whether value is an association */
#define OP_INITSTATIC 101L /* once only code for static initialization */
#define OP_ELEMINIT 102L /* assign element of matrix or object */
#define OP_ISCONFIG 103L /* whether value is a configuration state */
#define OP_ISHASH 104L /* whether value is a hash state */
#define OP_ISRAND 105L /* whether value is additive 55 random state */
#define OP_ISRANDOM 106L /* whether value is a Blum random state */
#define OP_SHOW 107L /* show data about current state */
#define OP_INITFILL 108L /* fill new matrix with copies of a value */
#define OP_ASSIGNBACK 109L /* assign in reverse order */
#define OP_TEST 110L /* test whether value is "nonzero" */
#define OP_ISDEFINED 111L /* whether string names a function */
#define OP_ISOBJTYPE 112L /* whether string names an object type */
#define OP_ISBLK 113L /* whether value is a block */
#define OP_PTR 114L /* octet pointer */
#define OP_DEREF 115L /* dereference an octet pointer */
#define OP_ISOCTET 116L /* whether value is an octet */
#define OP_ISPTR 117L /* whether value is a pointer */
#define OP_SAVEVAL 118L /* activate updating */
#define OP_LINKS 119L /* return links for numbers and strings */
#define OP_BIT 120L /* whether specified bit is set */
#define OP_COMP 121L /* complement value */
#define OP_XOR 122L /* xor (~) of values */
#define OP_HIGHBIT 123L /* index of high bit of value */
#define OP_LOWBIT 124L /* index of low bit of value */
#define OP_CONTENT 125L /* value returned by unary # */
#define OP_HASHOP 126L /* binary # */
#define OP_BACKSLASH 127L /* unary backslash */
#define OP_SETMINUS 128L /* binary backslash */
#define OP_PLUS 129L /* unary + */
#define OP_JUMPNN 130L /* jump if top value is non-null */
#define OP_ABORT 131L /* abort operation */
#define MAX_OPCODE 131L /* highest legal opcode */
/*
* external declarations
*/
EXTERN char *funcname; /* function being executed */
EXTERN long funcline; /* function line being executed */
#endif /* !INCLUDE_OPCODES_H */
|