Added special store
command to save stack values into a variable,
following suggestion from @nfraprado.
Added support for engineering notation for numbers by using the
engineering_notation
python package. It is now a dependency of rpnpy
. (by
@nfraprado)
Added support for passing a python file to be parsed at startup through the
--startupFile
flag. Fixed a bug with argument counting for user
functions. (Both by @nfraprado)
Added packages
to setup.py
, maybe thereby fixing
#1
Switch to putting the version number into setup.py
. Not sure what the
issue is in reading it from rpnpy/__init__.py
. See
#1
When a new function is defined (via def
) and then used, it should be
executed (it was being pushed onto the stack, not run).
Removed extra print
command. Updated README.
Added map
as a special command. Updated README.
Make sure processing of stack items converts them all from Variable
and
Function
instances to the right thing for special commands. Added more
tests. Improved README.
Improved error handling / reporting. Added --print
option to auto-print
results of operations.
Use new findStringAndArgs
and findCallableAndArgs
utility functions to
find strings (for join
) and callables (for map
, apply
, etc) plus
their arguments on the stack
Added join
special function and :r
(reverse args) modifier, plus
tests. Updated README.
Make rpn.py
execute the command line args if they are not all existing
files (or '-' to indicate stdin). Added --stdin
option to go with this
so that stdin
is read after the command line is executed.
Improved error output. Updated README with function examples.
Added count
processing to dup
. Made debugging output more useful when
(perhaps) whitespace is in a command and line splitting is on. Stop
executing commands on a line if an error is encountered.
Added toggling of debug.
Updated README examples, added more debug printing.
Make apply
examine the function it is about to run for its number of
arguments.
Tons of small improvements.
Updated README.md
Ongoing development. Many things added, rearranged, etc.
Refactored to use classes, added tests, added register function.
Unreleased hackery getting things more or less working.