-- Unparser.mesa, last edited September 9, 1982 5:44 pm

-- unparses a symbolic expression f and produces a rope.  The designated
-- subexpression culprit is bracketed in the resulting rope by a pair of
-- ascii nulls.  To avoid this, make no subexpression of f equal to culprit.
-- Last Edited by: Gnelson, January 10, 1983 5:57 pm

DIRECTORY Rope, ParseTable;

Unparser: DEFINITIONS =
  BEGIN

    Unparse: PROC[f: REF ANY,   -- unparses Car[f], not f!
                      culprit: REF ANY,  
                      margin: INTEGER, 
                      p: ParseTable.Handle,
                      openCount: INT] 
               RETURNS  [Rope.ROPE];

    LexemeToRope: PROC[f: REF ANY] RETURNS [Rope.ROPE];

  END.