Parsing/RPN to infix conversion: Difference between revisions

add Ruby
(→‎Tcl: Added implementation)
(add Ruby)
Line 258:
 
The final output infix expression is: '3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3'</pre>
 
=={{header|Ruby}}==
See [[Parsing/RPN/Ruby]]
 
The relevant output from testing is
<pre>for RPN expression: 3 4 2 * 1 5 - 2 3 ^ ^ / +
Term Action Stack
3 PUSH [node[3]]
4 PUSH [node[3], node[4]]
2 PUSH [node[3], node[4], node[2]]
* MUL [node[3], node[*]<left=node[4], right=node[2]>]
1 PUSH [node[3], node[*]<left=node[4], right=node[2]>, node[1]]
5 PUSH [node[3], node[*]<left=node[4], right=node[2]>, node[1], node[5]]
- SUB [node[3], node[*]<left=node[4], right=node[2]>, node[-]<left=node[1], right=node[5]>]
2 PUSH [node[3], node[*]<left=node[4], right=node[2]>, node[-]<left=node[1], right=node[5]>, node[2]]
3 PUSH [node[3], node[*]<left=node[4], right=node[2]>, node[-]<left=node[1], right=node[5]>, node[2], node[3]]
^ EXP [node[3], node[*]<left=node[4], right=node[2]>, node[-]<left=node[1], right=node[5]>, node[^]<left=node[2], right=node[3]>]
^ EXP [node[3], node[*]<left=node[4], right=node[2]>, node[^]<left=node[-]<left=node[1], right=node[5]>, right=node[^]<left=node[2], right=node[3]>>]
/ DIV [node[3], node[/]<left=node[*]<left=node[4], right=node[2]>, right=node[^]<left=node[-]<left=node[1], right=node[5]>, right=node[^]<left=node[2], right=node[3]>>>]
+ ADD [node[+]<left=node[3], right=node[/]<left=node[*]<left=node[4], right=node[2]>, right=node[^]<left=node[-]<left=node[1], right=node[5]>, right=node[^]<left=node[2], right=node[3]>>>>]
infix = 3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3
ruby = 3 + 4 * 2.to_f / ( 1 - 5 ) ** 2 ** 3</pre>
 
=={{header|Tcl}}==
Anonymous user