Mercurial > hg-old > index.cgi
diff lwasm/pseudo.c @ 382:eacdae8a1575
Various bugfixes
author | lost@starbug |
---|---|
date | Sat, 15 May 2010 13:39:21 -0600 |
parents | 6b33faa21a0a |
children | af5f2c51db76 |
line wrap: on
line diff
--- a/lwasm/pseudo.c Mon Apr 26 19:56:10 2010 -0600 +++ b/lwasm/pseudo.c Sat May 15 13:39:21 2010 -0600 @@ -88,8 +88,10 @@ lwasm_register_error(as, l, "Bad expression (#%s)", i); break; } - lwasm_save_expr(l, i, e); - i++; + lwasm_save_expr(l, i++, e); + if (**p != ',') + break; + (*p)++; } l -> len = i; @@ -118,11 +120,13 @@ e = lwasm_parse_expr(as, p); if (!e) { - lwasm_register_error(as, l, "Bad expression (#%s)", i); + lwasm_register_error(as, l, "Bad expression (#%d)", i); break; } - lwasm_save_expr(l, i, e); - i++; + lwasm_save_expr(l, i++, e); + if (**p != ',') + break; + (*p)++; } l -> len = i * 2; @@ -154,8 +158,10 @@ lwasm_register_error(as, l, "Bad expression (#%s)", i); break; } - lwasm_save_expr(l, i, e); - i++; + lwasm_save_expr(l, i++, e); + if (**p != ',') + break; + (*p)++; } l -> len = i * 4; @@ -1033,7 +1039,6 @@ PARSEFUNC(pseudo_parse_align) { lw_expr_t e; - if (!**p) { lwasm_register_error(as, l, "Bad operand"); @@ -1041,6 +1046,7 @@ } e = lwasm_parse_expr(as, p); + if (!e) { lwasm_register_error(as, l, "Bad operand");