lcc 源代码解析之token.h

本文介绍了lcc源代码中关键头文件token.h的内容。虽然理解表达式语法分析颇具挑战,但作者分享了token.h的重要性及其在代码中的巧妙运用,提醒读者熟悉其中的六个关键数据结构以更好地理解整体代码。
摘要由CSDN通过智能技术生成

元旦憋了两天,终究是没能透彻的理解表达式的语法分析,关于这部分等我自己搞明白再分享出来,

又要开工了,每天只有有限的时间区分析代码,再加上还要抽空看看面试题,估计要费一段时间了。

先分享一道小菜,即头文件token.h,这是一个十分重要的头文件,用的也很奇妙,当然,这损失了代码的部分可读性。

/* $Id: token.h,v 1.1 2002/08/28 23:12:47 drh Exp $ */
/*
xx(symbol,	value,	prec,	op,	optree,	kind,	string)
(枚举标示符,  字符值,  单词操作符的优先顺序,  通用操作符,  创建树的函数,  单词集合,  字符串表示)
yy处理单字符单词,xx处理多字符单词和其他
*/
yy(0,         0,     0,      0,    0,      0,      0)
xx(FLOAT,     1,     0,      0,    0,      CHAR,   "float")
xx(DOUBLE,    2,     0,      0,    0,      CHAR,   "double")
xx(CHAR,      3,     0,      0,    0,      CHAR,   "char")
xx(SHORT,     4,     0,      0,    0,      CHAR,   "short")
xx(INT,       5,     0,      0,    0,      CHAR,   "int")
xx(UNSIGNED,  6,     0,      0,    0,      CHAR,   "unsigned")
xx(POINTER,   7,     0,      0,    0,      0,      "pointer")
xx(VOID,      8,     0,      0,    0,      CHAR,   "void")
xx(STRUCT,    9,     0,      0,    0,      CHAR,   "struct")
xx(UNION,    10,     0,      0,    0,      CHAR,   "union")
xx(FUNCTION, 11,     0,      0,    0,      0,      "function")
xx(ARRAY,    12,     0,      0,    0,      0,      "array")
xx(ENUM,     13,     0,      0,    0,      CHAR,   "enum")
xx(LONG,     14,     0,      0,    0,      CHAR,   "long")
xx(CONST,    15,     0,      0,    0,      CHAR,   "const")
xx(VOLATILE, 16,     0,      0,    0,      CHAR,   "volatile")
yy(0,        17,     0,      0,    0,      0,      0)
yy(0,        18,     0,      0,    0,      0,      0)
yy(0,        19,     0,      0,    0,      0,      0)
yy(0,        20,     0,      0,    0,      0,      0)
yy(0,        21,     0,      0,    0,      0,      0)
yy(0,        22,     0,      0,    0,      0,      0)
yy(0,        23,     0,      0,    0,      0,      0)
yy(0,        24,     0,      0,    0,      0,      0)
yy(0,        25,     0,      0,    0,      0,      0)
yy(0,        26,     0,      0,    0,      0,      0)
yy(0,        27,     0,      0,    0,      0,      0)
yy(0,        28,     0,      0,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值