コード例 #1
0
        private static Expression RecursiveDescentStep(ExpressionLexer lexer, ExprTokenType[] tokens,
                                                       StepDownDelegate stepDown, CreateBinaryDelegate createBinary)
        {
            Expression expr = stepDown(lexer);

            while (true)
            {
                ExprTokenType?token = lexer.CheckNextToken(tokens);
                if (token.HasValue)
                {
                    expr = createBinary(token.Value, expr, stepDown(lexer));
                }
                else
                {
                    break;
                }
            }
            return(expr);
        }
コード例 #2
0
ファイル: ExpressionParser.cs プロジェクト: thawk/structorian
 private static Expression RecursiveDescentStep(ExpressionLexer lexer, ExprTokenType[] tokens,
     StepDownDelegate stepDown, CreateBinaryDelegate createBinary)
 {
     Expression expr = stepDown(lexer);
     while (true)
     {
         ExprTokenType? token = lexer.CheckNextToken(tokens);
         if (token.HasValue)
             expr = createBinary(token.Value, expr, stepDown(lexer));
         else
             break;
     }
     return expr;
 }