opcode PUSHSELF has a parameter that indicates the method to be called

This commit is contained in:
Roberto Ierusalimschy
1994-12-06 12:27:18 -02:00
parent e742d54253
commit ce4fb88b34
2 changed files with 16 additions and 6 deletions

15
lua.stx
View File

@@ -1,6 +1,6 @@
%{
char *rcs_luastx = "$Id: lua.stx,v 3.11 1994/11/23 14:39:52 roberto Stab roberto $";
char *rcs_luastx = "$Id: lua.stx,v 3.12 1994/11/25 19:24:57 roberto Exp $";
#include <stdio.h>
#include <stdlib.h>
@@ -418,9 +418,8 @@ functioncall : funcvalue funcParams
funcvalue : varexp { $$ = 0; }
| varexp ':' NAME
{
code_byte(PUSHSTRING);
code_word(luaI_findconstant($3));
code_byte(PUSHSELF);
code_word(luaI_findconstant($3));
$$ = 1;
}
;
@@ -830,7 +829,15 @@ static void PrintCode (Byte *code, Byte *end)
printf ("%d STOREGLOBAL %d\n", n, c.w);
}
break;
case PUSHSELF: printf ("%d PUSHSELF\n", (p++)-code); 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));
p++;