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

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

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

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