| 1237 | |
| 1238 | |
| 1239 | static void declarestat (LexState *ls) { |
| 1240 | /* stat -> DECLARE NAME {',' NAME} expr */ |
| 1241 | int nvars = 0; |
| 1242 | int nexps; |
| 1243 | expdesc e1, e2; |
| 1244 | do { |
| 1245 | new_localvar(ls, str_checkname(ls), nvars++); |
| 1246 | } while (testnext(ls, ',')); |
| 1247 | |
| 1248 | /* get the type */ |
| 1249 | expr(ls, &e1); |
| 1250 | init_exp(&e2, VNIL, 0); |
| 1251 | codearith(ls->fs, OP_CAST, &e2, &e1); |
| 1252 | |
| 1253 | /* generate typed assingnment */ |
| 1254 | for (nexps = 1; nexps < nvars; ++nexps) { |
| 1255 | luaK_exp2nextreg(ls->fs, &e2); |
| 1256 | init_exp(&e2, VNIL, 0); |
| 1257 | codearith(ls->fs, OP_CAST, &e2, &e1); |
| 1258 | } |
| 1259 | |
| 1260 | adjust_assign(ls, nvars, nexps, &e2); |
| 1261 | adjustlocalvars(ls, nvars); |
| 1262 | } |
| 1263 | |
| 1264 | |
| 1265 | static void localstat (LexState *ls) { |
no test coverage detected