From 80b3d28f4a9e518bf40b35f786199919180bfcd4 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Tue, 9 Dec 1997 11:50:08 -0200 Subject: details (mainly error messages) --- lua.stx | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'lua.stx') diff --git a/lua.stx b/lua.stx index b1afe6b4..0b794fee 100644 --- a/lua.stx +++ b/lua.stx @@ -1,6 +1,6 @@ %{ /* -** $Id: lua.stx,v 1.19 1997/11/21 19:00:46 roberto Exp roberto $ +** $Id: lua.stx,v 1.20 1997/12/02 12:43:54 roberto Exp roberto $ ** Syntax analizer and code generator ** See Copyright Notice in lua.h */ @@ -26,6 +26,10 @@ int luaY_parse (void); +#define AMES_LIM(x) #x +#define MES_LIM(x) "(limit=" AMES_LIM(x) ")" + + /* size of a "normal" jump instruction: OpCode + 1 byte */ #define JMPSIZE 2 @@ -43,6 +47,8 @@ int luaY_parse (void); /* maximum number of upvalues */ #define MAXUPVALUES 16 + + /* ** Variable descriptor: ** if 0currState->stacksize += delta; if (L->currState->stacksize > L->currState->maxstacksize) { if (L->currState->stacksize > 255) - luaY_error("function/expression too complex (limit 256)"); + luaY_error("function/expression too complex"); L->currState->maxstacksize = L->currState->stacksize; } } @@ -156,7 +162,7 @@ static int code_oparg_at (int pc, OpCode op, int builtin, int arg, int delta) L->currState->f->code[pc+2] = arg>>8; return 3; } - else luaY_error("code too long (limit 64K)"); + else luaY_error("code too long " MES_LIM(64K)); return 0; /* to avoid warnings */ } @@ -314,7 +320,7 @@ static void store_localvar (TaggedString *name, int n) if (L->currState->nlocalvar+n < MAXLOCALS) L->currState->localvar[L->currState->nlocalvar+n] = name; else - luaY_error("too many local variables (limit 32)"); + luaY_error("too many local variables " MES_LIM(MAXLOCALS)); luaI_registerlocalvar(name, L->lexstate->linenumber); } @@ -341,7 +347,7 @@ static vardesc var2store (vardesc var) static void add_varbuffer (vardesc var, int n) { if (n >= MAXVAR) - luaY_error("variable buffer overflow (limit 32)"); + luaY_error("variable buffer overflow " MES_LIM(MAXVAR)); L->currState->varbuffer[n] = var2store(var); } @@ -379,7 +385,7 @@ static int indexupvalue (TaggedString *n) } /* new one */ if (++(L->currState->nupvalues) > MAXUPVALUES) - luaY_error("too many upvalues in a single function (limit 16)"); + luaY_error("too many upvalues in a single function " MES_LIM(MAXUPVALUES)); L->currState->upvalues[i] = v; /* i = L->currState->nupvalues - 1 */ return i; } @@ -493,7 +499,7 @@ static int lua_codestore (int i, int left) } else { /* indexed var with values in between*/ code_oparg(SETTABLE, 0, left+i, -1); - return left+2; /* table/index are not poped, since they are not on top */ + return left+2; /* table/index are not popped, since they are not on top */ } } @@ -580,7 +586,7 @@ static void init_state (TaggedString *filename) static void init_func (void) { if (L->currState-L->mainState >= MAXSTATES-1) - luaY_error("too many nested functions (limit 6)"); + luaY_error("too many nested functions " MES_LIM(MAXSTATES)); L->currState++; init_state(L->mainState->f->fileName); luaY_codedebugline(L->lexstate->linenumber); @@ -604,7 +610,7 @@ static TProtoFunc *close_func (void) /* -** Parse LUA code. +** Parse Lua code. */ TProtoFunc *luaY_parser (ZIO *z, char *chunkname) { -- cgit v1.2.3-55-g6feb