"PrintCode" now is defined in luac.
This commit is contained in:
229
lua.stx
229
lua.stx
@@ -1,6 +1,6 @@
|
|||||||
%{
|
%{
|
||||||
|
|
||||||
char *rcs_luastx = "$Id: lua.stx,v 3.33 1996/02/26 17:07:20 roberto Exp roberto $";
|
char *rcs_luastx = "$Id: lua.stx,v 3.34 1996/02/26 21:00:27 roberto Exp roberto $";
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@@ -793,230 +793,3 @@ setdebug : DEBUG { lua_debug = $1; }
|
|||||||
;
|
;
|
||||||
|
|
||||||
%%
|
%%
|
||||||
|
|
||||||
#if LISTING
|
|
||||||
|
|
||||||
static void PrintCode (Byte *code, Byte *end)
|
|
||||||
{
|
|
||||||
Byte *p = code;
|
|
||||||
printf ("\n\nCODE\n");
|
|
||||||
while (p != end)
|
|
||||||
{
|
|
||||||
switch ((OpCode)*p)
|
|
||||||
{
|
|
||||||
case PUSHNIL: printf ("%d PUSHNIL\n", (p++)-code); break;
|
|
||||||
case PUSH0: case PUSH1: case PUSH2:
|
|
||||||
printf ("%d PUSH%c\n", p-code, *p-PUSH0+'0');
|
|
||||||
p++;
|
|
||||||
break;
|
|
||||||
case PUSHBYTE:
|
|
||||||
printf ("%d PUSHBYTE %d\n", p-code, *(p+1));
|
|
||||||
p+=2;
|
|
||||||
break;
|
|
||||||
case PUSHWORD:
|
|
||||||
{
|
|
||||||
CodeWord c;
|
|
||||||
int n = p-code;
|
|
||||||
p++;
|
|
||||||
get_word(c,p);
|
|
||||||
printf ("%d PUSHWORD %d\n", n, c.w);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PUSHFLOAT:
|
|
||||||
{
|
|
||||||
CodeFloat c;
|
|
||||||
int n = p-code;
|
|
||||||
p++;
|
|
||||||
get_float(c,p);
|
|
||||||
printf ("%d PUSHFLOAT %f\n", n, c.f);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PUSHSTRING:
|
|
||||||
{
|
|
||||||
CodeWord c;
|
|
||||||
int n = p-code;
|
|
||||||
p++;
|
|
||||||
get_word(c,p);
|
|
||||||
printf ("%d PUSHSTRING %d\n", n, c.w);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PUSHFUNCTION:
|
|
||||||
{
|
|
||||||
CodeCode c;
|
|
||||||
int n = p-code;
|
|
||||||
p++;
|
|
||||||
get_code(c,p);
|
|
||||||
printf ("%d PUSHFUNCTION %p\n", n, c.tf);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PUSHLOCAL0: case PUSHLOCAL1: case PUSHLOCAL2: case PUSHLOCAL3:
|
|
||||||
case PUSHLOCAL4: case PUSHLOCAL5: case PUSHLOCAL6: case PUSHLOCAL7:
|
|
||||||
case PUSHLOCAL8: case PUSHLOCAL9:
|
|
||||||
printf ("%d PUSHLOCAL%c\n", p-code, *p-PUSHLOCAL0+'0');
|
|
||||||
p++;
|
|
||||||
break;
|
|
||||||
case PUSHLOCAL: printf ("%d PUSHLOCAL %d\n", p-code, *(p+1));
|
|
||||||
p+=2;
|
|
||||||
break;
|
|
||||||
case PUSHGLOBAL:
|
|
||||||
{
|
|
||||||
CodeWord c;
|
|
||||||
int n = p-code;
|
|
||||||
p++;
|
|
||||||
get_word(c,p);
|
|
||||||
printf ("%d PUSHGLOBAL %d\n", n, c.w);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PUSHINDEXED: printf ("%d PUSHINDEXED\n", (p++)-code); break;
|
|
||||||
case STORELOCAL0: case STORELOCAL1: case STORELOCAL2: case STORELOCAL3:
|
|
||||||
case STORELOCAL4: case STORELOCAL5: case STORELOCAL6: case STORELOCAL7:
|
|
||||||
case STORELOCAL8: case STORELOCAL9:
|
|
||||||
printf ("%d STORELOCAL%c\n", p-code, *p-STORELOCAL0+'0');
|
|
||||||
p++;
|
|
||||||
break;
|
|
||||||
case STORELOCAL:
|
|
||||||
printf ("%d STORELOCAL %d\n", p-code, *(p+1));
|
|
||||||
p+=2;
|
|
||||||
break;
|
|
||||||
case STOREGLOBAL:
|
|
||||||
{
|
|
||||||
CodeWord c;
|
|
||||||
int n = p-code;
|
|
||||||
p++;
|
|
||||||
get_word(c,p);
|
|
||||||
printf ("%d STOREGLOBAL %d\n", n, c.w);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PUSHSELF:
|
|
||||||
{
|
|
||||||
CodeWord c;
|
|
||||||
int n = p-code;
|
|
||||||
p++;
|
|
||||||
get_word(c,p);
|
|
||||||
printf ("%d PUSHSELF %d\n", n, c.w);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case STOREINDEXED0: printf ("%d STOREINDEXED0\n", (p++)-code); break;
|
|
||||||
case STOREINDEXED: printf ("%d STOREINDEXED %d\n", p-code, *(p+1));
|
|
||||||
p+=2;
|
|
||||||
break;
|
|
||||||
case STORELIST0:
|
|
||||||
printf("%d STORELIST0 %d\n", p-code, *(p+1));
|
|
||||||
p+=2+;
|
|
||||||
break;
|
|
||||||
case STORELIST:
|
|
||||||
printf("%d STORELIST %d %d\n", p-code, *(p+1), *(p+2));
|
|
||||||
p+=3;
|
|
||||||
break;
|
|
||||||
case STORERECORD:
|
|
||||||
printf("%d STORERECORD %d\n", p-code, *(p+1));
|
|
||||||
p += *p*sizeof(Word) + 2;
|
|
||||||
break;
|
|
||||||
case ADJUST0: printf ("%d ADJUST0\n", (p++)-code); break;
|
|
||||||
case ADJUST:
|
|
||||||
printf ("%d ADJUST %d\n", p-code, *(p+1));
|
|
||||||
p+=2;
|
|
||||||
break;
|
|
||||||
case CREATEARRAY:
|
|
||||||
{
|
|
||||||
CodeWord c;
|
|
||||||
int n = p-code;
|
|
||||||
p++;
|
|
||||||
get_word(c,p);
|
|
||||||
printf ("%d CREATEARRAY %d\n", n, c.w);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case EQOP: printf ("%d EQOP\n", (p++)-code); break;
|
|
||||||
case LTOP: printf ("%d LTOP\n", (p++)-code); break;
|
|
||||||
case LEOP: printf ("%d LEOP\n", (p++)-code); break;
|
|
||||||
case ADDOP: printf ("%d ADDOP\n", (p++)-code); break;
|
|
||||||
case SUBOP: printf ("%d SUBOP\n", (p++)-code); break;
|
|
||||||
case MULTOP: printf ("%d MULTOP\n", (p++)-code); break;
|
|
||||||
case DIVOP: printf ("%d DIVOP\n", (p++)-code); break;
|
|
||||||
case POWOP: printf ("%d POWOP\n", (p++)-code); break;
|
|
||||||
case CONCOP: printf ("%d CONCOP\n", (p++)-code); break;
|
|
||||||
case MINUSOP: printf ("%d MINUSOP\n", (p++)-code); break;
|
|
||||||
case NOTOP: printf ("%d NOTOP\n", (p++)-code); break;
|
|
||||||
case ONTJMP:
|
|
||||||
{
|
|
||||||
CodeWord c;
|
|
||||||
int n = p-code;
|
|
||||||
p++;
|
|
||||||
get_word(c,p);
|
|
||||||
printf ("%d ONTJMP %d\n", n, c.w);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ONFJMP:
|
|
||||||
{
|
|
||||||
CodeWord c;
|
|
||||||
int n = p-code;
|
|
||||||
p++;
|
|
||||||
get_word(c,p);
|
|
||||||
printf ("%d ONFJMP %d\n", n, c.w);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case JMP:
|
|
||||||
{
|
|
||||||
CodeWord c;
|
|
||||||
int n = p-code;
|
|
||||||
p++;
|
|
||||||
get_word(c,p);
|
|
||||||
printf ("%d JMP %d\n", n, c.w);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case UPJMP:
|
|
||||||
{
|
|
||||||
CodeWord c;
|
|
||||||
int n = p-code;
|
|
||||||
p++;
|
|
||||||
get_word(c,p);
|
|
||||||
printf ("%d UPJMP %d\n", n, c.w);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case IFFJMP:
|
|
||||||
{
|
|
||||||
CodeWord c;
|
|
||||||
int n = p-code;
|
|
||||||
p++;
|
|
||||||
get_word(c,p);
|
|
||||||
printf ("%d IFFJMP %d\n", n, c.w);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case IFFUPJMP:
|
|
||||||
{
|
|
||||||
CodeWord c;
|
|
||||||
int n = p-code;
|
|
||||||
p++;
|
|
||||||
get_word(c,p);
|
|
||||||
printf ("%d IFFUPJMP %d\n", n, c.w);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case POP: printf ("%d POP\n", (p++)-code); break;
|
|
||||||
case CALLFUNC:
|
|
||||||
printf ("%d CALLFUNC %d %d\n", p-code, *(p+1), *(p+2));
|
|
||||||
p+=3;
|
|
||||||
break;
|
|
||||||
case RETCODE0: printf ("%d RETCODE0\n", (p++)-code); break;
|
|
||||||
case RETCODE:
|
|
||||||
printf ("%d RETCODE %d\n", p-code, *(p+1));
|
|
||||||
p+=2;
|
|
||||||
break;
|
|
||||||
case SETLINE:
|
|
||||||
{
|
|
||||||
CodeWord c;
|
|
||||||
int n = p-code;
|
|
||||||
p++;
|
|
||||||
get_word(c,p);
|
|
||||||
printf ("%d SETLINE %d\n", n, c.w);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default: printf ("%d Cannot happen: code %d\n", p-code, *p));
|
|
||||||
p+=1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user