From 5f73d7a3e56ce62a0e79eb2eddb104ab8b15d389 Mon Sep 17 00:00:00 2001 From: Minseok Choe Date: Mon, 23 Sep 2024 12:21:38 +0900 Subject: [PATCH] Print Function instead --- .../scala/esmeta/peval/PartialEvaluator.scala | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/main/scala/esmeta/peval/PartialEvaluator.scala b/src/main/scala/esmeta/peval/PartialEvaluator.scala index e9c79ca828..489ccd55a8 100644 --- a/src/main/scala/esmeta/peval/PartialEvaluator.scala +++ b/src/main/scala/esmeta/peval/PartialEvaluator.scala @@ -10,7 +10,6 @@ import esmeta.interpreter.* import esmeta.ir.{Func => IRFunc, *} import esmeta.es.* import esmeta.parser.{ESParser, ESValueParser} -import esmeta.peval.pstate.* import esmeta.state.* import esmeta.ty.* import esmeta.util.BaseUtils.{error => _, *} @@ -158,10 +157,25 @@ class PartialEvaluator( newInst /** final state */ - def run(inst: Inst, pst: PState): (Inst, PState) = timeout( + def run(func: IRFunc, pst: PState): (Inst, PState) = timeout( { + val inst = func.body val result @ (newBody, newPst) = peval(inst, pst) - logging("final", newBody) + + if (log) then + val writer = getPrintWriter(s"$PEVAL_LOG_DIR/result.ir") + writer.print( + IRFunc( + func.main, + func.kind, + s"${func.name}PEvaled", + func.params, + func.retTy, + newBody, + func.algo, + ), + ); + writer.flush(); result }, timeLimit, @@ -230,6 +244,8 @@ class PartialEvaluator( /** cache to get syntax-directed operation (SDO) */ private val getSdo = cached[(Ast, String), Option[(Ast, Func)]](_.getSdo(_)) + + val renamer = Renamer() } /** IR PartialEvaluator with a CFG */