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

📄 opcode.h

📁 lua解释器早期1.0版本
💻 H
字号:
/*** opcode.h** TeCGraf - PUC-Rio** 16 Apr 92*/#ifndef opcode_h#define opcode_h#ifndef STACKGAP#define STACKGAP	128#endif #ifndef real#define real float#endiftypedef unsigned char  Byte;typedef unsigned short Word;typedef enum {  NOP, PUSHNIL, PUSH0, PUSH1, PUSH2, PUSHBYTE, PUSHWORD, PUSHFLOAT, PUSHSTRING, PUSHLOCAL0, PUSHLOCAL1, PUSHLOCAL2, PUSHLOCAL3, PUSHLOCAL4, PUSHLOCAL5, PUSHLOCAL6, PUSHLOCAL7, PUSHLOCAL8, PUSHLOCAL9, PUSHLOCAL, PUSHGLOBAL, PUSHINDEXED, PUSHMARK, PUSHOBJECT, STORELOCAL0, STORELOCAL1, STORELOCAL2, STORELOCAL3, STORELOCAL4, STORELOCAL5, STORELOCAL6, STORELOCAL7, STORELOCAL8, STORELOCAL9, STORELOCAL, STOREGLOBAL, STOREINDEXED0, STOREINDEXED, STOREFIELD, ADJUST, CREATEARRAY, EQOP, LTOP, LEOP, ADDOP, SUBOP, MULTOP, DIVOP, CONCOP, MINUSOP, NOTOP, ONTJMP, ONFJMP, JMP, UPJMP, IFFJMP, IFFUPJMP, POP, CALLFUNC, RETCODE, HALT, SETFUNCTION, SETLINE, RESET} OpCode;typedef enum{ T_MARK, T_NIL, T_NUMBER, T_STRING, T_ARRAY, T_FUNCTION, T_CFUNCTION, T_USERDATA} Type; typedef void (*Cfunction) (void);typedef int  (*Input) (void);typedef void (*Unput) (int );typedef union{ Cfunction 	 f; real    	 n; char      	*s; Byte      	*b; struct Hash    *a; void           *u;} Value;typedef struct Object{ Type  tag; Value value;} Object;typedef struct{ char   *name; Object  object;} Symbol;/* Macros to access structure members */#define tag(o)		((o)->tag)#define nvalue(o)	((o)->value.n)#define svalue(o)	((o)->value.s)#define bvalue(o)	((o)->value.b)#define avalue(o)	((o)->value.a)#define fvalue(o)	((o)->value.f)#define uvalue(o)	((o)->value.u)/* Macros to access symbol table */#define s_name(i)	(lua_table[i].name)#define s_object(i)	(lua_table[i].object)#define s_tag(i)	(tag(&s_object(i)))#define s_nvalue(i)	(nvalue(&s_object(i)))#define s_svalue(i)	(svalue(&s_object(i)))#define s_bvalue(i)	(bvalue(&s_object(i)))#define s_avalue(i)	(avalue(&s_object(i)))#define s_fvalue(i)	(fvalue(&s_object(i)))#define s_uvalue(i)	(uvalue(&s_object(i)))/* Exported functions */int     lua_execute   (Byte *pc);void    lua_markstack (void);char   *lua_strdup (char *l);void    lua_setinput   (Input fn);	/* from "lua.lex" module */void    lua_setunput   (Unput fn);	/* from "lua.lex" module */char   *lua_lasttext   (void);		/* from "lua.lex" module */int     lua_parse      (void); 		/* from "lua.stx" module */void    lua_type       (void);void 	lua_obj2number (void);void 	lua_print      (void);#endif

⌨️ 快捷键说明

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