refactor(log): 统一日志系统并添加链接器实现
- 为所有模块添加统一的 scc_*_log.h 日志头文件,删除旧的 lexer_log.h/c - 将运行时日志从 scc_utils 迁移到 scc_core 目录,统一日志管理 - 在解析器表达式/语句/类型解析中添加 LOG_TRACE 调试日志 - 实现 SCCF 链接器 (sccf_linker) 支持多目标文件链接 - 重构 CLI 主程序 (main.c/config.c),新增 cmd_log.h 调试支持 - 优化 x86 指令编码操作数对齐检查 - 修复预处理器的指令处理和宏展开逻辑
This commit is contained in:
@@ -13,6 +13,12 @@ typedef struct {
|
||||
scc_hashtable_t str2offset;
|
||||
sccf_sym_vec_t symtab;
|
||||
sccf_reloc_vec_t relocs;
|
||||
const char *entry_symbol_name;
|
||||
} sccf_linker_t;
|
||||
|
||||
void sccf_linker_init(sccf_linker_t *linker);
|
||||
void sccf_linker_add_sccf(sccf_linker_t *linker, const sccf_t *sccf);
|
||||
void sccf_linker_set_entry_symbol_name(sccf_linker_t *linker, const char *name);
|
||||
const sccf_t *sccf_linker_link(sccf_linker_t *linker);
|
||||
|
||||
#endif /* __SCC_FORMAT_LINKER_H__ */
|
||||
|
||||
26
libs/sccf/include/sccf_log.h
Normal file
26
libs/sccf/include/sccf_log.h
Normal file
@@ -0,0 +1,26 @@
|
||||
#ifndef __SCCF_LOG_H__
|
||||
#define __SCCF_LOG_H__
|
||||
|
||||
typedef struct logger logger_t;
|
||||
extern logger_t __scc_sccf_log;
|
||||
extern logger_t __scc_sccf_user;
|
||||
|
||||
#define SCC_LOG_HANDLER &__scc_sccf_user
|
||||
#define LOG_DEFAULT_HANDLER &__scc_sccf_log
|
||||
#include <scc_log.h>
|
||||
|
||||
#ifdef __SCCF_LOG_IMPL__
|
||||
logger_t __scc_sccf_log = {
|
||||
.name = "sccf",
|
||||
.level = LOG_LEVEL_ALL,
|
||||
.handler = log_default_handler,
|
||||
};
|
||||
|
||||
logger_t __scc_sccf_user = {
|
||||
.name = "sccf",
|
||||
.level = LOG_LEVEL_ALL,
|
||||
.user_handler = scc_log_handler,
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user