/** * Main interface to the GPP library. */ module stratego/gpp/Main strategies /** * Format a box to a string. * * @type Box -> String * @todo Improve performance. */ box2text-string(|width) = abox2text(|width) ; (is-string <+ flatten-list; concat-strings) /** * Format a box and print the text to a stream. * * @type Box -> Stream */ box2text-stream(|width, stream) = abox2text(|width) ; gpp-topdown-fputs(|stream) ; !stream strategies /** * Pretty-prints an ATerm to a Box using the given pretty-print tables. * * @param List(PpTable) * @type a -> Box */ ast2box(|pptables) = ast2abox(|pptables) /** * Parse a pp table from a file. * * @type String -> PpTable */ parse-pptable-file = where( import-term(pp-table.tbl) ; tbl := <open-parse-table> ) ; finally(parse-file(|tbl), <close-parse-table> tbl)