// Path: app/src/main/java/com/annimon/hotarufx/lib/Value.java
// public interface Value extends Comparable<Value> {
// 
//     Object raw();
// 
//     default boolean asBoolean() {
//         return asInt() != 0;
//     }
// 
//     default int asInt() {
//         return asNumber().intValue();
//     }
// 
//     default double asDouble() {
//         return asNumber().doubleValue();
//     }
// 
//     Number asNumber();
// 
//     String asString();
// 
//     int type();
// }
// 
// 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.lib.Value;
import com.annimon.hotarufx.parser.visitors.ResultVisitor;
package com.annimon.hotarufx.parser.ast;


public class VariableNode extends ASTNode implements Accessible {

    public final String name;

    public VariableNode(String name) {
        this.name = name;
    }

    @Override
// Path: app/src/main/java/com/annimon/hotarufx/lib/Value.java
// public interface Value extends Comparable<Value> {
// 
//     Object raw();
// 
//     default boolean asBoolean() {
//         return asInt() != 0;
//     }
// 
//     default int asInt() {
//         return asNumber().intValue();
//     }
// 
//     default double asDouble() {
//         return asNumber().doubleValue();
//     }
// 
//     Number asNumber();
// 
//     String asString();
// 
//     int type();
// }
// 
// 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/VariableNode.java
import com.annimon.hotarufx.lib.Value;
import com.annimon.hotarufx.parser.visitors.ResultVisitor;

package com.annimon.hotarufx.parser.ast;


public class VariableNode extends ASTNode implements Accessible {

    public final String name;

    public VariableNode(String name) {
        this.name = name;
    }

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