%%HP: T(3)A(R)F(.);
\<< DUPDUP "(" POS OVER
")" POS SUB \-> cmdstr
cmplx
  \<<
    IF cmplx "\<)" POS
    THEN cmplx 2 OVER
"\<)" POS 1 - SUB cmplx
DUP "\<)" POS 1 + OVER
SIZE 1 - SUB \-> r q
      \<<
        IF r SIZE NOT
q SIZE NOT OR
        THEN cmdstr
OBJ\->
        ELSE
          IFERR r
OBJ\->
          THEN DROP
cmdstr
          ELSE
            IFERR q
OBJ\->
            THEN
DROP2 cmdstr
            ELSE
              IF OVER
DUP TYPE NOT SWAP
TYPE 28. == OR OVER
TYPE 13. == AND
              THEN
DUP COS SWAP SIN R\->C
* \->NUM \->STR cmdstr
cmplx ROT SREPL DROP
OBJ\->
              ELSE
DROP2 cmdstr OBJ\->
              END
            END
          END
        END
      \>>
    ELSE cmdstr OBJ\->
    END
  \>>
\>>