RosettaCodeData/Task/Arithmetic-evaluation/00DESCRIPTION

23 lines
870 B
Text
Raw Permalink Normal View History

2013-04-10 14:58:50 -07:00
Create a program which parses and evaluates arithmetic expressions.
;Requirements:
* An [[wp:Abstract_syntax_tree|abstract-syntax tree]] (AST) for the expression must be created from parsing the input.
* The AST must be used in evaluation, also, so the input may not be directly evaluated (e.g. by calling eval or a similar language feature.)
* The expression will be a string or list of symbols like "(1+3)*7".
* The four symbols + - * / must be supported as binary operators with conventional precedence rules.
* Precedence-control parentheses must also be supported.
2016-12-05 22:15:40 +01:00
<br>
2013-04-10 14:58:50 -07:00
;Note:
For those who don't remember, mathematical precedence is as follows:
* Parentheses
* Multiplication/Division (left to right)
* Addition/Subtraction (left to right)
2016-12-05 22:15:40 +01:00
<br>
2013-04-10 14:58:50 -07:00
;C.f:
* [[24 game Player]].
* [[Parsing/RPN calculator algorithm]].
* [[Parsing/RPN to infix conversion]].
2016-12-05 22:15:40 +01:00
<br><br>