package synthesijer.hdl;
public interface HDLType {
public HDLExpr getDefaultValue();
public String getVHDL();
public String getVerilogHDL();
public boolean isEqual(HDLType t);
public enum KIND {
VECTOR, BIT, SIGNED, USERDEF, INTEGER, STRING, DIGIT, UNKNOWN;
public boolean hasWidth(){
switch (this) {
case VECTOR:
case SIGNED:
return true;
default:
return false;
}
}
public boolean isPrimitive(){
switch (this) {
case VECTOR:
case BIT:
case SIGNED:
case INTEGER:
case DIGIT:
case STRING:
return true;
default:
return false;
}
}
}
public KIND getKind();
public boolean isBit();
public boolean isVector();
public boolean isSigned();
public boolean isInteger();
public boolean isDigit();
public boolean hasWidth();
public int getWidth();
}