Parsing/RPN to infix conversion: Difference between revisions

m
 
(2 intermediate revisions by 2 users not shown)
Line 3,731:
^ ──► {4 ( Mond * ( Sterne + Schlamm)) ^ ( Feur * Suppe)}
infix: ( Mond * ( Sterne + Schlamm)) ^ ( Feur * Suppe)
</pre>
 
=={{header|RPL}}==
It adds more parentheses than required, thus avoiding any ambiguity.
« '''IF''' DUP " " POS '''THEN''' " )" + "( " SWAP + '''END'''
» '<span style="color:blue">ADDPAR</span>' STO
« "}" + "{" SWAP + STR→ <span style="color:grey">@ tokenize</span>
→ postfix
« 1 postfix SIZE '''FOR''' j
postfix j GET →STR
'''IF''' "+-*/^" OVER POS '''THEN'''
ROT <span style="color:blue">ADDPAR</span> " " + SWAP + " " +
SWAP <span style="color:blue">ADDPAR</span> +
'''END'''
'''NEXT'''
» » '<span style="color:blue">→INFIX</span>' STO
 
"3 4 2 * 1 5 - 2 3 ^ ^ / +" <span style="color:blue">→INFIX</span>
"1 2 + 3 4 + ^ 5 6 + ^" <span style="color:blue">→INFIX</span>
{{out}}
<pre>
2: "3 + ( ( 4 * 2 ) / ( ( 1 - 5 ) ^ ( 2 ^ 3 ) ) )"
1: "( ( 1 + 2 ) ^ ( 3 + 4 ) ) ^ ( 5 + 6 )"
</pre>
 
Line 4,204 ⟶ 4,228:
{{libheader|Wren-seq}}
{{libheader|Wren-pattern}}
<syntaxhighlight lang="ecmascriptwren">import "./seq" for Stack
import "./pattern" for Pattern
 
class Expression {
1,150

edits