-
-#if GLOBAL_DEBUGGING
-#define op(a,b,c,d) {a,b,c,d}
-#else
-#define op(a,b,c,d) {b,c,d}
-#endif
-
-#define varies 0
-
-struct op_desc ops[OP_SENTINEL + 1] =
-{
- op ("!?ERROR?!", 000, 0, 0),
-
- op ("plus", 001, varies, 1),
- op ("mul", 011, varies, 1),
- op ("pow", 010, -1, 0),
- op ("and", 010, -1, 0),
- op ("or", 010, -1, 0),
- op ("not", 000, 0, 0),
- op ("eq", 000, -1, 0),
- op ("ge", 000, -1, 0),
- op ("gt", 000, -1, 0),
- op ("le", 000, -1, 0),
- op ("lt", 000, -1, 0),
- op ("ne", 000, -1, 0),
-
- op ("string-eq", 000, -1, 0),
- op ("string-ge", 000, -1, 0),
- op ("string-gt", 000, -1, 0),
- op ("string-le", 000, -1, 0),
- op ("string-lt", 000, -1, 0),
- op ("string-ne", 000, -1, 0),
-
- op ("neg", 000, 0, 0),
- op ("abs", 000, 0, 0),
- op ("arcos", 000, 0, 0),
- op ("arsin", 000, 0, 0),
- op ("artan", 000, 0, 0),
- op ("cos", 000, 0, 0),
- op ("exp", 000, 0, 0),
- op ("lg10", 000, 0, 0),
- op ("ln", 000, 0, 0),
- op ("mod10", 000, 0, 0),
- op ("rnd", 000, 0, 0),
- op ("sin", 000, 0, 0),
- op ("sqrt", 000, 0, 0),
- op ("tan", 000, 0, 0),
- op ("trunc", 000, 0, 0),
-
- op ("any", 011, varies, 1),
- op ("any-string", 001, varies, 1),
- op ("cfvar", 013, varies, 2),
- op ("max", 013, varies, 2),
- op ("mean", 013, varies, 2),
- op ("min", 013, varies, 2),
- op ("nmiss", 011, varies, 1),
- op ("nvalid", 011, varies, 1),
- op ("range", 011, varies, 1),
- op ("range-string", 001, varies, 1),
- op ("sd", 013, varies, 2),
- op ("sum", 013, varies, 2),
- op ("variance", 013, varies, 2),
-
- op ("time_hms", 000, -2, 0),
- op ("ctime_days?!", 000, 0, 0),
- op ("ctime_hours?!", 000, 0, 0),
- op ("ctime_minutes?!", 000, 0, 0),
- op ("ctime_seconds?!", 000, 0, 0),
- op ("time_days?!", 000, 0, 0),
-
- op ("date_dmy", 000, -2, 0),
- op ("date_mdy", 000, -2, 0),
- op ("date_moyr", 000, -1, 0),
- op ("date_qyr", 000, -1, 0),
- op ("date_wkyr", 000, -1, 0),
- op ("date_yrday", 000, -1, 0),
- op ("yrmoda", 000, -2, 0),
-
- op ("xdate_date", 000, 0, 0),
- op ("xdate_hour", 000, 0, 0),
- op ("xdate_jday", 000, 0, 0),
- op ("xdate_mday", 000, 0, 0),
- op ("xdate_minute", 000, 0, 0),
- op ("xdate_month", 000, 0, 0),
- op ("xdate_quarter", 000, 0, 0),
- op ("xdate_second", 000, 0, 0),
- op ("xdate_tday", 000, 0, 0),
- op ("xdate_time", 000, 0, 0),
- op ("xdate_week", 000, 0, 0),
- op ("xdate_wkday", 000, 0, 0),
- op ("xdate_year", 000, 0, 0),
-
- op ("concat", 001, varies, 1),
- op ("index-2", 000, -1, 0),
- op ("index-3", 000, -2, 0),
- op ("rindex-2", 000, -1, 0),
- op ("rindex-3", 000, -2, 0),
- op ("length", 000, 0, 0),
- op ("lower", 000, 0, 0),
- op ("upcas", 000, 0, 0),
- op ("lpad-2", 010, -1, 0),
- op ("lpad-3", 010, -2, 0),
- op ("rpad-2", 010, -1, 0),
- op ("rpad-3", 010, -2, 0),
- op ("ltrim-1", 000, 0, 0),
- op ("ltrim-2", 000, -1, 0),
- op ("rtrim-1", 000, 0, 0),
- op ("rtrim-2", 000, -1, 0),
- op ("number-1", 010, 0, 0),
- op ("number-2", 014, 0, 3),
- op ("string", 004, 0, 3),
- op ("substr-2", 010, -1, 0),
- op ("substr-3", 010, -2, 0),
-
- op ("inv", 000, 0, 0),
- op ("square", 000, 0, 0),
- op ("num-to-Bool", 000, 0, 0),
-
- op ("mod", 010, -1, 0),
- op ("normal", 000, 0, 0),
- op ("uniform", 000, 0, 0),
- op ("sysmis", 010, 0, 0),
- op ("vec-elem-num", 002, 0, 1),
- op ("vec-elem-str", 002, 0, 1),
-
- op ("!?TERMINAL?!", 000, 0, 0),
- op ("num-con", 000, +1, 0),
- op ("str-con", 000, +1, 0),
- op ("num-var", 000, +1, 0),
- op ("str-var", 000, +1, 0),
- op ("num-lag", 000, +1, 1),
- op ("str-lag", 000, +1, 1),
- op ("num-sys", 000, +1, 1),
- op ("num-val", 000, +1, 1),
- op ("str-mis", 000, +1, 1),
- op ("$casenum", 000, +1, 0),
- op ("!?SENTINEL?!", 000, 0, 0),
-};
-
-#undef op
-#undef varies
-\f