type lexTest … var lexTests … func TestLex(t *testing.T) { … } // lines joins the arguments together as complete lines. func lines(a ...string) string { … } // drain returns a single string representing the processed input tokens. func drain(input *Input) string { … } type badLexTest … var badLexTests … func TestBadLex(t *testing.T) { … } // firstError returns the first error value triggered by the input. func firstError(input *Input) (err error) { … }