// Path: app/src/main/java/com/annimon/hotarufx/parser/visitors/ResultVisitor.java
// public interface ResultVisitor<R, T> {
// 
//     R visit(AccessNode node, T t);
//     R visit(ArrayNode node, T t);
//     R visit(AssignNode node, T t);
//     R visit(BlockNode node, T t);
//     R visit(FunctionNode node, T t);
//     R visit(MapNode node, T t);
//     R visit(PropertyNode node, T t);
//     R visit(UnaryNode node, T t);
//     R visit(UnitNode node, T t);
//     R visit(ValueNode node, T t);
//     R visit(VariableNode node, T t);
// 
//     Value get(AccessNode node, T t);
//     Value set(AccessNode node, Value value, T t);
//     Value get(VariableNode node, T t);
//     Value set(VariableNode node, Value value, T t);
// }


import com.annimon.hotarufx.parser.visitors.ResultVisitor;
package com.annimon.hotarufx.parser.ast;


public class UnaryNode extends ASTNode {

    public enum Operator { NEGATE };

    public final Operator operator;
    public final Node node;

    public UnaryNode(Operator operator, Node node) {
        this.operator = operator;
        this.node = node;
    }

    @Override
// Path: app/src/main/java/com/annimon/hotarufx/parser/visitors/ResultVisitor.java
// public interface ResultVisitor<R, T> {
// 
//     R visit(AccessNode node, T t);
//     R visit(ArrayNode node, T t);
//     R visit(AssignNode node, T t);
//     R visit(BlockNode node, T t);
//     R visit(FunctionNode node, T t);
//     R visit(MapNode node, T t);
//     R visit(PropertyNode node, T t);
//     R visit(UnaryNode node, T t);
//     R visit(UnitNode node, T t);
//     R visit(ValueNode node, T t);
//     R visit(VariableNode node, T t);
// 
//     Value get(AccessNode node, T t);
//     Value set(AccessNode node, Value value, T t);
//     Value get(VariableNode node, T t);
//     Value set(VariableNode node, Value value, T t);
// }


// Path: app/src/main/java/com/annimon/hotarufx/parser/ast/UnaryNode.java
import com.annimon.hotarufx.parser.visitors.ResultVisitor;

package com.annimon.hotarufx.parser.ast;


public class UnaryNode extends ASTNode {

    public enum Operator { NEGATE };

    public final Operator operator;
    public final Node node;

    public UnaryNode(Operator operator, Node node) {
        this.operator = operator;
        this.node = node;
    }

    @Override
    public <R, T> R accept(ResultVisitor<R, T> visitor, T input) {