Exemple #1
0
        public static LinkedListNode <Lexeme> TryParse(LinkedListNode <Lexeme> lexemes, out Expr resultNode)
        {
            resultNode = null;
            var nextLexeme = UnaryExpr.TryParse(lexemes, out UnaryExpr pre);

            if (pre != null)
            {
                resultNode = pre;
                return(nextLexeme);
            }

            nextLexeme = ArrayInitializer.TryParse(nextLexeme, out ArrayInitializer arrInit);
            if (arrInit != null)
            {
                resultNode = arrInit;
                return(nextLexeme);
            }

            nextLexeme = Literal.TryParse(lexemes, out Literal lit);
            if (lit != null)
            {
                resultNode = lit;
                return(nextLexeme);
            }

            nextLexeme = TryParseNoLit(lexemes, out Expr nolit);
            if (nolit != null)
            {
                resultNode = nolit;
                return(nextLexeme);
            }

            return(lexemes);
        }