Skip to main content

A stack-based calculator plugin for Plover

Project description

RPN Calculator for Plover

PyPI GitHub

RPN Calculator is a stack-based calculator that you can use to calculate equations directly in-line while writing. It uses reverse polish notation, where operations are written after their arguments, rather than in-between.

Commands

Definition Explanation
{:rpn_put:<characters>} Put characters into buffer.
For example: {:rpn_put:1}
{:rpn_put_ext} Put all characters after the most recent calculator command into buffer. This allows you to use regular number entry strokes rather than rpn_put strokes to put characters into buffer.
{:rpn_del_buff} Delete rightmost character in buffer.
{:rpn_clear_buff} Clear buffer.
{:rpn_clear_all} Clear and delete everything.
{:rpn_push} Parse and push buffer into stack.
{:rpn_push_bin} Parse and push buffer into stack as binary.
{:rpn_push_hex} Parse and push buffer into stack as hexadecimal.
{:rpn_add} Pop (x, y) from stack (where y is at the top) and push x + y.
{:rpn_sub} Subtraction: Pop (x, y), push x - y.
{:rpn_mul} Multiplication: Pop (x, y), push x * y.
{:rpn_div} Division: Pop (x, y), push x / y.
{:rpn_intdiv} Floor division: Pop (x, y), push floor(x, y).
{:rpn_mod} Modulo: Pop (x, y), push x mod y.
{:rpn_pow} Exponent: Pop (x, y), push pow(x, y).
{:rpn_neg} Negation: Pop x, push -x.
{:rpn_and} Bitwise AND: Pop (x, y), push x & y.
{:rpn_or} Bitwise OR: Pop (x, y), push `x
{:rpn_xor} Bitwise XOR: Pop (x, y), push x ^ y.
{:rpn_not} Bitwise NOT: Pop x, push ~x.
{:rpn_lsl} Logical Shift Left: Pop (x, y), push x << y.
{:rpn_lsr} Logical Shift Right: Pop (x, y), push x >> y.
{:rpn_swap} Swap top two stack items.
{:rpn_pop} Remove the topmost item.
{:rpn_dup} Duplicate top stack item.
{:rpn_func:<params>:<return>} Define custom function; parameters are separated by commas, and the return value is written using python syntax.
For example: {:rpn_func:x,y:3*x+2*y}
{:rpn_end} Mark the end of the calculation.

Here are a few things to note when using the plugin:

  • You can chain these definitions in a single stroke. For instance, "{:rpn_clear_buff}{:rpn_dup}{:rpn_put:2}{:rpn_mul}" will let you repeatedly add double the topmost item onto the stack.
  • When the stack has exactly one item, it will be formatted as a bare number, allowing you to quickly move on after calculation.
  • You can use the undo stroke (Typically *) to undo all RPN commands. This is helpful whenever you encounter an error during calculation.
  • Most operations that pop from the stack will push whatever you have in the buffer onto the stack first before popping. This allows you to, for example, use {:rpn_add} to directly add the buffer to the item at the top of the stack, without the need to stroke the rpn_push command.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plover-rpn-calculator-0.0.1.tar.gz (6.0 kB view hashes)

Uploaded Source

Built Distribution

plover_rpn_calculator-0.0.1-py3-none-any.whl (6.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page