diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2000-08-08 15:26:05 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2000-08-08 15:26:05 -0300 |
| commit | f90bc248b3c3c18941a96038b2a7517ad571d8b1 (patch) | |
| tree | 696583e7b4f462d01b07b8510faecd47b9baaf62 /lparser.c | |
| parent | d9e61e8ceafe8c3f6ad936979719ca7c446ce228 (diff) | |
| download | lua-f90bc248b3c3c18941a96038b2a7517ad571d8b1.tar.gz lua-f90bc248b3c3c18941a96038b2a7517ad571d8b1.tar.bz2 lua-f90bc248b3c3c18941a96038b2a7517ad571d8b1.zip | |
new structure for line information
Diffstat (limited to 'lparser.c')
| -rw-r--r-- | lparser.c | 8 |
1 files changed, 7 insertions, 1 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lparser.c,v 1.101 2000/06/28 20:20:36 roberto Exp roberto $ | 2 | ** $Id: lparser.c,v 1.102 2000/06/30 14:35:17 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 | */ |
| @@ -327,6 +327,8 @@ static void open_func (LexState *ls, FuncState *fs) { | |||
| 327 | f->source = ls->source; | 327 | f->source = ls->source; |
| 328 | fs->pc = 0; | 328 | fs->pc = 0; |
| 329 | fs->lasttarget = 0; | 329 | fs->lasttarget = 0; |
| 330 | fs->nlineinfo = 0; | ||
| 331 | fs->lastline = 0; | ||
| 330 | fs->jlt = NO_JUMP; | 332 | fs->jlt = NO_JUMP; |
| 331 | f->code = NULL; | 333 | f->code = NULL; |
| 332 | f->maxstacksize = 0; | 334 | f->maxstacksize = 0; |
| @@ -348,6 +350,10 @@ static void close_func (LexState *ls) { | |||
| 348 | luaM_reallocvector(L, f->kproto, f->nkproto, Proto *); | 350 | luaM_reallocvector(L, f->kproto, f->nkproto, Proto *); |
| 349 | luaI_registerlocalvar(ls, NULL, -1); /* flag end of vector */ | 351 | luaI_registerlocalvar(ls, NULL, -1); /* flag end of vector */ |
| 350 | luaM_reallocvector(L, f->locvars, fs->nvars, LocVar); | 352 | luaM_reallocvector(L, f->locvars, fs->nvars, LocVar); |
| 353 | if (fs->debug) { | ||
| 354 | luaM_reallocvector(L, f->lineinfo, fs->nlineinfo+1, int); | ||
| 355 | f->lineinfo[fs->nlineinfo] = MAX_INT; /* end flag */ | ||
| 356 | } | ||
| 351 | ls->fs = fs->prev; | 357 | ls->fs = fs->prev; |
| 352 | LUA_ASSERT(fs->bl == NULL, "wrong list end"); | 358 | LUA_ASSERT(fs->bl == NULL, "wrong list end"); |
| 353 | } | 359 | } |
