diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1996-02-12 15:32:40 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1996-02-12 15:32:40 -0300 |
commit | 41259bff31dbb904edfb8070006ccb15577f8f04 (patch) | |
tree | 664bf9cbe6394e9074435ecf2bd710712b4537c3 /lua.stx | |
parent | afaa98a666acd5f596b50f56bb288815838c096e (diff) | |
download | lua-41259bff31dbb904edfb8070006ccb15577f8f04.tar.gz lua-41259bff31dbb904edfb8070006ccb15577f8f04.tar.bz2 lua-41259bff31dbb904edfb8070006ccb15577f8f04.zip |
BIG CHANGE: new data structure for constants, strings and globals, using
an array of hash tables for all them.
Diffstat (limited to 'lua.stx')
-rw-r--r-- | lua.stx | 14 |
1 files changed, 7 insertions, 7 deletions
@@ -1,6 +1,6 @@ | |||
1 | %{ | 1 | %{ |
2 | 2 | ||
3 | char *rcs_luastx = "$Id: lua.stx,v 3.28 1996/02/05 13:26:01 roberto Exp roberto $"; | 3 | char *rcs_luastx = "$Id: lua.stx,v 3.29 1996/02/07 18:10:27 roberto Exp roberto $"; |
4 | 4 | ||
5 | #include <stdio.h> | 5 | #include <stdio.h> |
6 | #include <stdlib.h> | 6 | #include <stdlib.h> |
@@ -45,7 +45,7 @@ static Long varbuffer[MAXVAR]; /* variables in an assignment list; | |||
45 | static int nvarbuffer=0; /* number of variables at a list */ | 45 | static int nvarbuffer=0; /* number of variables at a list */ |
46 | 46 | ||
47 | #define MAXLOCALS 32 | 47 | #define MAXLOCALS 32 |
48 | static TreeNode *localvar[MAXLOCALS]; /* store local variable names */ | 48 | static TaggedString *localvar[MAXLOCALS]; /* store local variable names */ |
49 | static int nlocalvar=0; /* number of local variables */ | 49 | static int nlocalvar=0; /* number of local variables */ |
50 | 50 | ||
51 | #define MAXFIELDS FIELDS_PER_FLUSH*2 | 51 | #define MAXFIELDS FIELDS_PER_FLUSH*2 |
@@ -151,7 +151,7 @@ static void flush_list (int m, int n) | |||
151 | code_byte(n); | 151 | code_byte(n); |
152 | } | 152 | } |
153 | 153 | ||
154 | static void store_localvar (TreeNode *name, int n) | 154 | static void store_localvar (TaggedString *name, int n) |
155 | { | 155 | { |
156 | if (nlocalvar+n < MAXLOCALS) | 156 | if (nlocalvar+n < MAXLOCALS) |
157 | localvar[nlocalvar+n] = name; | 157 | localvar[nlocalvar+n] = name; |
@@ -161,7 +161,7 @@ static void store_localvar (TreeNode *name, int n) | |||
161 | luaI_registerlocalvar(name, lua_linenumber); | 161 | luaI_registerlocalvar(name, lua_linenumber); |
162 | } | 162 | } |
163 | 163 | ||
164 | static void add_localvar (TreeNode *name) | 164 | static void add_localvar (TaggedString *name) |
165 | { | 165 | { |
166 | store_localvar(name, 0); | 166 | store_localvar(name, 0); |
167 | nlocalvar++; | 167 | nlocalvar++; |
@@ -202,7 +202,7 @@ static void code_number (float f) | |||
202 | /* | 202 | /* |
203 | ** Search a local name and if find return its index. If do not find return -1 | 203 | ** Search a local name and if find return its index. If do not find return -1 |
204 | */ | 204 | */ |
205 | static int lua_localname (TreeNode *n) | 205 | static int lua_localname (TaggedString *n) |
206 | { | 206 | { |
207 | int i; | 207 | int i; |
208 | for (i=nlocalvar-1; i >= 0; i--) | 208 | for (i=nlocalvar-1; i >= 0; i--) |
@@ -420,7 +420,7 @@ void lua_parse (TFunc *tf) | |||
420 | Word vWord; | 420 | Word vWord; |
421 | Long vLong; | 421 | Long vLong; |
422 | TFunc *pFunc; | 422 | TFunc *pFunc; |
423 | TreeNode *pNode; | 423 | TaggedString *pTStr; |
424 | } | 424 | } |
425 | 425 | ||
426 | %start functionlist | 426 | %start functionlist |
@@ -433,7 +433,7 @@ void lua_parse (TFunc *tf) | |||
433 | %token FUNCTION | 433 | %token FUNCTION |
434 | %token <vFloat> NUMBER | 434 | %token <vFloat> NUMBER |
435 | %token <vWord> STRING | 435 | %token <vWord> STRING |
436 | %token <pNode> NAME | 436 | %token <pTStr> NAME |
437 | %token <vInt> DEBUG | 437 | %token <vInt> DEBUG |
438 | 438 | ||
439 | %type <vLong> PrepJump | 439 | %type <vLong> PrepJump |