feat(ast): 添加内置类型定义和AST节点初始化函数
添加了完整的内置类型支持,包括整数、浮点数、字符、布尔等基本类型, 以及它们的有符号/无符号变体。同时添加了大量的AST节点初始化函数, 简化了AST节点的创建过程。 BREAKING CHANGE: 重构了AST表达式和声明结构,移除了冗余字段, 统一了命名规范,并修改了函数调用和成员访问的表示方式。
This commit is contained in:
@@ -16,8 +16,8 @@ typedef enum {
|
||||
SCC_FILE_WRITE,
|
||||
SCC_FILE_APPEND,
|
||||
} scc_fmode_t;
|
||||
#define scc_stdout 1
|
||||
#define scc_stderr 2
|
||||
#define scc_stdout ((scc_file_t)1)
|
||||
#define scc_stderr ((scc_file_t)2)
|
||||
scc_file_t scc_fopen(const char *path, scc_fmode_t mode);
|
||||
void scc_fclose(scc_file_t file);
|
||||
usize scc_fsize(scc_file_t file);
|
||||
|
||||
@@ -150,4 +150,11 @@ typedef size_t usize;
|
||||
(vec).size = (vec).cap = 0; \
|
||||
} while (0)
|
||||
|
||||
#define scc_vec_unsafe_from_static_array(vec, array) \
|
||||
do { \
|
||||
(vec).size = sizeof(array) / sizeof((array)[0]); \
|
||||
(vec).cap = (vec).size; \
|
||||
(vec).data = array; \
|
||||
} while (0)
|
||||
|
||||
#endif /* __SCC_CORE_VEC_H__ */
|
||||
|
||||
@@ -72,9 +72,9 @@ int scc_fprintf(scc_file_t file, const char *format, ...) {
|
||||
int scc_vfprintf(scc_file_t file, const char *format, va_list args) {
|
||||
char buf[4096] = {0};
|
||||
int size = vsnprintf_(buf, sizeof(buf), format, args);
|
||||
if (file == (scc_file_t)scc_stdout) {
|
||||
if (file == scc_stdout) {
|
||||
scc_pal_write(buf, size);
|
||||
} else if (file == (scc_file_t)scc_stderr) {
|
||||
} else if (file == scc_stderr) {
|
||||
scc_pal_ewrite(buf, size);
|
||||
} else {
|
||||
scc_pal_fwrite(file, buf, size);
|
||||
|
||||
Reference in New Issue
Block a user