Synthesizing Precise Protocol Specs from Natural Language for Effective Test Generation