Constructing Parsers By Example Via Interactive Program Synthesis