aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2012-10-30 21:14:35 +0100
committerJakob Odersky <jodersky@gmail.com>2012-10-30 21:14:35 +0100
commitcf87abecddbded2561b29c555cb4c1d1a180b4ca (patch)
tree6c766cb4099e92e87646355591e3ed8100a2b12a
parent9dd20a4165e5fffdd397612ddf02d313222adcdd (diff)
downloadscalam-cf87abecddbded2561b29c555cb4c1d1a180b4ca.tar.gz
scalam-cf87abecddbded2561b29c555cb4c1d1a180b4ca.tar.bz2
scalam-cf87abecddbded2561b29c555cb4c1d1a180b4ca.zip
adaptions required by ast refactoring
-rw-r--r--src/main/scala/scalam/m/MatlabInterpreter.scala4
-rw-r--r--src/main/scala/scalam/plotting/Plot.scala32
-rw-r--r--src/main/scala/scalam/plotting/Plotter.scala5
3 files changed, 19 insertions, 22 deletions
diff --git a/src/main/scala/scalam/m/MatlabInterpreter.scala b/src/main/scala/scalam/m/MatlabInterpreter.scala
index 88667e8..2b055e2 100644
--- a/src/main/scala/scalam/m/MatlabInterpreter.scala
+++ b/src/main/scala/scalam/m/MatlabInterpreter.scala
@@ -4,9 +4,9 @@ import ast._
import scalax.file.Path
class MatlabInterpreter(pwd: Path) extends Interpreter("matlab -nosplash -nodesktop", pwd) {
- def evaluate(statement: ast.Statement) = write(statement.m + "\n")
+ def evaluate(root: ast.Root) = write(root.line + "\n")
def exit() = {
- val cmd = Evaluate(Function(Identifier("exit")))
+ val cmd = Function(Identifier("exit"))
evaluate(cmd)
super.close()
}
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)
}