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

scala.reflect.makro.runtime.Parsers.scala Maven / Gradle / Ivy

package scala.reflect.makro
package runtime

import language.existentials
import scala.tools.reflect.ToolBox
import scala.tools.reflect.ToolBoxError

trait Parsers {
  self: Context =>

  def parse(code: String): Tree =
    // todo. provide decent implementation
    try {
      import scala.reflect.runtime.{universe => ru}
      val parsed = ru.rootMirror.mkToolBox().parseExpr(code)
      val importer = universe.mkImporter(ru)
      importer.importTree(parsed)
    } catch {
      case ToolBoxError(msg, cause) =>
        throw new ParseError(universe.NoPosition, msg)
    }

  case class ParseError(val pos: Position, val msg: String) extends Throwable(msg)
  object ParseError extends ParseErrorExtractor
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy