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

sangria.parser.SourceMapper.scala Maven / Gradle / Ivy

There is a newer version: 2.0.1
Show newest version
package sangria.parser

import org.parboiled2.{ParserInput, Position}

trait SourceMapper {
  def source: String
  def renderLocation(position: Position): String
  def renderLinePosition(position: Position): String
}

class Parboiled2SourceMapper(parserInput: ParserInput) extends SourceMapper {
  override def source = parserInput.sliceString(0, parserInput.length)

  override def renderLocation(position: Position) =
    s"(line ${position.line}, column ${position.column})"

  override def renderLinePosition(position: Position) =
    parserInput.getLine(position.line).replace("\r", "") + "\n" + (" " * (position.column - 1)) + "^"
}






© 2015 - 2025 Weber Informatics LLC | Privacy Policy