public static CbVal ValDe(CbAst ast) { return(ast switch { CbAst.Bool { Item : var v } => CbVal.NewBool(v),
public static object?ItemDe(Type t, CbAst ast) => t.IsPrimitive ? DePrimitive(t, ast) : t.IsEnum ? DeEnum(t, ast) : t.IsAssignableFrom(typeof(DateTime)) ? DeDate(t, ast) : t.IsAssignableFrom(typeof(string)) ? DeStr(t, ast) : ast switch {
public static T ItemDe <T>(Type t, CbAst ast) => (T)ItemDe(t, ast) !;
public static CbVal DoDeAstVal(CbAst ast) => DeCbVal.ValDe(ast);
public static T DoDeAst <T>(CbAst ast) => ItemDe <T>(CheckDeType(typeof(T)), ast);