import scala.
util.
parsing.
input.
_ import scala.
util.
parsing.
combinator.
_
name <- """[^:]+""".r;
_ <- """:\s*""".r;
isMoron <- ("true" | "false").map(_.toBoolean)
val morons
= repsep
(pair,
"""\r?\n""".
r)
val input
= """Bartek Banachewicz: false Ell: false
Puppy: true
rightfold: false"""
morons
(new CharSequenceReader
(input
)) match { case Success
(elements,
_) => elements.
foreach { case (name, isMoron
) => println
(name +
" is" +
(if (isMoron
) "" else " not") +
" a moron!") }
}
}
aW1wb3J0IHNjYWxhLnV0aWwucGFyc2luZy5pbnB1dC5fCmltcG9ydCBzY2FsYS51dGlsLnBhcnNpbmcuY29tYmluYXRvci5fCgpvYmplY3QgTWFpbiBleHRlbmRzIEFwcCB3aXRoIFBhcnNlcnMgd2l0aCBSZWdleFBhcnNlcnMgewogIG92ZXJyaWRlIGRlZiBza2lwV2hpdGVzcGFjZSA9IGZhbHNlCgogIHZhbCBwYWlyID0gZm9yICgKICAJbmFtZSA8LSAiIiJbXjpdKyIiIi5yOwogIAlfIDwtICIiIjpccyoiIiIucjsKICAJaXNNb3JvbiA8LSAoInRydWUiIHwgImZhbHNlIikubWFwKF8udG9Cb29sZWFuKQogICkgeWllbGQgKG5hbWUsIGlzTW9yb24pCiAgdmFsIG1vcm9ucyA9IHJlcHNlcChwYWlyLCAiIiJccj9cbiIiIi5yKQoKICB2YWwgaW5wdXQgPSAiIiJCYXJ0ZWsgQmFuYWNoZXdpY3o6IGZhbHNlCkVsbDogZmFsc2UKUHVwcHk6IHRydWUKcmlnaHRmb2xkOiBmYWxzZSIiIgoKICBtb3JvbnMobmV3IENoYXJTZXF1ZW5jZVJlYWRlcihpbnB1dCkpIG1hdGNoIHsKICAJY2FzZSBTdWNjZXNzKGVsZW1lbnRzLCBfKSA9PgogICAgICBlbGVtZW50cy5mb3JlYWNoIHsgY2FzZSAobmFtZSwgaXNNb3JvbikgPT4KICAgICAgICBwcmludGxuKG5hbWUgKyAiIGlzIiArIChpZiAoaXNNb3JvbikgIiIgZWxzZSAiIG5vdCIpICsgIiBhIG1vcm9uISIpCiAgICAgIH0KICB9Cn0K