package com.form.language.ast.type; import com.form.language.ast.values.BoolValue; import com.form.language.ast.values.GenericValue; public final class BoolType extends Type { @Override public boolean isBoolType() { return true; } @Override public String toString() { return "Bool"; } @Override public GenericValue defaultValue() { return new BoolValue(false); } @Override //This makes sense because there are no fields. Alternative is making this class a Singleton, but that does make the code less readable public boolean equals(Object o) { return (o instanceof BoolType); } @Override public int hashCode() { return 3; } @Override public <T> T accept(TypeVisitor<T> visitor) { return visitor.visitBoolType(this); } }