mud/fluffos-2.23-ds03/op_spec.c
2020-09-06 05:43:07 -07:00

77 lines
2.0 KiB
C

/*
* This file specifies the operators used by the interpreter.
* Normally, these should not be commented out.
*/
operator pop_value, push, efun0, efun1, efun2, efun3, efunv;
operator short_int, number, real, byte, nbyte, string, short_string, const0, const1;
operator aggregate, aggregate_assoc;
#ifdef DEBUG
operator break_point;
#endif
/* these must be set up so that F_BRANCH is the last foward branch and
* F_BRANCH_X + 3 == F_BBRANCH_X
*/
operator branch_ne, branch_ge, branch_le, branch_eq;
operator branch_when_zero, branch_when_non_zero, branch;
operator bbranch_when_zero, bbranch_when_non_zero, bbranch;
operator bbranch_lt;
operator foreach, next_foreach, exit_foreach;
operator loop_cond_local, loop_cond_number;
operator loop_incr;
operator while_dec;
operator lor, land;
operator catch, end_catch;
operator time_expression, end_time_expression;
operator switch;
operator call_function_by_address, call_inherited, return, return_zero;
/* eq must be first, gt must be last; c.f. is_boolean() */
operator eq, ne, le, lt, ge, gt;
operator inc, dec, pre_inc, post_inc, pre_dec, post_dec;
operator transfer_local;
operator make_ref, kill_refs;
/* lvalue eops must be the original eop + 1 */
operator local, local_lvalue;
operator ref, ref_lvalue;
operator global, global_lvalue;
operator member, member_lvalue;
operator index, index_lvalue;
operator rindex, rindex_lvalue;
operator nn_range, nn_range_lvalue, rn_range, rn_range_lvalue;
operator rr_range, rr_range_lvalue, nr_range, nr_range_lvalue;
operator ne_range, re_range;
/* these must all be together */
operator add_eq, sub_eq, and_eq, or_eq, xor_eq, lsh_eq, rsh_eq, mult_eq;
operator div_eq, mod_eq, assign;
operator void_add_eq, void_assign, void_assign_local;
operator add, subtract, multiply, divide, mod, and, or, xor, lsh, rsh;
operator not, negate, compl;
operator function_constructor;
operator simul_efun;
operator sscanf;
operator parse_command;
operator new_class, new_empty_class;
operator expand_varargs;
operator type_check;