Skip to content

Instantly share code, notes, and snippets.

@markjenkins
Created March 15, 2016 17:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save markjenkins/25bdc001aec36b6f3836 to your computer and use it in GitHub Desktop.
Save markjenkins/25bdc001aec36b6f3836 to your computer and use it in GitHub Desktop.
simple arithmetic expression parser
from pyparsing import Word, alphas, oneOf, operatorPrecedence, opAssoc
operand = Word(alphas)
signop = oneOf('+ -')
multop = oneOf('* /')
plusop = oneOf('+ -')
ARITH_EXPR = operatorPrecedence( operand,
[(signop, 1, opAssoc.RIGHT),
(multop, 2, opAssoc.LEFT),
(plusop, 2, opAssoc.LEFT),]
)
if __name__ == "__main__":
print ARITH_EXPR.parseString(raw_input())
print
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment