implemented KleeneParser and MaybeParser