GraphView.GraphViewParser.ParseLiteralList C# (CSharp) Method

ParseLiteralList() private static method

private static ParseLiteralList ( IList tokens, int &nextToken, List &result, int &farestError ) : bool
tokens IList
nextToken int
result List
farestError int
return bool
        private static bool ParseLiteralList(
            IList<TSqlParserToken> tokens,
            ref int nextToken,
            ref List<Literal> result,
            ref int farestError)
        {
            var currentToken = nextToken;
            var literalList = new List<Literal>();
            if (!ReadToken(tokens, "(", ref currentToken, ref farestError))
                return false;
            Literal literal = null;
            if (ParseMaxLiteral(tokens, ref currentToken, ref literal, ref farestError) ||
                ParseIntegerLiteral(tokens, ref currentToken, ref literal, ref farestError))
                literalList.Add(literal);
            else
                return false;

            if (ReadToken(tokens, ",", ref currentToken, ref farestError))
            {
                if (literalList.First().LiteralType == LiteralType.Integer &&
                    ParseIntegerLiteral(tokens, ref currentToken, ref literal, ref farestError))
                    literalList.Add(literal);
                else
                    return false;
            }

            if (!ReadToken(tokens, ")", ref currentToken, ref farestError))
                return false;
            nextToken = currentToken;
            result = literalList;
            return true;
        }