======================================================================== Reverse Polish Notation language Inspired by Hewlett-Packard RPL language HP28S user manual is provided as a reference ======================================================================== This project plans to create a clone of HP RPN calculator language, including at least stack, store, branch, test, trig and logs commands of HP28S RPL implementation. Following objects are managed: scalars, symbols, binaries, strings, programs. Scalar are in 128-bit quadruple precision format (long double). Binaries are 64-bits longwords format (long long int). An interactive editor with autocompletion is provided (readline-based). Language extensions will soon be included: - file objects and functions, - date and time objects and functions, - shell-calling objects with return code, stdout and stderr treatment, - loading and saving stack, variables, programs from / to filesystem ======================================================================== Here is a list of HP28s reserved words. New commands (nonexistent in RPL) are tagged with (+). Already implemented commands are tagged with (*). GENERAL OPERATIONS +(*), -(*), neg(*), *(*), /(*), inv(*)(+), %(*), %CH(*), ^(*), sqrt(*)(+), sq(*)(+), test(*)(+) GENERAL (some are 'CURSOR' commands) verbose(*)(+), std(*), fix(*), sci(*), version(*)(+), uname(*)(+) STACK drop(*), swap(*), roll, dup(*), over, dup2(*), drop2(*), rot(*), list->, rolld, pick(*), dupn, dropn, depth(*), ->list, load_stack(+), save_stack(+) STORE sto(*), rcl(*), purge(*), sto+, sto-, sto*, sto/, sneg, sinv, sconj, erase(*)(+), vars(*)(+), include(+), load_vars(+), save_vars(+) PROGRAM(+) eval(*), load_prog(+), save_prog(+) MEMORY mem, menu, order, path, home, crdir, vars, clusr ALGEBRA neg(*)(+), colct, expan, size, form, obsub, exsub, taylr, isol, quad, show, obget, exget BINARY +(*), -(*), *(*), /(*), dec(*), hex(*), oct(*), bin(*), stws, rcws, rl, rr, rlb, rrb, r->b(*), b->r(*), sl, sr, slb, srb, asr, and, or, xor, not STAT ∑dat, ∑par, ∑+, ∑-, n∑, cl∑, sto∑, rcl∑, tot, mean, sdev, var, max∑, min∑, col∑, corr, cov, lr, predev, utpc, utpf, utpn, utpt, comb, perm PRINT pr1, prst, prvar, prlcd, cr, trac, prstc, prusr, prmd STRING +(*), ->str, str->, chr, num, ->lcd, lcd->, pos, sub, size, disp CONTRL sst, halt, abort, kill, wait, key, bepp, cllcd, disp, clmf, errn, errm BRANCH if(*), iferr, then(*), else(*), end(*), start(*), for(*), next(*), step(*), ift, ifte, do, until, end, while, repeat, end TEST !=(*), >(*), >=(*), <(*), <=(*), sf, cf, fs?, fc?, fs?c, fc?c, and(*), or(*), xor(*), not(*), same(*), ==(*), stof, rclf, type CATALOG next, prev, scan, use, fetch, quit UNITS convert CURSOR (some of these functions can be found in GENERAL) ins, del, ← → ↑ ↓, std, fix, sci, eng, deg, rad, cmd, undo, last, ml, rdx, prmd TRIG pi(*)(+), sin(*), asin(*), cos(*), acos(*), tan(*), atan(*), p→r, r→p, r→c, c→r, arg, →hms, hms→, hms+, hms-, (*)d→r, (*)r→d LOGS log(*), alog(*), ln(*), exp(*), lnp1, expm, sinh(*), asinh(*), cosh(*), acosh(*), tanh(*), atanh(*) SOLV steq, rceq, isol, quad, show, root, PLOT ppar, steq, rceq, pmin, pmax, indep, draw, res, axes, centr, *w, *h, sto∑, rcl∑, col∑, scl∑, drw∑, cllcd, digtiz CUSTOM menu, custom ======================================================================== Other standard files: README TODO ======================================================================== Other notes: ========================================================================