if (raw == null) return posify(new IntegralLiteral());
String v = raw.trim().toLowerCase();
if (v.startsWith("0x")) {
if (v.contains("p")) return posify(new FloatingPointLiteral().rawValue(raw));
return posify(new IntegralLiteral().rawValue(raw));
}
if (v.contains(".") || v.endsWith("d") || v.endsWith("f") || v.contains("e")) {
return posify(new FloatingPointLiteral().rawValue(raw));
}
else return posify(new IntegralLiteral().rawValue(raw));
}