Revision 40 logic/trunk/src/logics/operators.c

View differences:

operators.c
1 1
#include "operators.h"
2
#include <stdio.h>
2 3

  
3
int operator_AND(int a, int b)
4
int evalOperators(int opr, int a, int b)
4 5
{
5
    if(a && b)
6
        return 1;
7
    return 0;
6
    switch(opr)
7
    {
8
        case AND:
9
            //printf("\t--- Evaluating a %d && b %d = %d\n",a,b,a&&b);
10
            return a&&b;
11
        case NOT_AND:
12
            //printf("\t--- Evaluating !(a %d && b %d) = %d\n",a,b, !(a&&b));
13
            return !(a&&b);
14
        case OR:
15
            //printf("\t--- Evaluating a %d || b %d = %d\n",a,b, a||b);
16
            return a||b;
17
        case XOR:
18
            //printf("\t--- Evaluating (!a %d && b %d )||(a %d && !b %d)= %d\n",a,b,a,b,(!a&&b)||(a&&!b));
19
            return (!a&&b)||(a&&!b);
20
        case GREATER:
21
            //printf("\t--- Evaluating a %d > b %d = %d\n",a,b, a>b);
22
            return a>b;
23
        case GREATER_OR_EQUAL:
24
            //printf("\t--- Evaluating a %d >= b %d = %d\n",a,b, a>=b);
25
            return a>=b;
26
        case LESS:
27
            //printf("\t--- Evaluating a %d < b %d = %d\n",a,b, a<b);
28
            return a<b;
29
        case LESS_OR_EQUAL:
30
            //printf("\t--- Evaluating a %d <= b %d = %d\n",a,b, a<=b);
31
            return a<=b;
32
        default:
33
            printf("Evaluation gone wrong!\n");
34
            return NULL;
35
    }
36
    return NULL;
8 37
}
9

  
10
int operator_NOT_AND(int a, int b)
11
{
12
//    if((!a  b) || )
13
        return 1;
14
    return 0;
15
}
16

  
17
int operator_OR(int a, int b)
18
{
19
    if(a || b)
20
        return 1;
21
    return 0;
22
}
23

  
24
int operator_XOR(int a, int b)
25
{
26
    if((a && !b) || (!a && b))
27
        return 1;
28
    return 0;
29
}
30

  
31
int operator_GREATER(int a, int b)
32
{
33
    if(a > b)
34
        return 1;
35
    return 0;
36
}
37

  
38
int operator_GREATER_OR_EQUAL (int a, int b)
39
{
40
    if(a >= b)
41
        return 1;
42
    return 0;
43
}
44

  
45
int operator_LESS(int a, int b)
46
{
47
    if(a < b)
48
        return 1;
49
    return 0;
50
}
51

  
52
int operator_LESS_OR_EQUAL(int a, int b)
53
{
54
    if(a <= b)
55
        return 1;
56
    return 0;
57
}

Also available in: Unified diff