diff options
| -rw-r--r-- | lparser.c | 18 |
1 files changed, 9 insertions, 9 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lparser.c,v 1.1 1998/05/27 13:08:34 roberto Exp roberto $ | 2 | ** $Id: lparser.c,v 1.2 1998/06/24 14:48:15 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 | */ |
| @@ -112,7 +112,7 @@ static void body (LexState *ls, int needself, int line); | |||
| 112 | static void chunk (LexState *ls); | 112 | static void chunk (LexState *ls); |
| 113 | static void constructor (LexState *ls); | 113 | static void constructor (LexState *ls); |
| 114 | static void decinit (LexState *ls, listdesc *d); | 114 | static void decinit (LexState *ls, listdesc *d); |
| 115 | static void exp (LexState *ls, vardesc *v); | 115 | static void exp0 (LexState *ls, vardesc *v); |
| 116 | static void exp1 (LexState *ls); | 116 | static void exp1 (LexState *ls); |
| 117 | static void exp2 (LexState *ls, vardesc *v); | 117 | static void exp2 (LexState *ls, vardesc *v); |
| 118 | static void explist (LexState *ls, listdesc *e); | 118 | static void explist (LexState *ls, listdesc *e); |
| @@ -889,14 +889,14 @@ typedef struct { | |||
| 889 | 889 | ||
| 890 | static void exp1 (LexState *ls) { | 890 | static void exp1 (LexState *ls) { |
| 891 | vardesc v; | 891 | vardesc v; |
| 892 | exp(ls, &v); | 892 | exp0(ls, &v); |
| 893 | lua_pushvar(ls, &v); | 893 | lua_pushvar(ls, &v); |
| 894 | if (is_in(ls->token, expfollow) < 0) | 894 | if (is_in(ls->token, expfollow) < 0) |
| 895 | luaX_error(ls, "ill formed expression"); | 895 | luaX_error(ls, "ill formed expression"); |
| 896 | } | 896 | } |
| 897 | 897 | ||
| 898 | 898 | ||
| 899 | static void exp (LexState *ls, vardesc *v) { | 899 | static void exp0 (LexState *ls, vardesc *v) { |
| 900 | exp2(ls, v); | 900 | exp2(ls, v); |
| 901 | while (ls->token == AND || ls->token == OR) { | 901 | while (ls->token == AND || ls->token == OR) { |
| 902 | int is_and = (ls->token == AND); | 902 | int is_and = (ls->token == AND); |
| @@ -960,9 +960,9 @@ static void exp2 (LexState *ls, vardesc *v) { | |||
| 960 | static void simpleexp (LexState *ls, vardesc *v) { | 960 | static void simpleexp (LexState *ls, vardesc *v) { |
| 961 | check_debugline(ls); | 961 | check_debugline(ls); |
| 962 | switch (ls->token) { | 962 | switch (ls->token) { |
| 963 | case '(': /* simpleexp -> '(' exp ')' */ | 963 | case '(': /* simpleexp -> '(' exp0 ')' */ |
| 964 | next(ls); | 964 | next(ls); |
| 965 | exp(ls, v); | 965 | exp0(ls, v); |
| 966 | check(ls, ')'); | 966 | check(ls, ')'); |
| 967 | break; | 967 | break; |
| 968 | 968 | ||
| @@ -1104,13 +1104,13 @@ static void explist (LexState *ls, listdesc *d) { | |||
| 1104 | 1104 | ||
| 1105 | static void explist1 (LexState *ls, listdesc *d) { | 1105 | static void explist1 (LexState *ls, listdesc *d) { |
| 1106 | vardesc v; | 1106 | vardesc v; |
| 1107 | exp(ls, &v); | 1107 | exp0(ls, &v); |
| 1108 | d->n = 1; | 1108 | d->n = 1; |
| 1109 | while (ls->token == ',') { | 1109 | while (ls->token == ',') { |
| 1110 | d->n++; | 1110 | d->n++; |
| 1111 | lua_pushvar(ls, &v); | 1111 | lua_pushvar(ls, &v); |
| 1112 | next(ls); | 1112 | next(ls); |
| 1113 | exp(ls, &v); | 1113 | exp0(ls, &v); |
| 1114 | } | 1114 | } |
| 1115 | if (v.k == VEXP) | 1115 | if (v.k == VEXP) |
| 1116 | d->pc = v.info; | 1116 | d->pc = v.info; |
| @@ -1241,7 +1241,7 @@ static void part (LexState *ls, constdesc *cd) { | |||
| 1241 | 1241 | ||
| 1242 | case NAME: { | 1242 | case NAME: { |
| 1243 | vardesc v; | 1243 | vardesc v; |
| 1244 | exp(ls, &v); | 1244 | exp0(ls, &v); |
| 1245 | if (ls->token == '=') { | 1245 | if (ls->token == '=') { |
| 1246 | switch (v.k) { | 1246 | switch (v.k) { |
| 1247 | case VGLOBAL: | 1247 | case VGLOBAL: |
