Find a file
2015-07-23 13:21:48 +02:00
src Changed category names to get closer from RPL (GENERAL->REAL) 2015-07-23 13:21:48 +02:00
test Passed tests 2015-03-01 16:02:23 +01:00
.gitignore Files management 2014-02-12 13:52:01 +01:00
aclocal.m4 Update for autotools 2015-02-11 11:19:42 +01:00
AUTHORS Linux porting 2014-02-12 11:26:26 +01:00
autogen.sh Going to Linux autoconf 2014-02-12 10:00:24 +01:00
ChangeLog Going to Linux autoconf 2014-02-12 10:00:24 +01:00
config.h.in Autocomplete + history with ReadLine 2015-02-10 18:23:09 +01:00
configure Update for autotools 2015-02-11 11:19:42 +01:00
configure.ac Linux porting 2014-02-12 11:26:26 +01:00
COPYING Adding autoconf files 2014-02-12 10:18:18 +01:00
depcomp Autocomplete + history with ReadLine 2015-02-10 18:23:09 +01:00
HP-28S-Quick-Reference.pdf creation 2014-01-03 23:45:07 +01:00
INSTALL Update for autotools 2015-02-11 11:19:42 +01:00
install-sh Autocomplete + history with ReadLine 2015-02-10 18:23:09 +01:00
Makefile.am Autocompletion and history with ReadLine 2015-02-10 18:20:48 +01:00
Makefile.in Update for autotools 2015-02-11 11:19:42 +01:00
missing Update for autotools 2015-02-11 11:19:42 +01:00
NEWS Going to Linux autoconf 2014-02-12 10:00:24 +01:00
README Changed category names to get closer from RPL (GENERAL->REAL) 2015-07-23 13:21:48 +02:00
TODO Update TODO 2015-02-23 10:21:22 +01:00

========================================================================
    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: numbers, binaries, symbols, strings,
 programs, plus keywords (ie langage commands and flow controls).

The special feature of this language is to make no difference between
keywords and functions, even user functions.

Numbers (ie scalars) are in 128-bit quadruple precision format (long
double).
Binaries are 64-bits longwords format (long long int).

A GNU-readline-based interactive editor with autocompletion is provided.

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 * in column new.
Commands already implemented are tagged with * in column impl.
Tested commands are tagged with * in column tested.

category    command     new     impl.   tested

GENERAL     nop         *       *       *
GENERAL     help/h/?    *       *
GENERAL     quit/exit/q *       *
GENERAL     test        *       *
GENERAL     verbose     *       *
GENERAL     std                 *
GENERAL     fix                 *
GENERAL     sci                 *
GENERAL     version     *       *
GENERAL     uname       *       *
GENERAL     edit                *

REAL        +                   *
REAL        -                   *
REAL        neg                 *
REAL        *                   *
REAL        /                   *
REAL        inv                 *
REAL        %                   *
REAL        %CH                 *
REAL        ^                   *
REAL        sqrt        *       *
REAL        sq          *       *
REAL        mod         *       *

STACK       drop                *
STACK       swap                *
STACK       roll
STACK       dup                 *
STACK       over
STACK       dup2                *
STACK       drop2               *
STACK       rot                 *
STACK       list->
STACK       rolld
STACK       pick                *
STACK       dupn
STACK       dropn
STACK       depth               *
STACK       ->list
STACK       load_stack  *       *
STACK       save_stack  *       *

STORE
STORE       sto                 *
STORE       rcl                 *
STORE       purge               *
STORE       sto+
STORE       sto-
STORE       sto*
STORE       sto/
STORE       sneg
STORE       sinv
STORE       sconj
STORE       erase       *       *
STORE       vars        *       *
STORE       include     *
STORE       load_vars   *
STORE       save_vars   *

PROGRAM     eval                *
PROGRAM     load_prog   *
PROGRAM     save_prog   *

ALGEBRA     neg         *       *
ALGEBRA     colct
ALGEBRA     expan
ALGEBRA     size
ALGEBRA     form
ALGEBRA     obsub
ALGEBRA     exsub
ALGEBRA     taylr
ALGEBRA     isol
ALGEBRA     quad,
ALGEBRA     show
ALGEBRA     obget
ALGEBRA     exget

BINARY      +                   *
BINARY      -                   *
BINARY      *                   *
BINARY      /                   *
BINARY      dec                 *
BINARY      hex                 *
BINARY      oct                 *
BINARY      bin                 *
BINARY      stws
BINARY      rcws
BINARY      rl
BINARY      rr
BINARY      rlb
BINARY      rrb
BINARY      r->b                *
BINARY      b->r                *
BINARY      sl
BINARY      sr
BINARY      slb
BINARY      srb
BINARY      asr
BINARY      and
BINARY      or
BINARY      xor
BINARY      not

STRING      +                   *
STRING      ->str               *
STRING      str->               *
STRING      chr
STRING      num
STRING      ->lcd
STRING      lcd->
STRING      pos
STRING      sub
STRING      size
STRING      disp

BRANCH
BRANCH      if                  *
BRANCH      then                *
BRANCH      else                *
BRANCH      end                 *
BRANCH      start               *
BRANCH      for                 *
BRANCH      next                *
BRANCH      step                *
BRANCH      ift
BRANCH      ifte
BRANCH      do
BRANCH      until
BRANCH      end
BRANCH      while
BRANCH      repeat
BRANCH      end
 
TEST
TEST        !=                  *
TEST        >                   *
TEST        >=                  *
TEST        <                   *
TEST        <=                  *
TEST        sf
TEST        cf
TEST        fs?
TEST        fc?
TEST        fs?c
TEST        fc?c
TEST        and                 *
TEST        or                  *
TEST        xor                 *
TEST        not                 *
TEST        same                *
TEST        ==                  *
TEST        stof
TEST        rclf
TEST        type

TRIG
TRIG        pi          *       *
TRIG        sin                 *
TRIG        asin                *
TRIG        cos                 *
TRIG        acos                *
TRIG        tan                 *
TRIG        atan                *
TRIG        p→r
TRIG        r→p
TRIG        r→c
TRIG        c→r
TRIG        arg
TRIG        →hms
TRIG        hms→
TRIG        hms+
TRIG        hms-
TRIG        d→r                 *
TRIG        r→d                 *

LOGS
LOGS        log                 *
LOGS        alog                *
LOGS        ln                  *
LOGS        exp                 *
LOGS        lnp1
LOGS        expm
LOGS        sinh                *
LOGS        asinh               *
LOGS        cosh                *
LOGS        acosh               *
LOGS        tanh                *
LOGS        atanh               *


Not yet
=======

MEMORY
 mem, menu, order, path, home, crdir, vars, clusr, 

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

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

CURSOR
 ins, del, ← → ↑ ↓, cmd, undo, last, ml, rdx, prmd

CONTRL
 sst, halt, abort, kill, wait, key, bepp,  cllcd,  disp,  clmf, errn,
 errm

CATALOG
 next, prev, scan, use, fetch, quit
 
UNITS
 convert

CUSTOM
 menu, custom

========================================================================
Other standard files:
  README
  TODO

========================================================================
Other notes:

========================================================================