diff options
author | Jakob Odersky <jodersky@gmail.com> | 2012-10-30 21:14:35 +0100 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2012-10-30 21:14:35 +0100 |
commit | cf87abecddbded2561b29c555cb4c1d1a180b4ca (patch) | |
tree | 6c766cb4099e92e87646355591e3ed8100a2b12a /src/main/scala/scalam/plotting | |
parent | 9dd20a4165e5fffdd397612ddf02d313222adcdd (diff) | |
download | scalam-cf87abecddbded2561b29c555cb4c1d1a180b4ca.tar.gz scalam-cf87abecddbded2561b29c555cb4c1d1a180b4ca.tar.bz2 scalam-cf87abecddbded2561b29c555cb4c1d1a180b4ca.zip |
adaptions required by ast refactoring
Diffstat (limited to 'src/main/scala/scalam/plotting')
-rw-r--r-- | src/main/scala/scalam/plotting/Plot.scala | 32 | ||||
-rw-r--r-- | src/main/scala/scalam/plotting/Plotter.scala | 5 |
2 files changed, 17 insertions, 20 deletions
diff --git a/src/main/scala/scalam/plotting/Plot.scala b/src/main/scala/scalam/plotting/Plot.scala index 5caec23..5494ace 100644 --- a/src/main/scala/scalam/plotting/Plot.scala +++ b/src/main/scala/scalam/plotting/Plot.scala @@ -24,8 +24,9 @@ class Plot( case (d, i) => RichDataSet(d, Path("data") / i.toString, Identifier("data" + (i + 1))) } - lazy val statements: List[Statement] = { - def loadData(dataSet: RichDataSet) = Assign(dataSet.id, Function(Identifier("load"), StringLiteral(dataSet.localPath.path))) + lazy val roots: List[Root] = { + def loadData(dataSet: RichDataSet) = + Assign(dataSet.id, Function(Identifier("load"), StringLiteral(dataSet.localPath.path))) withComment SimpleComment(dataSet.id.m) val (initial: Seq[Seq[Statement]], styleMaps: Iterable[DataSet => StyleElement]) = styles.map(_.apply(dataSets)).unzip @@ -33,12 +34,12 @@ class Plot( val on = StringLiteral("on") val off = StringLiteral("off") def newFigure(figureId: Identifier) = Assign(figureId, Function(Identifier("figure"))) - def hold(b: Boolean) = Evaluate(Function(Identifier("hold"), if (b) on else off)) - def grid(show: Boolean) = Evaluate(Function(Identifier("grid"), if (show) on else off)) - def title(s: String) = Evaluate(Function(Identifier("title"), StringLiteral(s))) - def xLabel(s: String) = Evaluate(Function(Identifier("xlabel"), StringLiteral(s))) - def yLabel(s: String) = Evaluate(Function(Identifier("ylabel"), StringLiteral(s))) - def fontSize(size: Int) = Evaluate(Function(Identifier("set"), Variable(Identifier("gca")), StringLiteral("fontsize"), IntLiteral(size))) + def hold(b: Boolean) = Function(Identifier("hold"), if (b) on else off) + def grid(show: Boolean) = Function(Identifier("grid"), if (show) on else off) + def title(s: String) = Function(Identifier("title"), StringLiteral(s)) + def xLabel(s: String) = Function(Identifier("xlabel"), StringLiteral(s)) + def yLabel(s: String) = Function(Identifier("ylabel"), StringLiteral(s)) + def fontSize(size: Int) = Function(Identifier("set"), Variable(Identifier("gca")), StringLiteral("fontsize"), IntLiteral(size)) def plot(dataSet: RichDataSet) = { val plot = Identifier("plot") val styleParams = styleMaps.flatMap(styleMap => {val style = styleMap.apply(dataSet.underlying); Seq(style.name, style.expression)}) @@ -47,12 +48,12 @@ class Plot( IndexMatrix(dataSet.id, SliceLiteral, IntLiteral(2))) ++ styleParams - Evaluate(Function(plot, params: _*)) + Function(plot, params: _*) } def legend(dataSets: Seq[DataSet]) = - Evaluate(Function(Identifier("legend"), (for (d <- dataSets) yield StringLiteral(d.label)): _*)) :: Nil + Function(Identifier("legend"), (for (d <- dataSets) yield StringLiteral(d.label)): _*) :: Nil - val commands = new scala.collection.mutable.ListBuffer[Statement] + val commands = new scala.collection.mutable.ListBuffer[Root] commands ++= (for (d <- richDataSets) yield loadData(d)) commands ++= initial.flatten commands += newFigure(figureId) @@ -71,10 +72,7 @@ class Plot( val df = new java.text.SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss") val now = (new java.util.Date(System.currentTimeMillis())) - - "%% Generated by scalam, v1.0\n" + - "%% " + df.format(now) + "\n" - + Seq(DoubleComment("Generated by scalam, v1.0-new"), DoubleComment(df.format(now))) } def save() = { @@ -83,8 +81,8 @@ class Plot( val plotFile = (directory / localPlotFile) plotFile.createFile(createParents = true, failIfExists = false) for (processor <- plotFile.outputProcessor; out = processor.asOutput) { - out.write(preamble) - for (s <- statements) out.write(s.m + "\n") + for (p <- preamble) out.write(p.line + "\n") + for (r <- roots) out.write(r.line + "\n") } } diff --git a/src/main/scala/scalam/plotting/Plotter.scala b/src/main/scala/scalam/plotting/Plotter.scala index cfd7b7e..46e579f 100644 --- a/src/main/scala/scalam/plotting/Plotter.scala +++ b/src/main/scala/scalam/plotting/Plotter.scala @@ -14,9 +14,8 @@ trait Plotter { def plot(dataSets: Seq[DataSet], title: String, x: String, y: String, grid: Boolean = true, legend: Boolean = true)(implicit styles: Seq[Style[_]] = defaultStyles, fontSize: FontSize = defaultFontSize) = { val p = new Plot(dataSets, title, x, y, grid, legend, styles = styles, fontSize = fontSize.fontSize) p.save() - val s = Evaluate(Function(Identifier("run"), StringLiteral((p.directory / p.localPlotFile).path))) - //val s = "run '" + (p.directory / p.localPlotFile).path + "'" - println(s.m) + val s = Function(Identifier("run"), StringLiteral((p.directory / p.localPlotFile).path)) + println(s.line) interpreter.evaluate(s) } |