Skip to content

Instantly share code, notes, and snippets.

@TheBizzle
Created June 1, 2017 19:59
Show Gist options
  • Select an option

  • Save TheBizzle/ff52c182baa60e89fe5c81e62cf82460 to your computer and use it in GitHub Desktop.

Select an option

Save TheBizzle/ff52c182baa60e89fe5c81e62cf82460 to your computer and use it in GitHub Desktop.
diff --git a/tortoise/src/main/scala/Compiler.scala b/tortoise/src/main/scala/Compiler.scala
index b8bff4d..492e0b7 100644
--- a/tortoise/src/main/scala/Compiler.scala
+++ b/tortoise/src/main/scala/Compiler.scala
@@ -114,7 +114,8 @@ object Compiler extends CompilerLike {
compileMoreProcedures(model, prog, procs)
}
- val compiledProcedures = new ProcedureCompiler(handlers)(compilerFlags = compilerFlags, compilerContext = new CompilerContext(blockLevel = 0, source = model.code)).compileProcedures(procedureDefs)
+ implicit val wrapper = SourceWrapper(model.code)
+ val compiledProcedures = new ProcedureCompiler(handlers).compileProcedures(procedureDefs)
val compiledWidgets =
{
@@ -158,15 +159,16 @@ object Compiler extends CompilerLike {
val header = SourceWrapping.getHeader(AgentKind.Observer, commands)
val footer = SourceWrapping.getFooter(commands)
val wrapped = s"$header$logo$footer"
+ implicit val wrapper = SourceWrapper(wrapped)
val (defs, _) = frontEnd.frontEnd(wrapped, oldProcedures = oldProcedures, program = program, extensionManager = NLWExtensionManager)
val pd = if (compilerFlags.optimizationsEnabled)
Optimizer(defs.head)
else
defs.head
if (commands)
- handlers.commands(pd.statements, true, !raw)(compilerFlags = compilerFlags, compilerContext = new CompilerContext(blockLevel = 0, source = wrapped))
+ handlers.commands(pd.statements, true, !raw)
else
- handlers.reporter(pd.statements.stmts(1).args(0))(compilerFlags = compilerFlags, compilerContext = new CompilerContext(blockLevel = 0, source = wrapped))
+ handlers.reporter(pd.statements.stmts(1).args(0))
}
private def outputConfig: JsStatement =
diff --git a/tortoise/src/main/scala/CompilerLike.scala b/tortoise/src/main/scala/CompilerLike.scala
index df03e1e..9c0b861 100644
--- a/tortoise/src/main/scala/CompilerLike.scala
+++ b/tortoise/src/main/scala/CompilerLike.scala
@@ -64,6 +64,9 @@ object CompilerFlags {
// this is incremented each time a block of statements is entered
case class CompilerContext(blockLevel: Int = 0, source: String = "")
+case class SourceWrapper(src: String)
+
object CompilerContext {
implicit val Default = CompilerContext()
+ implicit def makeContext(src: SourceWrapper) = CompilerContext(0, src.src)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment