in sources/gen_sql.c [204:250]
static void gen_data_type(ast_node *ast) {
if (is_ast_create_data_type(ast)) {
gen_printf("CREATE ");
gen_data_type(ast->left);
return;
}
else if (is_ast_notnull(ast)) {
gen_data_type(ast->left);
gen_printf(" NOT NULL");
return;
}
else if (is_ast_sensitive_attr(ast)) {
gen_data_type(ast->left);
if (!for_sqlite()) {
gen_printf(" @SENSITIVE");
}
return;
}
else if (is_ast_type_int(ast)) {
gen_printf("INTEGER");
} else if (is_ast_type_text(ast)) {
gen_printf("TEXT");
} else if (is_ast_type_blob(ast)) {
gen_printf("BLOB");
} else if (is_ast_type_object(ast)) {
gen_printf("OBJECT");
} else if (is_ast_type_long(ast)) {
gen_printf("LONG_INT");
} else if (is_ast_type_real(ast)) {
gen_printf("REAL");
} else if (is_ast_type_bool(ast)) {
gen_printf("BOOL");
} else {
Contract(is_ast_str(ast));
EXTRACT_STRING(name, ast);
gen_printf("%s", name);
return;
}
if (!for_sqlite()) {
if (ast->left) {
gen_printf("<");
gen_name(ast->left);
gen_printf(">");
}
}
}