aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>1999-06-16 10:22:04 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>1999-06-16 10:22:04 -0300
commit5c19ed2a13af8cdf364867ea66f9827bc139d06b (patch)
treee097d3c2ce5a2019f6218666db78c13eb5c4a3fc
parent5caf7f4a33938f482be78d1b4a807e86411706f0 (diff)
downloadlua-5c19ed2a13af8cdf364867ea66f9827bc139d06b.tar.gz
lua-5c19ed2a13af8cdf364867ea66f9827bc139d06b.tar.bz2
lua-5c19ed2a13af8cdf364867ea66f9827bc139d06b.zip
bigger limit for number of local variables and upvalues
-rw-r--r--lparser.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/lparser.c b/lparser.c
index 7ad58ea5..5a454b3f 100644
--- a/lparser.c
+++ b/lparser.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lparser.c,v 1.33 1999/05/10 13:54:01 roberto Exp roberto $ 2** $Id: lparser.c,v 1.34 1999/05/21 19:54:06 roberto Exp roberto $
3** LL(1) Parser and code generator for Lua 3** LL(1) Parser and code generator for Lua
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -30,25 +30,27 @@
30#define JMPSIZE 2 30#define JMPSIZE 2
31 31
32/* maximum number of local variables */ 32/* maximum number of local variables */
33#define MAXLOCALS 32 33#define MAXLOCALS 200
34#define SMAXLOCALS "32" 34#define SMAXLOCALS "200"
35 35
36 36
37/* maximum number of upvalues */ 37/* maximum number of upvalues */
38#define MAXUPVALUES 16 38#define MAXUPVALUES 32
39#define SMAXUPVALUES "16" 39#define SMAXUPVALUES "32"
40 40
41 41
42/* 42/*
43** Variable descriptor: 43** Variable descriptor:
44** must include a "exp" option because LL(1) cannot distinguish 44** must include an "exp" option because LL(1) cannot distinguish
45** between variables, upvalues and function calls on first sight. 45** between variables, upvalues and function calls on first sight.
46** VGLOBAL: info is constant index of global name
47** VLOCAL: info is stack index
48** VDOT: info is constant index of index name
49** VEXP: info is pc index of "nparam" of function call (or 0 if exp is closed)
50*/ 46*/
51typedef enum {VGLOBAL, VLOCAL, VDOT, VINDEXED, VEXP} varkind; 47typedef enum {
48 VGLOBAL, /* info is constant index of global name */
49 VLOCAL, /* info is stack index */
50 VDOT, /* info is constant index of index name */
51 VINDEXED, /* no info (table and index are on the stack) */
52 VEXP /* info is pc index of "nparam" of a call (or 0 if exp is closed) */
53} varkind;
52 54
53typedef struct vardesc { 55typedef struct vardesc {
54 varkind k; 56 varkind k;