Error processing request

Parameters

CONTENT_LENGTH0
REQUEST_METHODGET
REQUEST_URI/revision/infix+to+prefix?V=0
QUERY_STRINGV=0
CONTENT_TYPE
DOCUMENT_URI/revision/infix+to+prefix
DOCUMENT_ROOT/var/www/nikit/nikit/nginx/../docroot
SCGI1
SERVER_PROTOCOLHTTP/1.1
HTTPSon
REMOTE_ADDR162.158.79.143
REMOTE_PORT20856
SERVER_PORT4443
SERVER_NAMEwiki.tcl-lang.org
HTTP_HOSTwiki.tcl-lang.org
HTTP_CONNECTIONKeep-Alive
HTTP_ACCEPT_ENCODINGgzip, br
HTTP_X_FORWARDED_FOR35.175.212.5
HTTP_CF_RAY86bada2fea2013c3-IAD
HTTP_X_FORWARDED_PROTOhttps
HTTP_CF_VISITOR{"scheme":"https"}
HTTP_ACCEPT*/*
HTTP_USER_AGENTclaudebot
HTTP_CF_CONNECTING_IP35.175.212.5
HTTP_CDN_LOOPcloudflare
HTTP_CF_IPCOUNTRYUS

Body


Error

Unknow state transition: LINE -> END

-code

1

-level

0

-errorstack

INNER {returnImm {Unknow state transition: LINE -> END} {}} CALL {my render_wikit {infix to prefix} \ if\ false\ \{\n\n\[wdb\]\ If\ possible,\ for\ mathematical\ problems\ I\ ask\ \[maxima\]\ or\ \[wolfram\ alpha\],\ \nthen\ I\ take\ their\ output\ as\ input\ for\ \[expr\].\n\nThis\ method\ fails\ if\ the\ resulting\ formulas\ contain\ \[complex\]\ numbers.\nThe\ function\ \[expr\]\ doesn't\ calcultate\ (yet)\ complex\ values,\nso\ all\ I\ can\ do\ is\ using\ own\ complex\ functions\ which\ are\ in\ prefix\ notion,\nsuch\ as\n\n\ %\ complex+\ \{3\ 4\}\ \{1\ 5\}\n\ 4\ 9\n\ %\n\nBut\ therefor,\ I\ must\ transform\ infix-notated\ formulae\ to\ prefix.\nHere\ it\ comes:\n\n\ \}\n\nnamespace\ eval\ infixToPrefix\ \{\n\ \ namespace\ export\ *\n\}\n\nproc\ infixToPrefix::tokenize\ src\ \{\n\ \ #\ list\ tokens\ in\ \$src\n\ \ set\ result\ \{\}\n\ \ set\ l\ \[string\ length\ \$src\]\n\ \ set\ str\ \"\"\n\ \ for\ \{set\ i\ 0\}\ \{\$i\ <\ \$l\}\ \{incr\ i\}\ \{\n\ \ \ \ if\ \{\[string\ index\ \$src\ \$i\]\ in\ \{+\ -\ *\ /\ ^\ (\ )\}\}\ then\ \{\n\ \ \ \ \ \ if\ \{\$str\ ne\ \"\"\}\ then\ \{\n\ \ \ \ \ \ \ \ lappend\ result\ \$str\n\ \ \ \ \ \ \ \ set\ str\ \"\"\n\ \ \ \ \ \ \}\n\ \ \ \ \ \ lappend\ result\ \[string\ index\ \$src\ \$i\]\n\ \ \ \ \}\ else\ \{\n\ \ \ \ \ \ append\ str\ \[string\ index\ \$src\ \$i\]\n\ \ \ \ \}\n\ \ \}\n\ \ if\ \{\$str\ ne\ \"\"\}\ then\ \{\n\ \ \ \ lappend\ result\ \$str\n\ \ \}\n\ \ set\ result\n\}\n\nproc\ infixToPrefix::listify\ tokenList\ \{\n\ \ #\ return\ nested\ lists\n\ \ set\ level\ 0\n\ \ set\ term\ \{\}\n\ \ set\ result\ \{\}\n\ \ foreach\ token\ \$tokenList\ \{\n\ \ \ \ if\ \{\$token\ eq\ \"\\(\"\}\ then\ \{\n\ \ \ \ \ \ incr\ level\n\ \ \ \ \}\ \n\ \ \ \ if\ \{\$level\ ==\ 0\}\ then\ \{\n\ \ \ \ \ \ if\ \{\[llength\ \$term\]\ >\ 0\}\ then\ \{\n\ \ \ \ \ \ \ \ lappend\ result\ \[listify\ \[lrange\ \$term\ 1\ end-1\]\]\n\ \ \ \ \ \ \ \ set\ term\ \{\}\n\ \ \ \ \ \ \}\n\ \ \ \ \ \ lappend\ result\ \$token\n\ \ \ \ \}\ else\ \{\n\ \ \ \ \ \ lappend\ term\ \$token\n\ \ \ \ \}\n\ \ \ \ if\ \{\$token\ eq\ \"\\)\"\}\ then\ \{\n\ \ \ \ \ \ incr\ level\ -1\n\ \ \ \ \}\n\ \ \}\n\ \ if\ \{\[llength\ \$term\]\ >\ 0\}\ then\ \{\n\ \ \ \ lappend\ result\ \[listify\ \[lrange\ \$term\ 1\ end-1\]\]\n\ \ \}\n\ \ set\ result\n\}\n\nproc\ infixToPrefix::extractFunctions\ lst\ \{\n\ \ #\ group\ function\ calls\ (precedence\ 1)\n\ \ set\ funcs\ \[info\ functions\]\n\ \ lappend\ funcs\ -\n\ \ if\ \{\[llength\ \$lst\]\ <\ 2\}\ then\ \{\n\ \ \ \ #\ echo\ length\ \[llength\ \$lst\]\ --\ \$lst\n\ \ \ \ if\ \{\[llength\ \[lindex\ \$lst\ 0\]\]\ <\ 2\}\ then\ \{\n\ \ \ \ \ \ set\ lst\n\ \ \ \ \}\ else\ \{\n\ \ \ \ \ \ list\ \[groupByPrecedence\ \[lindex\ \$lst\ 0\]\]\n\ \ \ \ \}\n\ \ \}\ elseif\ \{\[lindex\ \$lst\ 0\]\ in\ \$funcs\}\ then\ \{\n\ \ \ \ #\ leading\ function\ name\ found\n\ \ \ \ set\ lst1\ \[extractFunctions\ \[lrange\ \$lst\ 1\ end\]\]\n\ \ \ \ list\ \[list\ \[lindex\ \$lst\ 0\]\ \[lindex\ \$lst1\ 0\]\]\ \{*\}\[lrange\ \$lst1\ 1\ end\]\n\ \ \}\ else\ \{\n\ \ \ \ #\ not\ a\ function\n\ \ \ \ list\\\n\ \ \ \ \ \ \[extractFunctions\ \[lindex\ \$lst\ 0\]\]\\\n\ \ \ \ \ \ \[lindex\ \$lst\ 1\]\\\n\ \ \ \ \ \ \{*\}\[groupByPrecedence\ \[lrange\ \$lst\ 2\ end\]\]\n\ \ \}This\ is\ an\ empty\ page.\n\nEnter\ page\ contents\ here,\ upload\ content\ using\ the\ button\ above,\ or\ click\ cancel\ to\ leave\ it\ empty.\n\}\n\nproc\ infixToPrefix::groupByOp\ \{lst\ op\}\ \{\n\ \ #\ group\ equal\ operators\n\ \ set\ idx\ \[lsearch\ \$lst\ \[string\ map\ \[list\ *\ \\\\*\]\ \$op\]\]\n\ \ if\ \{\$idx\ <\ 0\}\ then\ \{\n\ \ \ \ #\ no\ occurrence\ of\ \$op\ in\ \$lst\n\ \ \ \ set\ lst\n\ \ \}\ else\ \{\n\ \ \ \ set\ start\ \[expr\ \$idx-1\]\n\ \ \ \ set\ result\ \[lrange\ \$lst\ 0\ \[expr\ \{\$start-1\}\]\]\n\ \ \ \ set\ l\ \[llength\ \$lst\]\n\ \ \ \ for\ \{set\ i\ \$idx\}\ \{\$i\ <\ \$l\}\ \{incr\ i\ 2\}\ \{\n\ \ \ \ \ \ if\ \{\[lindex\ \$lst\ \$i\]\ ne\ \$op\}\ then\ break\n\ \ \ \ \}\n\ \ \ \ set\ end\ \[expr\ \{\$i-1\}\]\n\ \ \ \ lappend\ result\\\n\ \ \ \ \ \ \[lrange\ \$lst\ \$start\ \$end\]\\\n\ \ \ \ \ \ \{*\}\[groupByOp\ \[lrange\ \$lst\ \[expr\ \{\$end+1\}\]\ end\]\ \$op\]\n\ \ \}\n\}\n\nproc\ infixToPrefix::groupByOps\ \{lst\ args\}\ \{\n\ \ #\ group\ subsequently\ by\ operators\n\ \ foreach\ op\ \$args\ \{\n\ \ \ \ set\ lst\ \[groupByOp\ \$lst\ \$op\]\n\ \ \}\n\ \ set\ lst\n\}\n\nproc\ infixToPrefix::groupByPrecedence\ lst\ \{\n\ \ #\ group\ by\ precedence:\ function-name,\ ^,\ /,\ *,\ -,\ +\n\ \ if\ \{\[llength\ \$lst\]\ <\ 2\}\ then\ \{\n\ \ \ \ set\ result\ \$lst\n\ \ \}\ else\ \{\n\ \ \ \ set\ result\ \[groupByOps\ \[extractFunctions\ \$lst\]\ ^\ /\ *\ -\ +\]\n\ \ \}\n\ \ if\ \{\[llength\ \$result\]\ ==\ 1\}\ then\ \{\n\ \ \ \ lindex\ \$result\ 0\n\ \ \}\ else\ \{\n\ \ \ \ set\ result\n\ \ \}\n\}\n\nproc\ infixToPrefix::grpToPrefix\ grp\ \{\n\ \ #\ put\ infix-operators\ to\ front\n\ \ if\ \{\[llength\ \$grp\]\ ==\ 1\}\ then\ \{\n\ \ \ \ set\ grp\n\ \ \}\ elseif\ \{\[llength\ \$grp\]\ ==\ 2\}\ then\ \{\n\ \ \ \ list\ \[lindex\ \$grp\ 0\]\ \[grpToPrefix\ \[lindex\ \$grp\ 1\]\]\n\ \ \}\ else\ \{\n\ \ \ \ lassign\ \$grp\ term\ op\n\ \ \ \ lappend\ result\ \$op\ \[grpToPrefix\ \$term\]\n\ \ \ \ foreach\ \{op\ term\}\ \[lrange\ \$grp\ 1\ end\]\ \{\n\ \ \ \ \ \ lappend\ result\ \[grpToPrefix\ \$term\]\n\ \ \ \ \}\n\ \ \ \ set\ result\n\ \ \}\n\}\n\nproc\ infixToPrefix::simplifyExpr\ prf\ \{\n\ \ #\ splice\ nested\ terms\ with\ equal\ operator\n\ \ if\ \{\[llength\ \$prf\]\ <\ 2\}\ then\ \{\n\ \ \ \ set\ prf\n\ \ \}\ else\ \{\n\ \ \ \ set\ op\ \[lindex\ \$prf\ 0\]\n\ \ \ \ lappend\ result\ \$op\n\ \ \ \ foreach\ expr\ \[lrange\ \$prf\ 1\ end\]\ \{\n\ \ \ \ \ \ set\ expr1\ \[simplifyExpr\ \$expr\]\n\ \ \ \ \ \ if\ \{\$op\ in\ \{+\ *\}\ &&\ \[lindex\ \$expr1\ 0\]\ eq\ \$op\}\ then\ \{\n\ \ \ \ \ \ \ \ lappend\ result\ \{*\}\[lrange\ \$expr1\ 1\ end\]\n\ \ \ \ \ \ \}\ else\ \{\n\ \ \ \ \ \ \ \ lappend\ result\ \$expr1\n\ \ \ \ \ \ \}\n\ \ \ \ \}\n\ \ \ \ set\ result\n\ \ \}\n\}\n\n======\n\n\ if\ false\ \{\n\nThe\ final\ function\ transforms\ braces\ to\ brackets\nand\ maxima-specific\ terms\ to\ own-specific\ ones.\n\n\ \}\n\n======\n\nproc\ infixToPrefix::infixToPrefix\ term\ \{\n\ \ #\ return\ lambda-expr\ to\ be\ apply'd\n\ \ set\ tok\ \[tokenize\ \$term\]\n\ \ set\ lis\ \[listify\ \$tok\]\n\ \ set\ grp\ \[groupByPrecedence\ \$lis\]\n\ \ set\ prf\ \[grpToPrefix\ \$grp\]\n\ \ set\ exp\ \[simplifyExpr\ \$prf\]\n\ \ set\ trns\ \[string\ map\\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \[list\ \\\{\ \\\[\ \\\}\ \\\]\\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ %i\ \"\{0\ 1\}\"\\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ^\ complex**\ sqrt\ complexSqrt\\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ /\ complex/\ *\ complex*\\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -\ complex-\ +\ complex+\]\\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \$exp\]\n\ \ regsub\ -all\ \{\ (\[a-zA-Z\]+)\}\ \$trns\ \{\ \$\\1\}\n\}\n\nnamespace\ import\ infixToPrefix::infixToPrefix\ \n\n\n======\n\n<<categories>>infix regexp2} CALL {my render {infix to prefix} \ if\ false\ \{\n\n\[wdb\]\ If\ possible,\ for\ mathematical\ problems\ I\ ask\ \[maxima\]\ or\ \[wolfram\ alpha\],\ \nthen\ I\ take\ their\ output\ as\ input\ for\ \[expr\].\n\nThis\ method\ fails\ if\ the\ resulting\ formulas\ contain\ \[complex\]\ numbers.\nThe\ function\ \[expr\]\ doesn't\ calcultate\ (yet)\ complex\ values,\nso\ all\ I\ can\ do\ is\ using\ own\ complex\ functions\ which\ are\ in\ prefix\ notion,\nsuch\ as\n\n\ %\ complex+\ \{3\ 4\}\ \{1\ 5\}\n\ 4\ 9\n\ %\n\nBut\ therefor,\ I\ must\ transform\ infix-notated\ formulae\ to\ prefix.\nHere\ it\ comes:\n\n\ \}\n\nnamespace\ eval\ infixToPrefix\ \{\n\ \ namespace\ export\ *\n\}\n\nproc\ infixToPrefix::tokenize\ src\ \{\n\ \ #\ list\ tokens\ in\ \$src\n\ \ set\ result\ \{\}\n\ \ set\ l\ \[string\ length\ \$src\]\n\ \ set\ str\ \"\"\n\ \ for\ \{set\ i\ 0\}\ \{\$i\ <\ \$l\}\ \{incr\ i\}\ \{\n\ \ \ \ if\ \{\[string\ index\ \$src\ \$i\]\ in\ \{+\ -\ *\ /\ ^\ (\ )\}\}\ then\ \{\n\ \ \ \ \ \ if\ \{\$str\ ne\ \"\"\}\ then\ \{\n\ \ \ \ \ \ \ \ lappend\ result\ \$str\n\ \ \ \ \ \ \ \ set\ str\ \"\"\n\ \ \ \ \ \ \}\n\ \ \ \ \ \ lappend\ result\ \[string\ index\ \$src\ \$i\]\n\ \ \ \ \}\ else\ \{\n\ \ \ \ \ \ append\ str\ \[string\ index\ \$src\ \$i\]\n\ \ \ \ \}\n\ \ \}\n\ \ if\ \{\$str\ ne\ \"\"\}\ then\ \{\n\ \ \ \ lappend\ result\ \$str\n\ \ \}\n\ \ set\ result\n\}\n\nproc\ infixToPrefix::listify\ tokenList\ \{\n\ \ #\ return\ nested\ lists\n\ \ set\ level\ 0\n\ \ set\ term\ \{\}\n\ \ set\ result\ \{\}\n\ \ foreach\ token\ \$tokenList\ \{\n\ \ \ \ if\ \{\$token\ eq\ \"\\(\"\}\ then\ \{\n\ \ \ \ \ \ incr\ level\n\ \ \ \ \}\ \n\ \ \ \ if\ \{\$level\ ==\ 0\}\ then\ \{\n\ \ \ \ \ \ if\ \{\[llength\ \$term\]\ >\ 0\}\ then\ \{\n\ \ \ \ \ \ \ \ lappend\ result\ \[listify\ \[lrange\ \$term\ 1\ end-1\]\]\n\ \ \ \ \ \ \ \ set\ term\ \{\}\n\ \ \ \ \ \ \}\n\ \ \ \ \ \ lappend\ result\ \$token\n\ \ \ \ \}\ else\ \{\n\ \ \ \ \ \ lappend\ term\ \$token\n\ \ \ \ \}\n\ \ \ \ if\ \{\$token\ eq\ \"\\)\"\}\ then\ \{\n\ \ \ \ \ \ incr\ level\ -1\n\ \ \ \ \}\n\ \ \}\n\ \ if\ \{\[llength\ \$term\]\ >\ 0\}\ then\ \{\n\ \ \ \ lappend\ result\ \[listify\ \[lrange\ \$term\ 1\ end-1\]\]\n\ \ \}\n\ \ set\ result\n\}\n\nproc\ infixToPrefix::extractFunctions\ lst\ \{\n\ \ #\ group\ function\ calls\ (precedence\ 1)\n\ \ set\ funcs\ \[info\ functions\]\n\ \ lappend\ funcs\ -\n\ \ if\ \{\[llength\ \$lst\]\ <\ 2\}\ then\ \{\n\ \ \ \ #\ echo\ length\ \[llength\ \$lst\]\ --\ \$lst\n\ \ \ \ if\ \{\[llength\ \[lindex\ \$lst\ 0\]\]\ <\ 2\}\ then\ \{\n\ \ \ \ \ \ set\ lst\n\ \ \ \ \}\ else\ \{\n\ \ \ \ \ \ list\ \[groupByPrecedence\ \[lindex\ \$lst\ 0\]\]\n\ \ \ \ \}\n\ \ \}\ elseif\ \{\[lindex\ \$lst\ 0\]\ in\ \$funcs\}\ then\ \{\n\ \ \ \ #\ leading\ function\ name\ found\n\ \ \ \ set\ lst1\ \[extractFunctions\ \[lrange\ \$lst\ 1\ end\]\]\n\ \ \ \ list\ \[list\ \[lindex\ \$lst\ 0\]\ \[lindex\ \$lst1\ 0\]\]\ \{*\}\[lrange\ \$lst1\ 1\ end\]\n\ \ \}\ else\ \{\n\ \ \ \ #\ not\ a\ function\n\ \ \ \ list\\\n\ \ \ \ \ \ \[extractFunctions\ \[lindex\ \$lst\ 0\]\]\\\n\ \ \ \ \ \ \[lindex\ \$lst\ 1\]\\\n\ \ \ \ \ \ \{*\}\[groupByPrecedence\ \[lrange\ \$lst\ 2\ end\]\]\n\ \ \}This\ is\ an\ empty\ page.\n\nEnter\ page\ contents\ here,\ upload\ content\ using\ the\ button\ above,\ or\ click\ cancel\ to\ leave\ it\ empty.\n\}\n\nproc\ infixToPrefix::groupByOp\ \{lst\ op\}\ \{\n\ \ #\ group\ equal\ operators\n\ \ set\ idx\ \[lsearch\ \$lst\ \[string\ map\ \[list\ *\ \\\\*\]\ \$op\]\]\n\ \ if\ \{\$idx\ <\ 0\}\ then\ \{\n\ \ \ \ #\ no\ occurrence\ of\ \$op\ in\ \$lst\n\ \ \ \ set\ lst\n\ \ \}\ else\ \{\n\ \ \ \ set\ start\ \[expr\ \$idx-1\]\n\ \ \ \ set\ result\ \[lrange\ \$lst\ 0\ \[expr\ \{\$start-1\}\]\]\n\ \ \ \ set\ l\ \[llength\ \$lst\]\n\ \ \ \ for\ \{set\ i\ \$idx\}\ \{\$i\ <\ \$l\}\ \{incr\ i\ 2\}\ \{\n\ \ \ \ \ \ if\ \{\[lindex\ \$lst\ \$i\]\ ne\ \$op\}\ then\ break\n\ \ \ \ \}\n\ \ \ \ set\ end\ \[expr\ \{\$i-1\}\]\n\ \ \ \ lappend\ result\\\n\ \ \ \ \ \ \[lrange\ \$lst\ \$start\ \$end\]\\\n\ \ \ \ \ \ \{*\}\[groupByOp\ \[lrange\ \$lst\ \[expr\ \{\$end+1\}\]\ end\]\ \$op\]\n\ \ \}\n\}\n\nproc\ infixToPrefix::groupByOps\ \{lst\ args\}\ \{\n\ \ #\ group\ subsequently\ by\ operators\n\ \ foreach\ op\ \$args\ \{\n\ \ \ \ set\ lst\ \[groupByOp\ \$lst\ \$op\]\n\ \ \}\n\ \ set\ lst\n\}\n\nproc\ infixToPrefix::groupByPrecedence\ lst\ \{\n\ \ #\ group\ by\ precedence:\ function-name,\ ^,\ /,\ *,\ -,\ +\n\ \ if\ \{\[llength\ \$lst\]\ <\ 2\}\ then\ \{\n\ \ \ \ set\ result\ \$lst\n\ \ \}\ else\ \{\n\ \ \ \ set\ result\ \[groupByOps\ \[extractFunctions\ \$lst\]\ ^\ /\ *\ -\ +\]\n\ \ \}\n\ \ if\ \{\[llength\ \$result\]\ ==\ 1\}\ then\ \{\n\ \ \ \ lindex\ \$result\ 0\n\ \ \}\ else\ \{\n\ \ \ \ set\ result\n\ \ \}\n\}\n\nproc\ infixToPrefix::grpToPrefix\ grp\ \{\n\ \ #\ put\ infix-operators\ to\ front\n\ \ if\ \{\[llength\ \$grp\]\ ==\ 1\}\ then\ \{\n\ \ \ \ set\ grp\n\ \ \}\ elseif\ \{\[llength\ \$grp\]\ ==\ 2\}\ then\ \{\n\ \ \ \ list\ \[lindex\ \$grp\ 0\]\ \[grpToPrefix\ \[lindex\ \$grp\ 1\]\]\n\ \ \}\ else\ \{\n\ \ \ \ lassign\ \$grp\ term\ op\n\ \ \ \ lappend\ result\ \$op\ \[grpToPrefix\ \$term\]\n\ \ \ \ foreach\ \{op\ term\}\ \[lrange\ \$grp\ 1\ end\]\ \{\n\ \ \ \ \ \ lappend\ result\ \[grpToPrefix\ \$term\]\n\ \ \ \ \}\n\ \ \ \ set\ result\n\ \ \}\n\}\n\nproc\ infixToPrefix::simplifyExpr\ prf\ \{\n\ \ #\ splice\ nested\ terms\ with\ equal\ operator\n\ \ if\ \{\[llength\ \$prf\]\ <\ 2\}\ then\ \{\n\ \ \ \ set\ prf\n\ \ \}\ else\ \{\n\ \ \ \ set\ op\ \[lindex\ \$prf\ 0\]\n\ \ \ \ lappend\ result\ \$op\n\ \ \ \ foreach\ expr\ \[lrange\ \$prf\ 1\ end\]\ \{\n\ \ \ \ \ \ set\ expr1\ \[simplifyExpr\ \$expr\]\n\ \ \ \ \ \ if\ \{\$op\ in\ \{+\ *\}\ &&\ \[lindex\ \$expr1\ 0\]\ eq\ \$op\}\ then\ \{\n\ \ \ \ \ \ \ \ lappend\ result\ \{*\}\[lrange\ \$expr1\ 1\ end\]\n\ \ \ \ \ \ \}\ else\ \{\n\ \ \ \ \ \ \ \ lappend\ result\ \$expr1\n\ \ \ \ \ \ \}\n\ \ \ \ \}\n\ \ \ \ set\ result\n\ \ \}\n\}\n\n======\n\n\ if\ false\ \{\n\nThe\ final\ function\ transforms\ braces\ to\ brackets\nand\ maxima-specific\ terms\ to\ own-specific\ ones.\n\n\ \}\n\n======\n\nproc\ infixToPrefix::infixToPrefix\ term\ \{\n\ \ #\ return\ lambda-expr\ to\ be\ apply'd\n\ \ set\ tok\ \[tokenize\ \$term\]\n\ \ set\ lis\ \[listify\ \$tok\]\n\ \ set\ grp\ \[groupByPrecedence\ \$lis\]\n\ \ set\ prf\ \[grpToPrefix\ \$grp\]\n\ \ set\ exp\ \[simplifyExpr\ \$prf\]\n\ \ set\ trns\ \[string\ map\\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \[list\ \\\{\ \\\[\ \\\}\ \\\]\\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ %i\ \"\{0\ 1\}\"\\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ^\ complex**\ sqrt\ complexSqrt\\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ /\ complex/\ *\ complex*\\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -\ complex-\ +\ complex+\]\\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \$exp\]\n\ \ regsub\ -all\ \{\ (\[a-zA-Z\]+)\}\ \$trns\ \{\ \$\\1\}\n\}\n\nnamespace\ import\ infixToPrefix::infixToPrefix\ \n\n\n======\n\n<<categories>>infix} CALL {my revision {infix to prefix}} CALL {::oo::Obj1117901 process revision/infix+to+prefix} CALL {::oo::Obj1117899 process}

-errorcode

NONE

-errorinfo

Unknow state transition: LINE -> END
    while executing
"error $msg"
    (class "::Wiki" method "render_wikit" line 6)
    invoked from within
"my render_$default_markup $N $C $mkup_rendering_engine"
    (class "::Wiki" method "render" line 8)
    invoked from within
"my render $name $C"
    (class "::Wiki" method "revision" line 31)
    invoked from within
"my revision $page"
    (class "::Wiki" method "process" line 56)
    invoked from within
"$server process [string trim $uri /]"

-errorline

4