aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/Operator.java
blob: 54ab6c6bbf7e61e111009045cb8ae7d5581e109d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package org.zwobble.couscous.ast;

public enum Operator {
    BOOLEAN_AND("&&", true, OperatorType.INFIX),
    BOOLEAN_OR("||", true, OperatorType.INFIX),
    BOOLEAN_NOT("!", true, OperatorType.PREFIX),

    INTEGER_NEGATION("-", false, OperatorType.PREFIX),
    ADD("+", false, OperatorType.INFIX),
    SUBTRACT("-", false, OperatorType.INFIX),
    MULTIPLY("*", false, OperatorType.INFIX),
    DIVIDE("/", false, OperatorType.INFIX),
    MOD("%", false, OperatorType.INFIX),

    EQUALS("==", true, OperatorType.INFIX),
    NOT_EQUALS("!=", true, OperatorType.INFIX),
    GREATER_THAN(">", true, OperatorType.INFIX),
    GREATER_THAN_OR_EQUAL(">=", true, OperatorType.INFIX),
    LESS_THAN("<", true, OperatorType.INFIX),
    LESS_THAN_OR_EQUAL("<=", true, OperatorType.INFIX);

    private final String symbol;
    private final boolean isBoolean;
    private final OperatorType type;

    Operator(String symbol, boolean isBoolean, OperatorType type) {
        this.symbol = symbol;
        this.isBoolean = isBoolean;
        this.type = type;
    }

    public String getSymbol() {
        return symbol;
    }

    public boolean isBoolean() {
        return isBoolean;
    }

    public OperatorType getType() {
        return type;
    }
}