ASTValue<T>.from constructor

ASTValue<T>.from(
  1. ASTType<T> type,
  2. T value
)

Implementation

factory ASTValue.from(ASTType<T> type, T value) {
  if (value is ASTValue) {
    return value as ASTValue<T>;
  } else if (type is ASTTypeString) {
    return ASTValueString(value as String) as ASTValue<T>;
  } else if (type is ASTTypeInt) {
    return ASTValueInt(value as int) as ASTValue<T>;
  } else if (type is ASTTypeDouble) {
    return ASTValueDouble(value as double) as ASTValue<T>;
  } else if (type is ASTTypeNull) {
    return ASTValueNull.instance as ASTValue<T>;
  } else if (type is ASTTypeObject) {
    return ASTValueObject(value!) as ASTValue<T>;
  } else if (type is ASTTypeVoid) {
    return ASTValueVoid.instance as ASTValue<T>;
  } else if (type is ASTTypeArray3D) {
    return ASTValueArray3D(type, value as dynamic) as ASTValue<T>;
  } else if (type is ASTTypeArray2D) {
    return ASTValueArray2D(type, value as dynamic) as ASTValue<T>;
  } else if (type is ASTTypeArray) {
    return ASTValueArray(type, value as dynamic) as ASTValue<T>;
  } else {
    return ASTValueStatic<T>(type, value);
  }
}