private TokenId GetLiteralToken(Action first, Action second)
{
char quote = _ch;
do
{
NextChar();
first();
while (_textPos < _textLen && _ch != quote)
{
second();
NextChar();
}
if (_textPos == _textLen)
throw ParseError(_textPos, Res.UnterminatedStringLiteral);
NextChar();
} while (_ch == quote);
return TokenId.StringLiteral;
}