77 lines
2.0 KiB
C
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;
|
|
|