示例#1
0
文件: Parser.cs 项目: natiiix/funk
        public static bool TryParseExpression(List <Token> tokens, out IExpression result)
        {
            // Number
            if (NumberExpression.TryParse(tokens, out NumberExpression numExpr))
            {
                result = numExpr;
                return(true);
            }
            // Symbol
            else if (SymbolExpression.TryParse(tokens, out SymbolExpression symExpr))
            {
                result = symExpr;
                return(true);
            }
            // Function definition
            else if (FunctionExpression.TryParse(tokens, out FunctionExpression funcExpr))
            {
                result = funcExpr;
                return(true);
            }
            // Function call
            else if (CallExpression.TryParse(tokens, out CallExpression callExpr))
            {
                result = callExpr;
                return(true);
            }

            result = null;
            return(false);
        }