⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opcodes.h

📁 Calc Software Package for Number Calc
💻 H
字号:
/* * opcodes - opcode execution module definition * * Copyright (C) 1999-2006  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. * 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA. * * @(#) $Revision: 29.7 $ * @(#) $Id: opcodes.h,v 29.7 2006/06/25 20:33:26 chongo Exp $ * @(#) $Source: /usr/local/src/cmd/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(__OPCODES_H__)#define __OPCODES_H__#if defined(CALC_SRC)	/* if we are building from the calc source tree */# include "win32dll.h"#else# include <calc/win32dll.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 DLL char *funcname;		/* function being executed */extern DLL long funcline;		/* function line being executed */#endif /* !__OPCODES_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -