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

📄 func.h

📁 早期freebsd实现
💻 H
字号:
/* * Copyright (c) 1993 David I. Bell * Permission is granted to use, distribute, or modify this source, * provided that this copyright notice remains intact. */#ifndef	FUNC_H#define	FUNC_H#include "calc.h"#include "label.h"/* * Structure of a function. * The f_opcodes array is actually of variable size. */typedef struct func FUNC;struct func {	FUNC *f_next;			/* next function in list */	unsigned long f_opcodecount;	/* size of opcode array */	unsigned int f_localcount;	/* number of local variables */	unsigned int f_paramcount;	/* max number of parameters */	char *f_name;			/* function name */	VALUE f_savedvalue;		/* saved value of last expression */	long f_opcodes[1];		/* array of opcodes (variable length) */};/* * Amount of space needed to allocate a function of n opcodes. */#define funcsize(n) (sizeof(FUNC) + (n) * sizeof(long))/* * Size of a character pointer rounded up to a number of opcodes. */#define PTR_SIZE ((sizeof(char *) + sizeof(long) - 1) / sizeof(long))/* * The current function being compiled. */extern FUNC *curfunc;/* * Functions to handle functions. */extern FUNC *findfunc MATH_PROTO((long index));extern char *namefunc MATH_PROTO((long index));extern BOOL evaluate MATH_PROTO((BOOL nestflag));extern long adduserfunc MATH_PROTO((char *name));extern void beginfunc MATH_PROTO((char *name, BOOL newflag));extern int builtinopcode MATH_PROTO((long index));extern char *builtinname MATH_PROTO((long index));extern int dumpop MATH_PROTO((long *pc));extern void addop MATH_PROTO((long op));extern void endfunc MATH_PROTO((void));extern void addopone MATH_PROTO((long op, long arg));extern void addoptwo MATH_PROTO((long op, long arg1, long arg2));extern void addoplabel MATH_PROTO((long op, LABEL *label));extern void addopptr MATH_PROTO((long op, char *ptr));extern void writeindexop MATH_PROTO((void));extern void showbuiltins MATH_PROTO((void));extern int getbuiltinfunc MATH_PROTO((char *name));extern void builtincheck MATH_PROTO((long index, int count));extern void addopfunction MATH_PROTO((long op, long index, int count));extern void showfunctions MATH_PROTO((void));extern void initfunctions MATH_PROTO((void));extern void clearopt MATH_PROTO((void));extern void updateoldvalue MATH_PROTO((FUNC *fp));extern void calculate MATH_PROTO((FUNC *fp, int argcount));extern VALUE builtinfunc MATH_PROTO((long index, int argcount, VALUE *stck));#endif/* END CODE */

⌨️ 快捷键说明

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