scala parsing (wip)