Beispiel #1
0
int PP_Expression::logical_AND_expression()
{
    int value = inclusive_OR_expression();
    if (test(PP_ANDAND))
        return logical_AND_expression() && value;
    return value;
}
Beispiel #2
0
int PP_Expression::logical_OR_expression()
{
    int value = logical_AND_expression();
    if (test(PP_OROR))
        return logical_OR_expression() || value;
    return value;
}
Expression *ExpressionBuilder::logical_AND_expression()
{
    Expression *value = inclusive_OR_expression();
    if (test(Token_and))
        return createBinaryExpression(Expression::AndOp, value, logical_AND_expression());
    return value;
}
Expression *ExpressionBuilder::logical_OR_expression()
{
    Expression *value = logical_AND_expression();
    if (test(Token_or))
        return createBinaryExpression(Expression::OrOp, value, logical_OR_expression());
    return value;
}
Beispiel #5
0
/* FIRST(logical OR expression’)={.OR.,e}
<logical OR expression’> -> 
	.OR. <logical AND expression> <logical OR expression’> | e
Author: Kwok Hong Kelvin Chan */
void logical_OR_expression_p(void){
	switch(lookahead_token.code){
		case LOG_OP_T:
			switch (lookahead_token.attribute.log_op){
				case OR: 
					match(LOG_OP_T, OR);
					logical_AND_expression();
					logical_OR_expression_p(); 
					gen_incode("Logical OR expression parsed"); 
					break;
			}
	}
}
Beispiel #6
0
/* FIRST(logical OR expression)={AVID_T, FPL_T,INL_T,SVID_T, STR_T}
<logical OR expression> ->  
	<logical AND expression> <logical OR expression’>
Author: Kyle Hinskens */
void logical_OR_expression(void){
	logical_AND_expression();
	logical_OR_expression_p(); 
}