diff --git a/2015/day16.scala b/2015/day16.scala index 904d0d9..9f99046 100644 --- a/2015/day16.scala +++ b/2015/day16.scala @@ -9,14 +9,11 @@ import cats.parse.Rfc5234.{digit, alpha} type Clue = Map[String, Int] -val ident: Parser[String] = - alpha.rep.string - val id: Parser[Int] = string("Sue ") *> number <* string(": ") val clue: Parser[(String, Int)] = - (ident <* string(": ")) ~ number + (alphas <* string(": ")) ~ number val clues: Parser[Clue] = clue.repSep(string(", ")).map(_.toList.toMap) diff --git a/2015/day9.scala b/2015/day9.scala index f52ff02..3a6ac38 100644 --- a/2015/day9.scala +++ b/2015/day9.scala @@ -4,12 +4,10 @@ import prelude.* import prelude.parser.* import cats.parse.Parser -import cats.parse.Parser.* -import cats.parse.Rfc5234.alpha import y2015.day7.Parser.keyword -val city: Parser[String] = alpha.rep.string +val city = alphas val path = for from <- city <* keyword("to") diff --git a/prelude/parser.scala b/prelude/parser.scala index f82eb76..fff1ed7 100644 --- a/prelude/parser.scala +++ b/prelude/parser.scala @@ -5,3 +5,6 @@ import cats.parse.Rfc5234.{digit, alpha} val number: Parser[Int] = digit.rep.string.map(_.toInt) + +val alphas: Parser[String] = + alpha.rep.string