case 1:
# line 123 "grammar.y"
{ prog = make_prog(yypvt[-3].num, yypvt[-2].args, yypvt[-1].id_list, yypvt[-0].stmt_list); } break;
case 2:
# line 126 "grammar.y"
{ yyval.num = 1; } break;
case 3:
# line 127 "grammar.y"
{ yyval.num = 0; } break;
case 4:
# line 130 "grammar.y"
{ yyval.args = arguments(NULL, NULL); } break;
case 5:
# line 131 "grammar.y"
{ yyval.args = arguments(NULL, yypvt[-2].s); } break;
case 6:
# line 132 "grammar.y"
{ yyval.args = arguments(yypvt[-1].id_list, NULL); } break;
case 7:
# line 134 "grammar.y"
{ yyval.args = arguments(yypvt[-5].id_list, yypvt[-2].s); } break;
case 8:
# line 137 "grammar.y"
{ yyval.id_list = NULL; } break;
case 9:
# line 138 "grammar.y"
{ yyval.id_list = yypvt[-1].id_list; } break;
case 10:
# line 141 "grammar.y"
{ yyval.id_list = id_list(yypvt[-0].s, NULL); } break;
case 11:
# line 142 "grammar.y"
{ yyval.id_list = id_list(yypvt[-0].s, yypvt[-2].id_list); } break;
case 12:
# line 145 "grammar.y"
{ yyval.id_list = NULL; } break;
case 13:
# line 146 "grammar.y"
{ yyval.id_list = yypvt[-0].id_list; } break;
case 14:
# line 149 "grammar.y"
{ yyval.id_list = id_list(yypvt[-0].s, NULL); } break;
case 15:
# line 150 "grammar.y"
{ yyval.id_list = id_list(yypvt[-0].s, yypvt[-2].id_list); } break;
case 16:
# line 153 "grammar.y"
{ yyval.stmt_list = yypvt[-1].stmt_list; } break;
case 17:
# line 156 "grammar.y"
{ yyval.stmt_list = NULL; } break;
case 18:
# line 157 "grammar.y"
{ yyval.stmt_list = yypvt[-0].stmt_list; } break;
case 19:
# line 160 "grammar.y"
{ yyval.stmt_list = stmt_list(yypvt[-0].stmt, NULL); } break;
case 20:
# line 161 "grammar.y"
{ yyval.stmt_list = stmt_list(yypvt[-0].stmt, yypvt[-1].stmt_list); } break;
case 21:
# line 164 "grammar.y"
{ yyval.stmt = comment_stmt(yypvt[-0].s); } break;
case 22:
# line 165 "grammar.y"
{ yyval.stmt = noop_stmt(); } break;
case 23:
# line 166 "grammar.y"
{ yyval.stmt = expr_stmt(yypvt[-1].expr); } break;
case 24:
# line 167 "grammar.y"
{ yyval.stmt = compound_stmt(yypvt[-0].stmt_list); } break;
case 25:
# line 168 "grammar.y"
{ yyval.stmt = yypvt[-0].stmt; } break;
case 26:
# line 169 "grammar.y"
{ yyval.stmt = if_else_stmt(yypvt[-2].stmt, yypvt[-0].stmt); } break;
case 27:
# line 171 "grammar.y"
{ yyval.stmt = for_range_stmt(yypvt[-6].s, yypvt[-4].expr, yypvt[-2].expr,yypvt[-0].stmt); } break;
case 28:
# line 172 "grammar.y"
{ yyval.stmt = for_list_stmt(yypvt[-4].s, yypvt[-2].expr, yypvt[-0].stmt); } break;
case 29:
# line 173 "grammar.y"
{ yyval.stmt = while_stmt(yypvt[-2].expr, yypvt[-0].stmt); } break;
case 30:
# line 174 "grammar.y"
{ yyval.stmt = switch_stmt(yypvt[-2].expr, yypvt[-0].case_list); } break;
case 31:
# line 175 "grammar.y"
{ yyval.stmt = break_stmt(); } break;
case 32:
# line 176 "grammar.y"
{ yyval.stmt = continue_stmt(); } break;
case 33:
# line 177 "grammar.y"
{ yyval.stmt = return_stmt(); } break;
case 34:
# line 178 "grammar.y"
{ yyval.stmt = return_expr_stmt(yypvt[-1].expr); } break;
case 35:
# line 180 "grammar.y"
{ yyval.stmt = catch_stmt(yypvt[-1].id_list, yypvt[-0].stmt, NULL); } break;
case 36:
# line 182 "grammar.y"
{ yyval.stmt = catch_stmt(yypvt[-4].id_list, yypvt[-3].stmt, yypvt[-0].stmt); } break;
case 37:
# line 183 "grammar.y"
{ yyerrok; yyval.stmt = NULL; } break;
case 38:
# line 186 "grammar.y"
{ yyval.stmt = if_stmt(yypvt[-2].expr, yypvt[-0].stmt); } break;
case 39:
# line 189 "grammar.y"
{ yyval.s = yypvt[-1].s; } break;
case 40:
# line 192 "grammar.y"
{ yyval.case_list = NULL; } break;
case 41:
# line 193 "grammar.y"
{ yyval.case_list = yypvt[-1].case_list; } break;
case 42:
# line 196 "grammar.y"
{ yyval.case_list = case_list(yypvt[-0].case_entry, NULL); } break;
case 43:
# line 197 "grammar.y"
{ yyval.case_list = case_list(yypvt[-0].case_entry, yypvt[-1].case_list); } break;
case 44:
# line 200 "grammar.y"
{ yyval.case_entry = case_entry(yypvt[-2].expr_list, yypvt[-0].stmt_list); } break;
case 45:
# line 201 "grammar.y"
{ yyval.case_entry = case_entry(NULL, yypvt[-0].stmt_list); } break;
case 46:
# line 204 "grammar.y"
{ yyval.expr = integer_expr(yypvt[-0].num); } break;
case 47:
# line 205 "grammar.y"
{ yyval.expr = string_expr(yypvt[-0].s); } break;
case 48:
# line 206 "grammar.y"
{ yyval.expr = dbref_expr(yypvt[-0].num); } break;
case 49:
# line 207 "grammar.y"
{ yyval.expr = symbol_expr(yypvt[-0].s); } break;
case 50:
# line 208 "grammar.y"
{ yyval.expr = error_expr(yypvt[-0].s); } break;
case 51:
# line 209 "grammar.y"
{ yyval.expr = name_expr(yypvt[-0].s); } break;
case 52:
# line 210 "grammar.y"
{ yyval.expr = var_expr(yypvt[-0].s); } break;
case 53:
# line 211 "grammar.y"
{ yyval.expr = function_call_expr(yypvt[-3].s, yypvt[-1].expr_list); } break;
case 54:
# line 212 "grammar.y"
{ yyval.expr = assign_expr(yypvt[-2].s, yypvt[-0].expr); } break;
case 55:
# line 213 "grammar.y"
{ yyval.expr = pass_expr(yypvt[-1].expr_list); } break;
case 56:
# line 214 "grammar.y"
{ yyval.expr = message_expr(yypvt[-5].expr, yypvt[-3].s, yypvt[-1].expr_list); } break;
case 57:
# line 215 "grammar.y"
{ yyval.expr = message_expr(NULL, yypvt[-3].s, yypvt[-1].expr_list); } break;
case 58:
# line 217 "grammar.y"
{ yyval.expr = expr_message_expr(yypvt[-7].expr, yypvt[-4].expr, yypvt[-1].expr_list); } break;
case 59:
# line 219 "grammar.y"
{ yyval.expr = expr_message_expr(NULL, yypvt[-4].expr, yypvt[-1].expr_list); } break;
case 60:
# line 220 "grammar.y"
{ yyval.expr = list_expr(yypvt[-1].expr_list); } break;
case 61:
# line 221 "grammar.y"
{ yyval.expr = dict_expr(yypvt[-1].expr_list); } break;
case 62:
# line 222 "grammar.y"
{ yyval.expr = buffer_expr(yypvt[-1].expr_list); } break;
case 63:
# line 223 "grammar.y"
{ yyval.expr = frob_expr(yypvt[-3].expr, yypvt[-1].expr); } break;
case 64:
# line 224 "grammar.y"
{ yyval.expr = index_expr(yypvt[-3].expr, yypvt[-1].expr); } break;
case 65:
# line 225 "grammar.y"
{ yyval.expr = unary_expr('!', yypvt[-0].expr); } break;
case 66:
# line 226 "grammar.y"
{ yyval.expr = unary_expr(NEG, yypvt[-0].expr); } break;
case 67:
# line 227 "grammar.y"
{ yyval.expr = yypvt[-0].expr; } break;
case 68:
# line 228 "grammar.y"
{ yyval.expr = binary_expr('*', yypvt[-2].expr, yypvt[-0].expr); } break;
case 69:
# line 229 "grammar.y"
{ yyval.expr = binary_expr('/', yypvt[-2].expr, yypvt[-0].expr); } break;
case 70:
# line 230 "grammar.y"
{ yyval.expr = binary_expr('%', yypvt[-2].expr, yypvt[-0].expr); } break;
case 71:
# line 231 "grammar.y"
{ yyval.expr = binary_expr('+', yypvt[-2].expr, yypvt[-0].expr); } break;
case 72:
# line 232 "grammar.y"
{ yyval.expr = binary_expr('-', yypvt[-2].expr, yypvt[-0].expr); } break;
case 73:
# line 233 "grammar.y"
{ yyval.expr = binary_expr(EQ, yypvt[-2].expr, yypvt[-0].expr); } break;
case 74:
# line 234 "grammar.y"
{ yyval.expr = binary_expr(NE, yypvt[-2].expr, yypvt[-0].expr); } break;
case 75:
# line 235 "grammar.y"
{ yyval.expr = binary_expr('>', yypvt[-2].expr, yypvt[-0].expr); } break;
case 76:
# line 236 "grammar.y"
{ yyval.expr = binary_expr(GE, yypvt[-2].expr, yypvt[-0].expr); } break;
case 77:
# line 237 "grammar.y"
{ yyval.expr = binary_expr('<', yypvt[-2].expr, yypvt[-0].expr); } break;
case 78:
# line 238 "grammar.y"
{ yyval.expr = binary_expr(LE, yypvt[-2].expr, yypvt[-0].expr); } break;
case 79:
# line 239 "grammar.y"
{ yyval.expr = binary_expr(IN, yypvt[-2].expr, yypvt[-0].expr); } break;
case 80:
# line 240 "grammar.y"
{ yyval.expr = and_expr(yypvt[-2].expr, yypvt[-0].expr); } break;
case 81:
# line 241 "grammar.y"
{ yyval.expr = or_expr(yypvt[-2].expr, yypvt[-0].expr); } break;
case 82:
# line 242 "grammar.y"
{ yyval.expr = cond_expr(yypvt[-4].expr, yypvt[-2].expr, yypvt[-0].expr); } break;
case 83:
# line 243 "grammar.y"
{ yyval.expr = yypvt[-1].expr; } break;
case 84:
# line 244 "grammar.y"
{ yyval.expr = critical_expr(yypvt[-1].expr); } break;
case 85:
# line 245 "grammar.y"
{ yyval.expr = propagate_expr(yypvt[-1].expr); } break;
case 86:
# line 248 "grammar.y"
{ yyval.expr = yypvt[-0].expr; } break;
case 87:
# line 249 "grammar.y"
{ yyval.expr = splice_expr(yypvt[-0].expr); } break;
case 88:
# line 252 "grammar.y"
{ yyval.expr_list = NULL; } break;
case 89:
# line 253 "grammar.y"
{ yyval.expr_list = yypvt[-0].expr_list; } break;
case 90:
# line 256 "grammar.y"
{ yyval.expr_list = expr_list(yypvt[-0].expr, NULL); } break;
case 91:
# line 257 "grammar.y"
{ yyval.expr_list = expr_list(yypvt[-0].expr, yypvt[-2].expr_list); } break;
case 92:
# line 260 "grammar.y"
{ yyval.expr = yypvt[-0].expr; } break;
case 93:
# line 261 "grammar.y"
{ yyval.expr = range_expr(yypvt[-2].expr, yypvt[-0].expr); } break;
case 94:
# line 264 "grammar.y"
{ yyval.expr_list = expr_list(yypvt[-0].expr, NULL); } break;
case 95:
# line 265 "grammar.y"
{ yyval.expr_list = expr_list(yypvt[-0].expr, yypvt[-2].expr_list); } break;