aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/values/PrimitiveValue.java
blob: a970e5f5423e23f71d146dcf3d1871b023f50baf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package org.zwobble.couscous.values;

import org.zwobble.couscous.types.ScalarType;
import org.zwobble.couscous.types.Type;

public interface PrimitiveValue {
    <T> T accept(Visitor<T> visitor);
    Type getType();

    interface Visitor<T> {
        T visitInteger(int value);
        T visitChar(char value);
        T visitString(String value);
        T visitBoolean(boolean value);
        T visitUnit();
        T visitType(ScalarType value);
    }
}