diff options
Diffstat (limited to 'lparser.c')
-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: |