aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/Receiver.java
blob: 90395d27d76e3af9a10f180108543df857f45493 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package org.zwobble.couscous.ast;

import org.zwobble.couscous.ast.types.ScalarType;
import org.zwobble.couscous.ast.visitors.NodeTransformer;

public interface Receiver extends Node {
    <T> T accept(Mapper<T> mapper);
    Receiver transform(NodeTransformer transformer);

    interface Mapper<T> {
        T visit(ExpressionNode receiver);
        T visit(ScalarType receiver);
    }
}