tcctok.h定义了C语言的词法分析的基本元素,主要定义了关键字。
/关键字/
引用>
,,,,DEF (TOK_INT“int”)
,,,,DEF (TOK_VOID“空白”)
,,,,DEF (TOK_CHAR char)
,,,,DEF (TOK_IF,“如果”)
,,,,DEF (TOK_ELSE,“其他”)
,,,,DEF (TOK_WHILE,“虽然”)
,,,,DEF (TOK_BREAK“打破”)
,,,,DEF (TOK_RETURN“返回”)
,,,,DEF (TOK_FOR,“为”)
,,,,DEF (TOK_EXTERN“外来的”)
,,,,DEF (TOK_STATIC“静态”)
,,,,DEF (TOK_UNSIGNED无符号)
,,,,DEF (TOK_GOTO“goto”)
,,,,DEF (TOK_DO,“做”)
,,,,DEF (TOK_CONTINUE,“继续”)
,,,,DEF (TOK_SWITCH“开关”)
,,,,DEF (TOK_CASE“案件”)..............................
..............................
..............................
同时定义了条件编译的相关内容
/* * * * */
/以下关键词。他们包括缓解解析/
/预处理程序>/移行细胞癌——小C编译器 版权(c) 2001 - 2004法布里斯 这个库是自由软件;你可以和/或重新分配 修改它根据GNU Lesser General公开 许可证是由自由软件基金会发布;要么 版本2的许可,或(任您选)其后的版本。 这个库是分布式的,希望这将是有用的, 但是没有任何保修;甚至没有的默示保证 适销性或健身为特定目的。看到GNU 较小的通用公共许可证的更多细节。 你应该已经收到了GNU Lesser General公共的副本 许可证以及这个库;如果不是,写信给自由软件 基础,Inc ., 59庙的地方,330套房,波士顿02111 - 1307美国 */# include“tcc.h”/* * * *///全局变量 使用GCC扩展还是太极拳扩展//使用GNU C扩展 ST_DATA int gnu_ext=1;//使用TinyCC扩展 ST_DATA int tcc_ext=1; ST_DATA结构标注太极拳状态。/XXX:尽快摆脱这种/ST_DATA struct TCCState * tcc_state;/* * * */>之前根据标志包含一些相应太极拳文件。
# ifdef ONE_SOURCE
引用>
# include“tccpp。c”
# include“tccgen。c”
# include“tccelf。c”
# include“tccrun。c”
# ifdef TCC_TARGET_I386
# include“i386-gen。c”
# endif
# ifdef TCC_TARGET_ARM
# include“arm-gen。c”
# endif
# ifdef TCC_TARGET_C67
# include“c67-gen。c”
# endif
# ifdef TCC_TARGET_X86_64
# include“x86_64-gen。c”
# endif
# ifdef CONFIG_TCC_ASM
# include“tccasm。c”
#如果定义TCC_TARGET_I386 | |定义TCC_TARGET_X86_64
# include“i386-asm。c”
# endif
# endif
# ifdef TCC_TARGET_COFF
# include“tcccoff。c”
# endif
# ifdef TCC_TARGET_PE
# include“tccpe。c”
# endif
# endif/ONE_SOURCE/CONFIG_TCC_ASM打开内联汇编的开关
引用>
/* * * */
的ifndef CONFIG_TCC_ASM
ST_FUNC空白asm_instr (void)
{
,,tcc_error(“内联asm()不支持”);
}
ST_FUNC空白asm_global_instr (void)
{
,,tcc_error(“内联asm()不支持”);
}
# endifC指针原理教程之C指针基础