コード例 #1
0
ファイル: preprocessor.cpp プロジェクト: AtlantisCD9/Qt
int PP_Expression::logical_OR_expression()
{
    int value = logical_AND_expression();
    if (test(PP_OROR))
        return logical_OR_expression() || value;
    return value;
}
コード例 #2
0
Expression *ExpressionBuilder::logical_OR_expression()
{
    Expression *value = logical_AND_expression();
    if (test(Token_or))
        return createBinaryExpression(Expression::OrOp, value, logical_OR_expression());
    return value;
}
コード例 #3
0
ファイル: preprocessor.cpp プロジェクト: AtlantisCD9/Qt
int PP_Expression::conditional_expression()
{
    int value = logical_OR_expression();
    if (test(PP_QUESTION)) {
        int alt1 = conditional_expression();
        int alt2 = test(PP_COLON) ? conditional_expression() : 0;
        return value ? alt1 : alt2;
    }
    return value;
}
コード例 #4
0
Expression *ExpressionBuilder::conditional_expression()
{
    Expression *value = logical_OR_expression();
    if (test('?')) {
        Expression *leftExpression = conditional_expression();
        Expression *rightExpression;
        if(test(':'))
            rightExpression = conditional_expression();
        else
            rightExpression = createIntLiteral(0);
        return createConditionalExpression(value, leftExpression, rightExpression);
    }
    return value;
}
コード例 #5
0
ファイル: parser.c プロジェクト: Drag0n5layer/Parser
/* FIRST(conditional expression)={AVID_T, FPL_T,INL_T,SVID_T, STR_T}
<conditional expression> -> 
	<logical OR expression>
Author: Kwok Hong Kelvin Chan */
void conditional_expression(void){
	logical_OR_expression();
	gen_incode("Conditional expression parsed");
}