TCC(TinyC)编译器汉化(中文编译器、汉语编程)之二:字符(token)汉化
程序员文章站
2022-03-30 20:29:25
...
汉化了所有的C语言关键词
字符.h源码如下:
/* keywords */
字符(关键字_无类型, "无类型")
字符(关键字_VOID, "void")
字符(关键字_整数型, "整数型")
字符(关键字_INT, "int")
字符(关键字_长整数型, "长整数型")
字符(关键字_LONG, "long")
字符(关键字_短整数型, "短整数型")
字符(关键字_SHORT, "short")
字符(关键字_字符型, "字符型")
字符(关键字_CHAR, "char")
字符(关键字_浮点型, "浮点型")
字符(关键字_FLOAT, "float")
字符(关键字_双精度浮点型, "双精度浮点型")
字符(关键字_DOUBLE, "double")
字符(关键字_逻辑型, "逻辑型")
字符(关键字_BOOL, "_Bool")
字符(关键字_无符号, "无符号")
字符(关键字_UNSIGNED, "unsigned")
字符(关键字_有符号, "有符号")
字符(关键字_SIGNED1, "signed")
字符(关键字_SIGNED2, "__signed") /* gcc keyword */
字符(关键字_SIGNED3, "__signed__") /* gcc keyword */
字符(关键字_常量, "常量")
字符(关键字_CONST1, "const")
字符(关键字_CONST2, "__const") /* gcc keyword */
字符(关键字_CONST3, "__const__") /* gcc keyword */
字符(关键字_寄存器, "寄存器")
字符(关键字_REGISTER, "register")
字符(关键字_自动, "自动")
字符(关键字_AUTO, "auto")
字符(关键字_外部, "外部")
字符(关键字_EXTERN, "extern")
字符(关键字_静态, "静态")
字符(关键字_STATIC, "static")
字符(关键字_如果, "如果")
字符(关键字_IF, "if")
字符(关键字_否则, "否则")
字符(关键字_ELSE, "else")
字符(关键字_执行, "执行")
字符(关键字_DO, "do")
字符(关键字_判断, "判断")
字符(关键字_WHILE, "while")
字符(关键字_循环, "循环")
字符(关键字_FOR, "for")
字符(关键字_选择, "选择")
字符(关键字_SWITCH, "switch")
字符(关键字_分支, "分支")
字符(关键字_CASE, "case")
字符(关键字_跳出, "跳出")
字符(关键字_BREAK, "break")
字符(关键字_返回, "返回")
字符(关键字_RETURN, "return")
字符(关键字_去向, "去向")
字符(关键字_GOTO, "goto")
字符(关键字_继续, "继续")
字符(关键字_CONTINUE, "continue")
字符(关键字_易变, "易变")
字符(关键字_VOLATILE1, "volatile")
字符(关键字_VOLATILE2, "__volatile") /* gcc keyword */
字符(关键字_VOLATILE3, "__volatile__") /* gcc keyword */
字符(关键字_内联, "内联")
字符(关键字_INLINE1, "inline")
字符(关键字_INLINE2, "__inline") /* gcc keyword */
字符(关键字_INLINE3, "__inline__") /* gcc keyword */
字符(关键字_限定, "限定")
字符(关键字_RESTRICT1, "restrict")
字符(关键字_RESTRICT2, "__restrict")
字符(关键字_RESTRICT3, "__restrict__")
字符(关键字_EXTENSION, "__extension__") /* gcc keyword */
字符(关键字_GENERIC, "_Generic")
字符(关键字_静态_声明, "_静态_声明")/*2020年6月21日为止添加的关键词*/
字符(关键字_STATIC_ASSERT, "_Static_assert")/*2020年6月21日为止添加的关键词*/
字符(关键字_结构体, "结构体")
字符(关键字_STRUCT, "struct")
字符(关键字_共用体, "共用体")
字符(关键字_UNION, "union")
字符(关键字_别名, "类型定义")
字符(关键字_TYPEDEF, "typedef")
字符(关键字_默认, "默认")
字符(关键字_DEFAULT, "default")
字符(关键字_枚举, "枚举")
字符(关键字_ENUM, "enum")
字符(关键字_获取大小, "取大小")
字符(关键字_SIZEOF, "sizeof")
字符(关键字_属性, "__属性")
字符(关键字_ATTRIBUTE1, "__attribute")
字符(关键字_ATTRIBUTE2, "__attribute__")
字符(关键字_对齐, "__对齐")
字符(关键字_ALIGNOF1, "__alignof")
字符(关键字_ALIGNOF2, "__alignof__")
字符(关键字_ALIGNOF3, "_Alignof")
字符(关键字_ALIGNAS, "_Alignas")
字符(关键字_取类型, "取类型")
字符(关键字_TYPEOF1, "typeof")
字符(关键字_TYPEOF2, "__typeof")
字符(关键字_TYPEOF3, "__typeof__")
字符(关键字_标签, "__标签__")
字符(关键字_LABEL, "__label__")/*用于GCC块本地标签*/
字符(关键字_汇编, "汇编")
字符(关键字_asm1, "asm")
字符(关键字_asm2, "__asm")
字符(关键字_asm3, "__asm__")
#如果已定义 ZHI_TARGET_ARM64
字符(关键字_无整128, "无整128")
字符(关键字_UINT128, "__uint128_t")
#结束如果
/*********************************************************************/
/* the following are not keywords. They are included to ease parsing */
/* preprocessor only */
字符(关键字_定义, "定义")
字符(关键字_DEFINE, "define")
字符(关键字_导入, "导入")
字符(关键字_INCLUDE, "include")
字符(关键字_导入_下个, "导入下个")
字符(关键字_INCLUDE_NEXT, "include_next")
字符(关键字_如果已定义, "如果已定义")
字符(关键字_IFDEF, "ifdef")
字符(关键字_如果未定义, "如果未定义")
字符(关键字_IFNDEF, "ifndef")
字符(关键字_否则如果, "否则如果")
字符(关键字_ELIF, "elif")
字符(关键字_结束如果, "结束如果")
字符(关键字_ENDIF, "endif")
字符(关键字_已定义, "已定义")
字符(关键字_DEFINED, "defined")
字符(关键字_取消定义, "取消定义")
字符(关键字_UNDEF, "undef")
字符(关键字_错误, "错误")
字符(关键字_ERROR, "error")
字符(关键字_警告, "警告")
字符(关键字_WARNING, "warning")
字符(关键字_行号, "行号")
字符(关键字_LINE, "line")
字符(关键字_杂注, "杂注")
字符(关键字_PRAGMA, "pragma")
字符(符___LINE___CN, "__行号__")
字符(符___LINE__, "__LINE__")
字符(符___FILE___CN, "__文件__")
字符(符___FILE__, "__FILE__")
字符(符___DATE___CN, "__日期__")
字符(符___DATE__, "__DATE__")
字符(符___TIME___CN, "__时间__")
字符(符___TIME__, "__TIME__")
字符(符___FUNCTION___CN, "__函数名__")
字符(符___FUNCTION__, "__FUNCTION__")
字符(符___VA_ARGS___CN, "__变参__")
字符(符___VA_ARGS__, "__VA_ARGS__")
字符(符___COUNTER___CN, "__计数__")
字符(符___COUNTER__, "__COUNTER__")
字符(符___HAS_INCLUDE___CN, "__已经_包含")
字符(符___HAS_INCLUDE, "__has_include")
/* special identifiers */
字符(符___函数___CN, "__函数__")
字符(符___函数__, "__func__")
/* special floating point values */
字符(符___NAN__, "__nan__")
字符(符___SNAN__, "__snan__")
字符(符___INF__, "__inf__")
/* attribute identifiers */
/* XXX: handle all 标识符s generically since speed is not critical */
字符(符_SECTION1, "section")
字符(符_SECTION2, "__段__")
字符(符_ALIGNED1, "aligned")
字符(符_ALIGNED2, "__aligned__")
字符(符_PACKED1, "packed")
字符(符_PACKED2, "__packed__")
字符(符_WEAK1, "weak")
字符(符_WEAK2, "__weak__")
字符(符_ALIAS1, "alias")
字符(符_ALIAS2, "__alias__")
字符(符_UNUSED1, "unused")
字符(符_UNUSED2, "__unused__")
字符(符_CDECL1, "cdecl")
字符(符_CDECL2, "__cdecl")
字符(符_CDECL3, "__cdecl__")
字符(符_标准调用1, "stdcall")
字符(符_标准调用2, "__stdcall")
字符(符_标准调用3, "__stdcall__")
字符(符_快速调用1, "fastcall")
字符(符_快速调用2, "__fastcall")
字符(符_快速调用3, "__fastcall__")
字符(符_REGPARM1, "regparm")
字符(符_REGPARM2, "__regparm__")
字符(符_CLEANUP1, "cleanup")
字符(符_CLEANUP2, "__cleanup__")
字符(符_CONSTRUCTOR1, "constructor")
字符(符_CONSTRUCTOR2, "__constructor__")
字符(符_DESTRUCTOR1, "destructor")
字符(符_DESTRUCTOR2, "__destructor__")
字符(符_ALWAYS_INLINE1, "always_inline")
字符(符_ALWAYS_INLINE2, "__always_inline__")
字符(符_MODE, "__mode__")
字符(符_MODE_QI, "__QI__")
字符(符_MODE_DI, "__DI__")
字符(符_MODE_HI, "__HI__")
字符(符_MODE_SI, "__SI__")
字符(符_MODE_word, "__word__")
字符(符_DLLEXPORT, "dllexport")
字符(符_DLLIMPORT, "dllimport")
字符(符_NODECORATE, "nodecorate")
字符(符_NORETURN1, "noreturn")
字符(符_NORETURN2, "__noreturn__")
字符(符_NORETURN3, "_Noreturn")
字符(符_VISIBILITY1, "visibility")
字符(符_VISIBILITY2, "__visibility__")
字符(符_builtin_types_compatible_p, "__builtin_types_compatible_p")
字符(符_builtin_choose_expr, "__builtin_choose_expr")
字符(符_builtin_constant_p, "__builtin_constant_p")
字符(符_builtin_frame_address, "__builtin_frame_address")
字符(符_builtin_return_address, "__builtin_return_address")
字符(符_builtin_expect, "__builtin_expect")
/*字符(符_builtin_va_list, "__builtin_va_list")*/
#如果 已定义 ZHI_TARGET_PE && 已定义 ZHI_TARGET_X86_64
字符(符_builtin_va_start, "__builtin_va_start")
#否则如果 已定义 ZHI_TARGET_X86_64
字符(符_builtin_va_arg_types, "__builtin_va_arg_types")
#否则如果 已定义 ZHI_TARGET_ARM64
字符(符_builtin_va_start, "__builtin_va_start")
字符(符_builtin_va_arg, "__builtin_va_arg")
#否则如果 已定义 ZHI_TARGET_RISCV64
字符(符_builtin_va_start, "__builtin_va_start")
#结束如果
/* pragma */
字符(符_pack, "pack")
#如果 !已定义(ZHI_TARGET_I386) && !已定义(ZHI_TARGET_X86_64)
/* already 已定义 循环 assembler */
字符(符_汇编_push, "push")
字符(符_汇编_pop, "pop")
#结束如果
字符(符_comment, "comment")
字符(符_lib, "lib")
字符(符_push_macro, "push_macro")
字符(符_pop_macro, "pop_macro")
字符(符_once, "once")
字符(符_option, "option")
/* builtin functions or variables */
#如果未定义 ZHI_ARM_EABI
字符(符_memcpy, "memcpy")
字符(符_memmove, "memmove")
字符(符_memset, "memset")
字符(符___divdi3, "__divdi3")
字符(符___moddi3, "__moddi3")
字符(符___udivdi3, "__udivdi3")
字符(符___umoddi3, "__umoddi3")
字符(符___ashrdi3, "__ashrdi3")
字符(符___lshrdi3, "__lshrdi3")
字符(符___ashldi3, "__ashldi3")
字符(符___floatundisf, "__floatundisf")
字符(符___floatundidf, "__floatundidf")
# 如果未定义 ZHI_ARM_VFP
字符(符___floatundixf, "__floatundixf")
字符(符___fixunsxfdi, "__fixunsxfdi")
# 结束如果
字符(符___fixunssfdi, "__fixunssfdi")
字符(符___fixunsdfdi, "__fixunsdfdi")
#结束如果
#如果 已定义 ZHI_TARGET_ARM
# 如果已定义 ZHI_ARM_EABI
字符(符_memcpy, "__aeabi_memcpy")
字符(符_memmove, "__aeabi_memmove")
字符(符_memmove4, "__aeabi_memmove4")
字符(符_memmove8, "__aeabi_memmove8")
字符(符_memset, "__aeabi_memset")
字符(符___aeabi_ldivmod, "__aeabi_ldivmod")
字符(符___aeabi_uldivmod, "__aeabi_uldivmod")
字符(符___aeabi_idivmod, "__aeabi_idivmod")
字符(符___aeabi_uidivmod, "__aeabi_uidivmod")
字符(符___divsi3, "__aeabi_idiv")
字符(符___udivsi3, "__aeabi_uidiv")
字符(符___floatdisf, "__aeabi_l2f")
字符(符___floatdidf, "__aeabi_l2d")
字符(符___fixsfdi, "__aeabi_f2lz")
字符(符___fixdfdi, "__aeabi_d2lz")
字符(符___ashrdi3, "__aeabi_lasr")
字符(符___lshrdi3, "__aeabi_llsr")
字符(符___ashldi3, "__aeabi_llsl")
字符(符___floatundisf, "__aeabi_ul2f")
字符(符___floatundidf, "__aeabi_ul2d")
字符(符___fixunssfdi, "__aeabi_f2ulz")
字符(符___fixunsdfdi, "__aeabi_d2ulz")
# 否则
字符(符___modsi3, "__modsi3")
字符(符___umodsi3, "__umodsi3")
字符(符___divsi3, "__divsi3")
字符(符___udivsi3, "__udivsi3")
字符(符___floatdisf, "__floatdisf")
字符(符___floatdidf, "__floatdidf")
# 如果未定义 ZHI_ARM_VFP
字符(符___floatdixf, "__floatdixf")
字符(符___fixunssfsi, "__fixunssfsi")
字符(符___fixunsdfsi, "__fixunsdfsi")
字符(符___fixunsxfsi, "__fixunsxfsi")
字符(符___fixxfdi, "__fixxfdi")
# 结束如果
字符(符___fixsfdi, "__fixsfdi")
字符(符___fixdfdi, "__fixdfdi")
# 结束如果
#结束如果
#如果 已定义 ZHI_TARGET_C67
字符(符__divi, "_divi")
字符(符__divu, "_divu")
字符(符__divf, "_divf")
字符(符__divd, "_divd")
字符(符__remi, "_remi")
字符(符__remu, "_remu")
#结束如果
#如果 已定义 ZHI_TARGET_I386
字符(符___fixsfdi, "__fixsfdi")
字符(符___fixdfdi, "__fixdfdi")
字符(符___fixxfdi, "__fixxfdi")
#结束如果
#如果 已定义 ZHI_TARGET_I386 || 已定义 ZHI_TARGET_X86_64
字符(符_alloca, "alloca")
#结束如果
#如果 已定义 ZHI_TARGET_PE
字符(符___chkstk, "__chkstk")
#结束如果
#如果 已定义 ZHI_TARGET_ARM64 || 已定义 ZHI_TARGET_RISCV64
字符(符___arm64_clear_cache, "__arm64_clear_cache")
字符(符___addtf3, "__addtf3")
字符(符___subtf3, "__subtf3")
字符(符___multf3, "__multf3")
字符(符___divtf3, "__divtf3")
字符(符___extendsftf2, "__extendsftf2")
字符(符___extenddftf2, "__extenddftf2")
字符(符___trunctfsf2, "__trunctfsf2")
字符(符___trunctfdf2, "__trunctfdf2")
字符(符___fixtfsi, "__fixtfsi")
字符(符___fixtfdi, "__fixtfdi")
字符(符___fixunstfsi, "__fixunstfsi")
字符(符___fixunstfdi, "__fixunstfdi")
字符(符___floatsitf, "__floatsitf")
字符(符___floatditf, "__floatditf")
字符(符___floatunsitf, "__floatunsitf")
字符(符___floatunditf, "__floatunditf")
字符(符___eqtf2, "__eqtf2")
字符(符___netf2, "__netf2")
字符(符___lttf2, "__lttf2")
字符(符___letf2, "__letf2")
字符(符___gttf2, "__gttf2")
字符(符___getf2, "__getf2")
#结束如果
/* bound checking symbols */
#如果已定义 配置_ZHI_边界检查
字符(符___bound_ptr_add, "__bound_ptr_add")
字符(符___bound_ptr_间接的1, "__bound_ptr_间接的1")
字符(符___bound_ptr_间接的2, "__bound_ptr_间接的2")
字符(符___bound_ptr_间接的4, "__bound_ptr_间接的4")
字符(符___bound_ptr_间接的8, "__bound_ptr_间接的8")
字符(符___bound_ptr_间接的12, "__bound_ptr_间接的12")
字符(符___bound_ptr_间接的16, "__bound_ptr_间接的16")
字符(符___bound_main_arg, "__bound_main_arg")
字符(符___bound_local_new, "__bound_local_new")
字符(符___bound_local_delete, "__bound_local_delete")
字符(符___bound_setjmp, "__bound_setjmp")
字符(符___bound_new_region, "__bound_new_region")
# 如果已定义 ZHI_TARGET_PE
# 如果已定义 ZHI_TARGET_X86_64
字符(符___bound_alloca_nr, "__bound_alloca_nr")
# 结束如果
字符(符_malloc, "malloc")
字符(符_free, "free")
字符(符_realloc, "realloc")
字符(符_memalign, "memalign")
字符(符_calloc, "calloc")
# 否则
字符(符_sigsetjmp, "sigsetjmp")
字符(符___sigsetjmp, "__sigsetjmp")
字符(符_siglongjmp, "siglongjmp")
# 结束如果
字符(符_mmap, "mmap")
字符(符_munmap, "munmap")
字符(符_memcmp, "memcmp")
字符(符_strlen, "strlen")
字符(符_strcpy, "strcpy")
字符(符_strncpy, "strncpy")
字符(符_strcmp, "strcmp")
字符(符_strncmp, "strncmp")
字符(符_strcat, "strcat")
字符(符_strchr, "strchr")
字符(符_strdup, "strdup")
字符(符_setjmp, "setjmp")
字符(符__setjmp, "_setjmp")
字符(符_longjmp, "longjmp")
#结束如果
/* Tiny Assembler */
字符_汇编目录(byte) /* must be first directive */
字符_汇编目录(word)
字符_汇编目录(align)
字符_汇编目录(balign)
字符_汇编目录(p2align)
字符_汇编目录(set)
字符_汇编目录(skip)
字符_汇编目录(space)
字符_汇编目录(string)
字符_汇编目录(asciz)
字符_汇编目录(ascii)
字符_汇编目录(file)
字符_汇编目录(globl)
字符_汇编目录(global)
字符_汇编目录(weak)
字符_汇编目录(hidden)
字符_汇编目录(ident)
字符_汇编目录(size)
字符_汇编目录(type)
字符_汇编目录(text)
字符_汇编目录(data)
字符_汇编目录(bss)
字符_汇编目录(previous)
字符_汇编目录(pushsection)
字符_汇编目录(popsection)
字符_汇编目录(fill)
字符_汇编目录(rept)
字符_汇编目录(endr)
字符_汇编目录(org)
字符_汇编目录(quad)
#如果 已定义(ZHI_TARGET_I386)
字符_汇编目录(code16)
字符_汇编目录(code32)
#否则如果 已定义(ZHI_TARGET_X86_64)
字符_汇编目录(code64)
#结束如果
字符_汇编目录(short)
字符_汇编目录(long)
字符_汇编目录(整数型)
字符_汇编目录(section) /* must be last directive */
#如果 已定义 ZHI_TARGET_I386 || 已定义 ZHI_TARGET_X86_64
#导入 "i386-tok.h"
#结束如果
#取消定义 字符
上一篇: meta标签的http-equiv与content解析
下一篇: 十七、工作代办列表
推荐阅读
-
TCC(TinyC)编译器汉化(中文编译器、汉语编程)之四:语法分析上
-
TCC(TinyC)编译器汉化(中文编译器、汉语编程)之三:词法分析
-
TCC(TinyC)编译器汉化(中文编译器、汉语编程)之二:字符(token)汉化
-
TCC(TinyC)编译器汉化(中文编译器、汉语编程)之九:核心库源码
-
TCC(TinyC)编译器汉化(中文编译器、汉语编程)之七:中间语言生成器
-
TCC(TinyC)编译器汉化(中文编译器、汉语编程)之六:中间操作码
-
TCC(TinyC)编译器汉化(中文编译器、汉语编程)之八:汇编处理
-
TCC(TinyC)编译器汉化(中文编译器、汉语编程)之一:主文件汉化
-
TCC(TinyC)编译器汉化(中文编译器、汉语编程)之五:语法分析下