All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scala.reflect.macros.contexts.Parsers.scala Maven / Gradle / Ivy

The newest version!
package scala.reflect.macros
package contexts

import scala.tools.nsc.reporters.StoreReporter

trait Parsers {
  self: Context =>
  import global._

  def parse(code: String) = {
    val sreporter = new StoreReporter()
    val oldReporter = global.reporter
    try {
      global.reporter = sreporter
      val parser = newUnitParser(new CompilationUnit(newSourceFile(code, "")))
      val tree = gen.mkTreeOrBlock(parser.parseStatsOrPackages())
      sreporter.infos.foreach {
        case sreporter.Info(pos, msg, sreporter.ERROR) => throw ParseException(pos, msg)
      }
      tree
    } finally global.reporter = oldReporter
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy