CREATEARRAY now has an argument, the size of the array to create.

This commit is contained in:
Roberto Ierusalimschy
1994-11-01 16:25:20 -02:00
parent 41e4c5798e
commit f53460aab9
2 changed files with 18 additions and 14 deletions

16
lua.stx
View File

@@ -1,6 +1,6 @@
%{
char *rcs_luastx = "$Id: lua.stx,v 2.10 1994/10/17 19:05:32 celes Exp roberto $";
char *rcs_luastx = "$Id: lua.stx,v 2.11 1994/10/21 19:00:12 roberto Exp roberto $";
#include <stdio.h>
#include <stdlib.h>
@@ -528,10 +528,8 @@ expr : '(' expr ')' { $$ = $2; }
table :
{
code_byte(PUSHWORD);
$<vLong>$ = pc; code_word(0);
incr_ntemp();
code_byte(CREATEARRAY);
$<vLong>$ = pc; code_word(0);
}
'{' fieldlist '}'
{
@@ -918,7 +916,15 @@ static void PrintCode (Byte *code, Byte *end)
printf ("%d ADJUST %d\n", p-code, *(++p));
p++;
break;
case CREATEARRAY: printf ("%d CREATEARRAY\n", (p++)-code); break;
case CREATEARRAY:
{
CodeWord c;
int n = p-code;
p++;
get_word(c,p);
printf ("%d CREATEARRAY\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;