📄 func.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 + -