
parser
By: a guest on
Apr 13th, 2012 | syntax:
Scala | size: 0.74 KB | hits: 30 | expires: Never
scala> import scala.util.parsing.combinator._
import scala.util.parsing.combinator._
scala> object ExspessionParser extends JavaTokenParsers {
| def parseExpr(e: String) = parseAll(expr, e)
|
| def expr: Parser[Seq[(Double, Double)]] = "[" ~> repsep(pair, ",") <~ "]"
| def pair: Parser[(Double, Double)] = "\"" ~> floatingPointNumber ~ "," ~ floatingPointNumber <~ "\"" ^^ {case a ~ b ~ c => (a.toDouble, c.toDouble) }
| }
defined module ExspessionParser
scala> ExspessionParser.parseExpr("""["142.5,106.1","142.5,112.1","143.5,119.1","144.5,128.1","146.5,138.1","147.5,148.1"]""").get
res11: Seq[(Double, Double)] = List((142.5,106.1), (142.5,112.1), (143.5,119.1), (144.5,128.1), (146.5,138.1), (147.5,148.1))