#define yyerrok (yyerrflag=0)
#define YYRECOVERING (yyerrflag!=0)
#define YYPREFIX "yy"
-/* NetHack 3.6 lev_comp.y $NHDT-Date: 1455747019 2016/02/17 22:10:19 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.22 $ */
+/* NetHack 3.6 lev_comp.y $NHDT-Date: 1551901401 2019/03/06 19:43:21 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.26 $ */
/* Copyright (c) 1989 by Jean-Christophe Collet */
/* NetHack may be freely redistributed. See license for details. */
int in_container_obj = 0;
-/* integer value is possibly an inconstant value (eg. dice notation or a variable) */
+/* integer value is possibly an inconstant value (eg. dice notation
+ or a variable) */
int is_inconstant_number = 0;
int in_switch_statement = 0;
int allow_break_statements = 0;
struct lc_breakdef *break_list = NULL;
-extern struct lc_vardefs *variable_definitions;
+extern struct lc_vardefs *vardefs; /* variable definitions */
struct lc_vardefs *function_tmp_var_defs = NULL;
typedef union
{
- long i;
- char* map;
- struct {
- long room;
- long wall;
- long door;
- } corpos;
+ long i;
+ char *map;
struct {
- long area;
- long x1;
- long y1;
- long x2;
- long y2;
+ long room;
+ long wall;
+ long door;
+ } corpos;
+ struct {
+ long area;
+ long x1;
+ long y1;
+ long x2;
+ long y2;
} lregn;
struct {
- long x;
- long y;
+ long x;
+ long y;
} crd;
struct {
- long ter;
- long lit;
+ long ter;
+ long lit;
} terr;
struct {
- long height;
- long width;
+ long height;
+ long width;
} sze;
struct {
- long die;
- long num;
+ long die;
+ long num;
} dice;
struct {
- long cfunc;
- char *varstr;
+ long cfunc;
+ char *varstr;
} meth;
} YYSTYPE;
#define CHAR 257
{
if (fatal_error > 0) {
(void) fprintf(stderr,
- "%s: %d errors detected for level \"%s\". No output created!\n",
+ "%s: %d errors detected for level \"%s\". No output created!\n",
fname, fatal_error, yyvsp[-2].map);
fatal_error = 0;
got_errors++;
} else if (!got_errors) {
if (!write_level_file(yyvsp[-2].map, splev)) {
- lc_error("Can't write output file for '%s'!", yyvsp[-2].map);
+ lc_error("Can't write output file for '%s'!",
+ yyvsp[-2].map);
exit(EXIT_FAILURE);
}
}
Free(yyvsp[-2].map);
Free(splev);
splev = NULL;
- vardef_free_all(variable_definitions);
- variable_definitions = NULL;
+ vardef_free_all(vardefs);
+ vardefs = NULL;
}
break;
case 6:
start_level_def(&splev, yyvsp[-2].map);
if (yyvsp[0].i == -1) {
add_opvars(splev, "iiiiiiiio",
- VA_PASS9(LVLINIT_MAZEGRID,HWALL,0,0,
+ VA_PASS9(LVLINIT_MAZEGRID, HWALL, 0,0,
0,0,0,0, SPO_INITLEVEL));
} else {
- long bg = what_map_char((char) yyvsp[0].i);
+ int bg = (int) what_map_char((char) yyvsp[0].i);
+
add_opvars(splev, "iiiiiiiio",
VA_PASS9(LVLINIT_SOLIDFILL, bg, 0,0,
0,0,0,0, SPO_INITLEVEL));
break;
case 10:
{
- long filling = yyvsp[0].terr.ter;
+ int filling = (int) yyvsp[0].terr.ter;
+
if (filling == INVALID_TYPE || filling >= MAX_TYPE)
lc_error("INIT_MAP: Invalid fill char type.");
add_opvars(splev, "iiiiiiiio",
- LVLINIT_SOLIDFILL,filling,0,(long)yyvsp[0].terr.lit, 0,0,0,0, SPO_INITLEVEL);
+ VA_PASS9(LVLINIT_SOLIDFILL, filling,
+ 0, (int) yyvsp[0].terr.lit,
+ 0,0,0,0, SPO_INITLEVEL));
max_x_map = COLNO-1;
max_y_map = ROWNO;
}
break;
case 11:
{
- long filling = what_map_char((char) yyvsp[0].i);
+ int filling = (int) what_map_char((char) yyvsp[0].i);
+
if (filling == INVALID_TYPE || filling >= MAX_TYPE)
lc_error("INIT_MAP: Invalid fill char type.");
- add_opvars(splev, "iiiiiiiio",
- VA_PASS9(LVLINIT_MAZEGRID,filling,0,0,
+ add_opvars(splev, "iiiiiiiio",
+ VA_PASS9(LVLINIT_MAZEGRID, filling, 0,0,
0,0,0,0, SPO_INITLEVEL));
max_x_map = COLNO-1;
max_y_map = ROWNO;
break;
case 13:
{
- long fg = what_map_char((char) yyvsp[-11].i);
- long bg = what_map_char((char) yyvsp[-9].i);
- long smoothed = yyvsp[-7].i;
- long joined = yyvsp[-5].i;
- long lit = yyvsp[-3].i;
- long walled = yyvsp[-1].i;
- long filling = yyvsp[0].i;
+ int fg = (int) what_map_char((char) yyvsp[-11].i),
+ bg = (int) what_map_char((char) yyvsp[-9].i);
+ int smoothed = (int) yyvsp[-7].i,
+ joined = (int) yyvsp[-5].i,
+ lit = (int) yyvsp[-3].i,
+ walled = (int) yyvsp[-1].i,
+ filling = (int) yyvsp[0].i;
+
if (fg == INVALID_TYPE || fg >= MAX_TYPE)
lc_error("INIT_MAP: Invalid foreground type.");
if (bg == INVALID_TYPE || bg >= MAX_TYPE)
lc_error("INIT_MAP: Invalid fill char type.");
add_opvars(splev, "iiiiiiiio",
- VA_PASS9(LVLINIT_MINES,filling,walled,lit,
- joined,smoothed,bg,fg,
+ VA_PASS9(LVLINIT_MINES, filling, walled, lit,
+ joined, smoothed, bg, fg,
SPO_INITLEVEL));
max_x_map = COLNO-1;
max_y_map = ROWNO;
break;
case 23:
{
- add_opvars(splev, "io", VA_PASS2(yyvsp[0].i, SPO_LEVEL_FLAGS));
+ add_opvars(splev, "io",
+ VA_PASS2((int) yyvsp[0].i, SPO_LEVEL_FLAGS));
}
break;
case 24:
case 96:
{
struct lc_vardefs *vd;
- if ((vd = vardef_defined(variable_definitions, yyvsp[0].map, 1))) {
+
+ if ((vd = vardef_defined(vardefs, yyvsp[0].map, 1))) {
if (!(vd->var_type & SPOVAR_ARRAY))
- lc_error("Trying to shuffle non-array variable '%s'", yyvsp[0].map);
- } else lc_error("Trying to shuffle undefined variable '%s'", yyvsp[0].map);
+ lc_error("Trying to shuffle non-array variable '%s'",
+ yyvsp[0].map);
+ } else
+ lc_error("Trying to shuffle undefined variable '%s'",
+ yyvsp[0].map);
add_opvars(splev, "so", VA_PASS2(yyvsp[0].map, SPO_SHUFFLE_ARRAY));
Free(yyvsp[0].map);
}
break;
case 97:
{
- variable_definitions = add_vardef_type(variable_definitions, yyvsp[-2].map, SPOVAR_INT);
+ vardefs = add_vardef_type(vardefs, yyvsp[-2].map, SPOVAR_INT);
add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-2].map, SPO_VAR_INIT));
Free(yyvsp[-2].map);
}
break;
case 98:
{
- variable_definitions = add_vardef_type(variable_definitions, yyvsp[-4].map, SPOVAR_SEL);
+ vardefs = add_vardef_type(vardefs, yyvsp[-4].map, SPOVAR_SEL);
add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-4].map, SPO_VAR_INIT));
Free(yyvsp[-4].map);
}
break;
case 99:
{
- variable_definitions = add_vardef_type(variable_definitions, yyvsp[-2].map, SPOVAR_STRING);
+ vardefs = add_vardef_type(vardefs, yyvsp[-2].map, SPOVAR_STRING);
add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-2].map, SPO_VAR_INIT));
Free(yyvsp[-2].map);
}
break;
case 100:
{
- variable_definitions = add_vardef_type(variable_definitions, yyvsp[-4].map, SPOVAR_MAPCHAR);
+ vardefs = add_vardef_type(vardefs, yyvsp[-4].map, SPOVAR_MAPCHAR);
add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-4].map, SPO_VAR_INIT));
Free(yyvsp[-4].map);
}
break;
case 101:
{
- variable_definitions = add_vardef_type(variable_definitions, yyvsp[-4].map, SPOVAR_MONST);
+ vardefs = add_vardef_type(vardefs, yyvsp[-4].map, SPOVAR_MONST);
add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-4].map, SPO_VAR_INIT));
Free(yyvsp[-4].map);
}
break;
case 102:
{
- variable_definitions = add_vardef_type(variable_definitions, yyvsp[-4].map, SPOVAR_OBJ);
+ vardefs = add_vardef_type(vardefs, yyvsp[-4].map, SPOVAR_OBJ);
add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-4].map, SPO_VAR_INIT));
Free(yyvsp[-4].map);
}
break;
case 103:
{
- variable_definitions = add_vardef_type(variable_definitions, yyvsp[-2].map, SPOVAR_COORD);
+ vardefs = add_vardef_type(vardefs, yyvsp[-2].map, SPOVAR_COORD);
add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-2].map, SPO_VAR_INIT));
Free(yyvsp[-2].map);
}
break;
case 104:
{
- variable_definitions = add_vardef_type(variable_definitions, yyvsp[-2].map, SPOVAR_REGION);
+ vardefs = add_vardef_type(vardefs, yyvsp[-2].map, SPOVAR_REGION);
add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-2].map, SPO_VAR_INIT));
Free(yyvsp[-2].map);
}
break;
case 105:
{
- long n_items = yyvsp[-1].i;
- variable_definitions = add_vardef_type(variable_definitions, yyvsp[-4].map, SPOVAR_INT|SPOVAR_ARRAY);
+ int n_items = (int) yyvsp[-1].i;
+
+ vardefs = add_vardef_type(vardefs, yyvsp[-4].map,
+ SPOVAR_INT | SPOVAR_ARRAY);
add_opvars(splev, "iso",
VA_PASS3(n_items, yyvsp[-4].map, SPO_VAR_INIT));
Free(yyvsp[-4].map);
break;
case 106:
{
- long n_items = yyvsp[-1].i;
- variable_definitions = add_vardef_type(variable_definitions, yyvsp[-4].map, SPOVAR_COORD|SPOVAR_ARRAY);
+ int n_items = (int) yyvsp[-1].i;
+
+ vardefs = add_vardef_type(vardefs, yyvsp[-4].map,
+ SPOVAR_COORD | SPOVAR_ARRAY);
add_opvars(splev, "iso",
VA_PASS3(n_items, yyvsp[-4].map, SPO_VAR_INIT));
Free(yyvsp[-4].map);
break;
case 107:
{
- long n_items = yyvsp[-1].i;
- variable_definitions = add_vardef_type(variable_definitions, yyvsp[-4].map, SPOVAR_REGION|SPOVAR_ARRAY);
+ int n_items = (int) yyvsp[-1].i;
+
+ vardefs = add_vardef_type(vardefs, yyvsp[-4].map,
+ SPOVAR_REGION | SPOVAR_ARRAY);
add_opvars(splev, "iso",
VA_PASS3(n_items, yyvsp[-4].map, SPO_VAR_INIT));
Free(yyvsp[-4].map);
break;
case 108:
{
- long n_items = yyvsp[-1].i;
- variable_definitions = add_vardef_type(variable_definitions, yyvsp[-6].map, SPOVAR_MAPCHAR|SPOVAR_ARRAY);
+ int n_items = (int) yyvsp[-1].i;
+
+ vardefs = add_vardef_type(vardefs, yyvsp[-6].map,
+ SPOVAR_MAPCHAR | SPOVAR_ARRAY);
add_opvars(splev, "iso",
VA_PASS3(n_items, yyvsp[-6].map, SPO_VAR_INIT));
Free(yyvsp[-6].map);
break;
case 109:
{
- long n_items = yyvsp[-1].i;
- variable_definitions = add_vardef_type(variable_definitions, yyvsp[-6].map, SPOVAR_MONST|SPOVAR_ARRAY);
+ int n_items = (int) yyvsp[-1].i;
+
+ vardefs = add_vardef_type(vardefs, yyvsp[-6].map,
+ SPOVAR_MONST | SPOVAR_ARRAY);
add_opvars(splev, "iso",
VA_PASS3(n_items, yyvsp[-6].map, SPO_VAR_INIT));
Free(yyvsp[-6].map);
break;
case 110:
{
- long n_items = yyvsp[-1].i;
- variable_definitions = add_vardef_type(variable_definitions, yyvsp[-6].map, SPOVAR_OBJ|SPOVAR_ARRAY);
+ int n_items = (int) yyvsp[-1].i;
+
+ vardefs = add_vardef_type(vardefs, yyvsp[-6].map,
+ SPOVAR_OBJ | SPOVAR_ARRAY);
add_opvars(splev, "iso",
VA_PASS3(n_items, yyvsp[-6].map, SPO_VAR_INIT));
Free(yyvsp[-6].map);
break;
case 111:
{
- long n_items = yyvsp[-1].i;
- variable_definitions = add_vardef_type(variable_definitions, yyvsp[-4].map, SPOVAR_STRING|SPOVAR_ARRAY);
+ int n_items = (int) yyvsp[-1].i;
+
+ vardefs = add_vardef_type(vardefs, yyvsp[-4].map,
+ SPOVAR_STRING | SPOVAR_ARRAY);
add_opvars(splev, "iso",
VA_PASS3(n_items, yyvsp[-4].map, SPO_VAR_INIT));
Free(yyvsp[-4].map);
splev = &(funcdef->code);
Free(yyvsp[-1].map);
curr_function = funcdef;
- function_tmp_var_defs = variable_definitions;
- variable_definitions = NULL;
+ function_tmp_var_defs = vardefs;
+ vardefs = NULL;
}
break;
case 127:
splev = function_splev_backup;
in_function_definition--;
curr_function = NULL;
- vardef_free_all(variable_definitions);
- variable_definitions = function_tmp_var_defs;
+ vardef_free_all(vardefs);
+ vardefs = function_tmp_var_defs;
}
break;
case 129:
{
struct lc_funcdefs *tmpfunc;
+
tmpfunc = funcdef_defined(function_definitions, yyvsp[-3].map, 1);
if (tmpfunc) {
- long l;
- long nparams = strlen( yyvsp[-1].map );
+ int l;
+ int nparams = (int) strlen(yyvsp[-1].map);
char *fparamstr = funcdef_paramtypes(tmpfunc);
+
if (strcmp(yyvsp[-1].map, fparamstr)) {
char *tmps = strdup(decode_parm_str(fparamstr));
- lc_error("Function '%s' requires params '%s', got '%s' instead.", yyvsp[-3].map, tmps, decode_parm_str(yyvsp[-1].map));
+
+ lc_error("Function '%s' requires params '%s', got '%s' instead.",
+ yyvsp[-3].map, tmps, decode_parm_str(yyvsp[-1].map));
Free(tmps);
}
Free(fparamstr);
if (!(tmpfunc->n_called)) {
/* we haven't called the function yet, so insert it in the code */
struct opvar *jmp = New(struct opvar);
+
set_opvar_int(jmp, splev->n_opcodes+1);
add_opcode(splev, SPO_PUSH, jmp);
- add_opcode(splev, SPO_JMP, NULL); /* we must jump past it first, then CALL it, due to RETURN. */
+ /* we must jump past it first, then CALL it, due to RETURN. */
+ add_opcode(splev, SPO_JMP, NULL);
tmpfunc->addr = splev->n_opcodes;
}
splev_add_from(splev, &(tmpfunc->code));
- set_opvar_int(jmp, splev->n_opcodes - jmp->vardata.l);
+ set_opvar_int(jmp,
+ splev->n_opcodes - jmp->vardata.l);
}
- l = tmpfunc->addr - splev->n_opcodes - 2;
+ l = (int) (tmpfunc->addr - splev->n_opcodes - 2);
add_opvars(splev, "iio",
VA_PASS3(nparams, l, SPO_CALL));
tmpfunc->n_called++;
{
/* val > rn2(100) */
add_opvars(splev, "iio",
- VA_PASS3((long)yyvsp[0].i, 100, SPO_RN2));
+ VA_PASS3((int) yyvsp[0].i, 100, SPO_RN2));
yyval.i = SPO_JG;
}
break;
case 137:
{
struct opvar *chkjmp;
+
if (in_switch_statement > 0)
lc_error("Cannot nest switch-statements.");
{
if (n_switch_case_list < MAX_SWITCH_CASES) {
struct opvar *tmppush = New(struct opvar);
+
set_opvar_int(tmppush, splev->n_opcodes);
switch_case_value[n_switch_case_list] = yyvsp[-1].i;
switch_case_list[n_switch_case_list++] = tmppush;
/* the value of which is already in stack (the 2nd math_expr) */
add_opvars(splev, "iso", VA_PASS3(0, buf, SPO_VAR_INIT));
- variable_definitions = add_vardef_type(variable_definitions,
- yyvsp[-4].map, SPOVAR_INT);
+ vardefs = add_vardef_type(vardefs, yyvsp[-4].map, SPOVAR_INT);
/* define the for-loop variable. value is in stack (1st math_expr) */
add_opvars(splev, "iso", VA_PASS3(0, yyvsp[-4].map, SPO_VAR_INIT));
break;
case 150:
{
+ int l;
char buf[256], buf2[256];
n_forloops--;
VA_PASS3(0, forloop_list[n_forloops].varname,
SPO_VAR_INIT));
/* jump back if compared values were not equal */
- add_opvars(splev, "io",
- VA_PASS2(
- forloop_list[n_forloops].jmp_point - splev->n_opcodes - 1,
- SPO_JNE));
+ l = (int) (forloop_list[n_forloops].jmp_point
+ - splev->n_opcodes - 1);
+ add_opvars(splev, "io", VA_PASS2(l, SPO_JNE));
Free(forloop_list[n_forloops].varname);
break_stmt_end(splev);
}
add_opvars(splev, "oio", VA_PASS3(SPO_COPY, 0, SPO_CMP));
tmppush = (struct opvar *) if_list[--n_if_list];
- set_opvar_int(tmppush, tmppush->vardata.l - splev->n_opcodes-1);
+ set_opvar_int(tmppush,
+ tmppush->vardata.l - splev->n_opcodes-1);
add_opcode(splev, SPO_PUSH, tmppush);
add_opcode(splev, SPO_JG, NULL);
- add_opcode(splev, SPO_POP, NULL); /* get rid of the count value in stack */
+ add_opcode(splev, SPO_POP, NULL); /* discard count */
break_stmt_end(splev);
}
break;
{
if (n_if_list > 0) {
struct opvar *tmppush;
+
tmppush = (struct opvar *) if_list[--n_if_list];
- set_opvar_int(tmppush, splev->n_opcodes - tmppush->vardata.l);
+ set_opvar_int(tmppush,
+ splev->n_opcodes - tmppush->vardata.l);
} else lc_error("IF: Huh?! No start address?");
}
break;
{
if (n_if_list > 0) {
struct opvar *tmppush;
+
tmppush = (struct opvar *) if_list[--n_if_list];
- set_opvar_int(tmppush, splev->n_opcodes - tmppush->vardata.l);
+ set_opvar_int(tmppush,
+ splev->n_opcodes - tmppush->vardata.l);
} else lc_error("IF: Huh?! No start address?");
}
break;
tmppush2 = (struct opvar *) if_list[--n_if_list];
- set_opvar_int(tmppush2, splev->n_opcodes - tmppush2->vardata.l);
+ set_opvar_int(tmppush2,
+ splev->n_opcodes - tmppush2->vardata.l);
if_list[n_if_list++] = tmppush;
} else lc_error("IF: Huh?! No else-part address?");
}
case 192:
{
add_opvars(splev, "ciisiio",
- VA_PASS7(0, 0, 1, (char *)0, 0, 0, SPO_MAP));
+ VA_PASS7(0, 0, 1, (char *) 0, 0, 0, SPO_MAP));
max_x_map = COLNO-1;
max_y_map = ROWNO;
}
case 193:
{
add_opvars(splev, "cii",
- VA_PASS3(SP_COORD_PACK((yyvsp[-4].i),(yyvsp[-2].i)),
- 1, (long)yyvsp[-1].i));
+ VA_PASS3(SP_COORD_PACK((yyvsp[-4].i), (yyvsp[-2].i)),
+ 1, (int) yyvsp[-1].i));
scan_map(yyvsp[0].map, splev);
Free(yyvsp[0].map);
}
break;
case 194:
{
- add_opvars(splev, "ii", VA_PASS2(2, (long)yyvsp[-1].i));
+ add_opvars(splev, "ii", VA_PASS2(2, (int) yyvsp[-1].i));
scan_map(yyvsp[0].map, splev);
Free(yyvsp[0].map);
}
case 203:
{
struct opvar *stopit = New(struct opvar);
+
set_opvar_int(stopit, SP_M_V_END);
add_opcode(splev, SPO_PUSH, stopit);
yyval.i = 0x0000;
case 206:
{
add_opvars(splev, "ii",
- VA_PASS2((long)yyvsp[0].i, SP_M_V_PEACEFUL));
+ VA_PASS2((int) yyvsp[0].i, SP_M_V_PEACEFUL));
yyval.i = 0x0002;
}
break;
case 207:
{
add_opvars(splev, "ii",
- VA_PASS2((long)yyvsp[0].i, SP_M_V_ASLEEP));
+ VA_PASS2((int) yyvsp[0].i, SP_M_V_ASLEEP));
yyval.i = 0x0004;
}
break;
case 208:
{
add_opvars(splev, "ii",
- VA_PASS2((long)yyvsp[0].i, SP_M_V_ALIGN));
+ VA_PASS2((int) yyvsp[0].i, SP_M_V_ALIGN));
yyval.i = 0x0008;
}
break;
case 209:
{
add_opvars(splev, "ii",
- VA_PASS2((long)yyvsp[-1].i, SP_M_V_APPEAR));
+ VA_PASS2((int) yyvsp[-1].i, SP_M_V_APPEAR));
yyval.i = 0x0010;
}
break;
case 220:
{
add_opvars(splev, "ii",
- VA_PASS2((long)yyvsp[0].i, SP_M_V_SEENTRAPS));
+ VA_PASS2((int) yyvsp[0].i, SP_M_V_SEENTRAPS));
yyval.i = 0x8000;
}
break;
case 221:
{
int token = get_trap_type(yyvsp[0].map);
+
if (token == ERR || token == 0)
lc_error("Unknown trap type '%s'!", yyvsp[0].map);
Free(yyvsp[0].map);
break;
case 224:
{
- long cnt = 0;
- if (in_container_obj) cnt |= SP_OBJ_CONTENT;
+ int cnt = 0;
+
+ if (in_container_obj)
+ cnt |= SP_OBJ_CONTENT;
add_opvars(splev, "io", VA_PASS2(cnt, SPO_OBJECT));
}
break;
case 225:
{
- long cnt = SP_OBJ_CONTAINER;
- if (in_container_obj) cnt |= SP_OBJ_CONTENT;
+ int cnt = SP_OBJ_CONTAINER;
+
+ if (in_container_obj)
+ cnt |= SP_OBJ_CONTENT;
add_opvars(splev, "io", VA_PASS2(cnt, SPO_OBJECT));
in_container_obj++;
break_stmt_start();
case 230:
{
add_opvars(splev, "ii",
- VA_PASS2((long)yyvsp[0].i, SP_O_V_CURSE));
+ VA_PASS2((int) yyvsp[0].i, SP_O_V_CURSE));
yyval.i = 0x0001;
}
break;
break;
case 236:
{
- add_opvars(splev, "ii", VA_PASS2((long)yyvsp[0].i, SP_O_V_LIT));
+ add_opvars(splev, "ii", VA_PASS2((int) yyvsp[0].i, SP_O_V_LIT));
yyval.i = 0x0040;
}
break;
break;
case 240:
{
- add_opvars(splev, "ii", VA_PASS2(yyvsp[0].i, SP_O_V_TRAPPED));
+ add_opvars(splev, "ii",
+ VA_PASS2((int) yyvsp[0].i, SP_O_V_TRAPPED));
yyval.i = 0x0400;
}
break;
break;
case 245:
{
- add_opvars(splev, "io", VA_PASS2((long)yyvsp[-2].i, SPO_TRAP));
+ add_opvars(splev, "io", VA_PASS2((int) yyvsp[-2].i, SPO_TRAP));
}
break;
case 246:
case 247:
{
add_opvars(splev, "iiio",
- VA_PASS4((long)yyvsp[0].i, 1, 0, SPO_MAZEWALK));
+ VA_PASS4((int) yyvsp[0].i, 1, 0, SPO_MAZEWALK));
}
break;
case 248:
{
add_opvars(splev, "iiio",
- VA_PASS4((long)yyvsp[-3].i, (long)yyvsp[-1].i,
- (long)yyvsp[0].i, SPO_MAZEWALK));
+ VA_PASS4((int) yyvsp[-3].i, (int) yyvsp[-1].i,
+ (int) yyvsp[0].i, SPO_MAZEWALK));
}
break;
case 249:
case 251:
{
add_opvars(splev, "io",
- VA_PASS2((long)yyvsp[0].i, SPO_LADDER));
+ VA_PASS2((int) yyvsp[0].i, SPO_LADDER));
}
break;
case 252:
{
add_opvars(splev, "io",
- VA_PASS2((long)yyvsp[0].i, SPO_STAIR));
+ VA_PASS2((int) yyvsp[0].i, SPO_STAIR));
}
break;
case 253:
break;
case 305:
{
- check_vardef_type(variable_definitions, yyvsp[0].map, SPOVAR_STRING);
- vardef_used(variable_definitions, yyvsp[0].map);
+ check_vardef_type(vardefs, yyvsp[0].map, SPOVAR_STRING);
+ vardef_used(vardefs, yyvsp[0].map);
add_opvars(splev, "v", VA_PASS1(yyvsp[0].map));
Free(yyvsp[0].map);
}
break;
case 306:
{
- check_vardef_type(variable_definitions, yyvsp[-3].map, SPOVAR_STRING|SPOVAR_ARRAY);
- vardef_used(variable_definitions, yyvsp[-3].map);
+ check_vardef_type(vardefs, yyvsp[-3].map,
+ SPOVAR_STRING | SPOVAR_ARRAY);
+ vardef_used(vardefs, yyvsp[-3].map);
add_opvars(splev, "v", VA_PASS1(yyvsp[-3].map));
Free(yyvsp[-3].map);
}
break;
case 310:
{
- check_vardef_type(variable_definitions, yyvsp[0].map, SPOVAR_COORD);
- vardef_used(variable_definitions, yyvsp[0].map);
+ check_vardef_type(vardefs, yyvsp[0].map, SPOVAR_COORD);
+ vardef_used(vardefs, yyvsp[0].map);
add_opvars(splev, "v", VA_PASS1(yyvsp[0].map));
Free(yyvsp[0].map);
}
break;
case 311:
{
- check_vardef_type(variable_definitions, yyvsp[-3].map, SPOVAR_COORD|SPOVAR_ARRAY);
- vardef_used(variable_definitions, yyvsp[-3].map);
+ check_vardef_type(vardefs, yyvsp[-3].map,
+ SPOVAR_COORD | SPOVAR_ARRAY);
+ vardef_used(vardefs, yyvsp[-3].map);
add_opvars(splev, "v", VA_PASS1(yyvsp[-3].map));
Free(yyvsp[-3].map);
}
case 312:
{
if (yyvsp[-3].i < 0 || yyvsp[-1].i < 0 || yyvsp[-3].i >= COLNO || yyvsp[-1].i >= ROWNO)
- lc_error("Coordinates (%li,%li) out of map range!", yyvsp[-3].i, yyvsp[-1].i);
+ lc_error("Coordinates (%li,%li) out of map range!",
+ yyvsp[-3].i, yyvsp[-1].i);
yyval.i = SP_COORD_PACK(yyvsp[-3].i, yyvsp[-1].i);
}
break;
break;
case 314:
{
- yyval.i = SP_COORD_PACK_RANDOM( yyvsp[-1].i );
+ yyval.i = SP_COORD_PACK_RANDOM(yyvsp[-1].i);
}
break;
case 315:
break;
case 318:
{
- check_vardef_type(variable_definitions, yyvsp[0].map, SPOVAR_REGION);
- vardef_used(variable_definitions, yyvsp[0].map);
+ check_vardef_type(vardefs, yyvsp[0].map, SPOVAR_REGION);
+ vardef_used(vardefs, yyvsp[0].map);
add_opvars(splev, "v", VA_PASS1(yyvsp[0].map));
Free(yyvsp[0].map);
}
break;
case 319:
{
- check_vardef_type(variable_definitions, yyvsp[-3].map, SPOVAR_REGION|SPOVAR_ARRAY);
- vardef_used(variable_definitions, yyvsp[-3].map);
+ check_vardef_type(vardefs, yyvsp[-3].map,
+ SPOVAR_REGION | SPOVAR_ARRAY);
+ vardef_used(vardefs, yyvsp[-3].map);
add_opvars(splev, "v", VA_PASS1(yyvsp[-3].map));
Free(yyvsp[-3].map);
}
case 320:
{
long r = SP_REGION_PACK(yyvsp[-7].i, yyvsp[-5].i, yyvsp[-3].i, yyvsp[-1].i);
- if ( yyvsp[-7].i > yyvsp[-3].i || yyvsp[-5].i > yyvsp[-1].i )
- lc_error("Region start > end: (%li,%li,%li,%li)!", yyvsp[-7].i, yyvsp[-5].i, yyvsp[-3].i, yyvsp[-1].i);
+
+ if (yyvsp[-7].i > yyvsp[-3].i || yyvsp[-5].i > yyvsp[-1].i)
+ lc_error("Region start > end: (%ld,%ld,%ld,%ld)!",
+ yyvsp[-7].i, yyvsp[-5].i, yyvsp[-3].i, yyvsp[-1].i);
add_opvars(splev, "r", VA_PASS1(r));
yyval.i = r;
break;
case 322:
{
- check_vardef_type(variable_definitions, yyvsp[0].map, SPOVAR_MAPCHAR);
- vardef_used(variable_definitions, yyvsp[0].map);
+ check_vardef_type(vardefs, yyvsp[0].map, SPOVAR_MAPCHAR);
+ vardef_used(vardefs, yyvsp[0].map);
add_opvars(splev, "v", VA_PASS1(yyvsp[0].map));
Free(yyvsp[0].map);
}
break;
case 323:
{
- check_vardef_type(variable_definitions, yyvsp[-3].map, SPOVAR_MAPCHAR|SPOVAR_ARRAY);
- vardef_used(variable_definitions, yyvsp[-3].map);
+ check_vardef_type(vardefs, yyvsp[-3].map,
+ SPOVAR_MAPCHAR | SPOVAR_ARRAY);
+ vardef_used(vardefs, yyvsp[-3].map);
add_opvars(splev, "v", VA_PASS1(yyvsp[-3].map));
Free(yyvsp[-3].map);
}
break;
case 327:
{
- check_vardef_type(variable_definitions, yyvsp[0].map, SPOVAR_MONST);
- vardef_used(variable_definitions, yyvsp[0].map);
+ check_vardef_type(vardefs, yyvsp[0].map, SPOVAR_MONST);
+ vardef_used(vardefs, yyvsp[0].map);
add_opvars(splev, "v", VA_PASS1(yyvsp[0].map));
Free(yyvsp[0].map);
}
break;
case 328:
{
- check_vardef_type(variable_definitions, yyvsp[-3].map, SPOVAR_MONST|SPOVAR_ARRAY);
- vardef_used(variable_definitions, yyvsp[-3].map);
+ check_vardef_type(vardefs, yyvsp[-3].map,
+ SPOVAR_MONST | SPOVAR_ARRAY);
+ vardef_used(vardefs, yyvsp[-3].map);
add_opvars(splev, "v", VA_PASS1(yyvsp[-3].map));
Free(yyvsp[-3].map);
}
break;
case 334:
{
- check_vardef_type(variable_definitions, yyvsp[0].map, SPOVAR_OBJ);
- vardef_used(variable_definitions, yyvsp[0].map);
+ check_vardef_type(vardefs, yyvsp[0].map, SPOVAR_OBJ);
+ vardef_used(vardefs, yyvsp[0].map);
add_opvars(splev, "v", VA_PASS1(yyvsp[0].map));
Free(yyvsp[0].map);
}
break;
case 335:
{
- check_vardef_type(variable_definitions, yyvsp[-3].map, SPOVAR_OBJ|SPOVAR_ARRAY);
- vardef_used(variable_definitions, yyvsp[-3].map);
+ check_vardef_type(vardefs, yyvsp[-3].map,
+ SPOVAR_OBJ | SPOVAR_ARRAY);
+ vardef_used(vardefs, yyvsp[-3].map);
add_opvars(splev, "v", VA_PASS1(yyvsp[-3].map));
Free(yyvsp[-3].map);
}
lc_error("Unknown object \"%s\"!", yyvsp[0].map);
yyval.i = -1;
} else
- yyval.i = SP_OBJ_PACK(m, 1); /* obj class != 0 to force generation of a specific item */
+ /* obj class != 0 to force generation of a specific item */
+ yyval.i = SP_OBJ_PACK(m, 1);
Free(yyvsp[0].map);
}
break;
break;
case 345:
{
- check_vardef_type(variable_definitions, yyvsp[0].map, SPOVAR_INT);
- vardef_used(variable_definitions, yyvsp[0].map);
+ check_vardef_type(vardefs, yyvsp[0].map, SPOVAR_INT);
+ vardef_used(vardefs, yyvsp[0].map);
add_opvars(splev, "v", VA_PASS1(yyvsp[0].map));
Free(yyvsp[0].map);
is_inconstant_number = 1;
break;
case 346:
{
- check_vardef_type(variable_definitions,
- yyvsp[-3].map, SPOVAR_INT|SPOVAR_ARRAY);
- vardef_used(variable_definitions, yyvsp[-3].map);
+ check_vardef_type(vardefs, yyvsp[-3].map,
+ SPOVAR_INT | SPOVAR_ARRAY);
+ vardef_used(vardefs, yyvsp[-3].map);
add_opvars(splev, "v", VA_PASS1(yyvsp[-3].map));
Free(yyvsp[-3].map);
is_inconstant_number = 1;
lc_error("Unknown func param conversion.");
break;
}
- variable_definitions = add_vardef_type(
- variable_definitions,
- yyvsp[-2].map, vt);
+ vardefs = add_vardef_type( vardefs, yyvsp[-2].map, vt);
}
Free(yyvsp[-2].map);
}
break;
case 383:
{
- check_vardef_type(variable_definitions, yyvsp[0].map, SPOVAR_SEL);
- vardef_used(variable_definitions, yyvsp[0].map);
+ check_vardef_type(vardefs, yyvsp[0].map, SPOVAR_SEL);
+ vardef_used(vardefs, yyvsp[0].map);
add_opvars(splev, "v", VA_PASS1(yyvsp[0].map));
Free(yyvsp[0].map);
}