From 8dd29e18ac7070cc6bcc817799d32c4bc82cf377 Mon Sep 17 00:00:00 2001 From: Manos Koukoutos <emmanouil.koukoutos@epfl.ch> Date: Tue, 9 Aug 2016 15:33:07 +0200 Subject: [PATCH] Finish printers --- src/main/scala/inox/ast/Printers.scala | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/scala/inox/ast/Printers.scala b/src/main/scala/inox/ast/Printers.scala index b7c7e1eb5..7c30e972d 100644 --- a/src/main/scala/inox/ast/Printers.scala +++ b/src/main/scala/inox/ast/Printers.scala @@ -7,6 +7,10 @@ import utils._ import org.apache.commons.lang3.StringEscapeUtils import scala.language.implicitConversions +object optPrintPositions extends InoxFlagOptionDef("printPositions", "Attach positions to trees when printing", false) +object optPrintUniqueIds extends InoxFlagOptionDef("printIds", "Always print unique ids", false) +object optPrintTypes extends InoxFlagOptionDef("printPositions", "Attach types to trees when printing", false) + trait Printers { self: Trees => case class PrinterContext( @@ -32,8 +36,18 @@ trait Printers { self: Trees => } object PrinterOptions { - def fromContext(ctx: InoxContext): PrinterOptions = ??? - def fromSymbols(s: Symbols, ctx: InoxContext): PrinterOptions = ??? + def fromContext(ctx: InoxContext): PrinterOptions = { + PrinterOptions( + baseIndent = 0, + printPositions = ctx.options.findOptionOrDefault(optPrintPositions), + printUniqueIds = ctx.options.findOptionOrDefault(optPrintUniqueIds), + printTypes = ctx.options.findOptionOrDefault(optPrintTypes), + symbols = None + ) + } + def fromSymbols(s: Symbols, ctx: InoxContext): PrinterOptions = { + fromContext(ctx).copy(symbols = Some(s)) + } } trait Printable { -- GitLab