remu-operator 1.0.1

Creator: bradpython12

Last updated:

0 purchases

remu-operator 1.0.1 Image
remu-operator 1.0.1 Images

Languages

Categories

Add to Cart

Description:

remuoperator 1.0.1

Remu-Operator
This is framework to separate the resolution of operator precedence and associativity from parsing time,
by using a concise algorithm instead of Shunting Yard algorithm.
Taine Zhao is the author of this algorithm, and has named it "Operator Bubbling".
from remu_operator import Operator, binop_reduce

precedences = {
'+': 1,
'*': 2,
"^": 3,
}

left = False
right = True

associativities = {'+': left, '*': left, '^': right}


def cons(v):
return lambda l, r: '({} {} {})'.format(l, v, r)


x = binop_reduce(
cons,
[1, Operator("+"), 2,
Operator("*"), 3, Operator("^"), 4,
Operator("^"), 5, Operator("+"), 6,
Operator("*"), 7], precedences, associativities)

assert x == '((1 + (2 * (3 ^ (4 ^ 5)))) + (6 * 7))'

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.