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