Note: ccc is no longer an active project. The successor is lcc.
- 存储类声明说明符(
extern
、static
、auto
、register
、typedef
) - 类型限定符(
const
、volatile
、restrict
) - 声明说明符(
char
、short
、int
、long
) - 指针说明符(
*
) - 直接说明符(
[]
、()
) - 结构体说明符(
struct or union {struct-declaration*}、struct or union tag{struct-declaration*}
) - 枚举说明符
- 函数声明符(
inline
)
- if-else
- switch-case-default
- while
- do-while
- for
- goto-label
- break
- continue
- blockStmt
- 逗号表达式(
,
) - 赋值表达式(
=
) - 赋值表达式(
+=
、-=
、*=
、/=
、%=
、<<=
、>>=
、&=
、|=
、^=
) - 条件表达式(
?:
) - 逻辑或表达式(
||
) - 逻辑与表达式(
&&
) - 按位或表达式(
|
) - 按位异或表达式(
^
) - 按位与表达式(
&
) - 相等表达式(
==
、!=
) - 关系表达式(
>
、>=
、<
、<=
) - 移位表达式(
<<
、>>
) - 加法表达式(
+
、-
) - 乘法表达式(
*
、/
) - 乘法表达式(
%
) - case表达式 (
(type-name) unary-expression
) - 一元表达式(
+
、-
、&
、*
) - 一元表达式(
++
、- -
) - 一元表达式(
~
、!
) - 一元表达式(
sizeof unary-expression
) - 一元表达式(
sizeof (type-name)
) - 后缀表达式(
[ ]
、( )
、.
、→
) - 后缀表达式(
++
、- -
) - 基本表达式(
id
、num
、(Expr
)、StmtExpr
)
- 整数解析(八进制、十进制、十六进制、后缀)
- 浮点数解析 (后缀)
- 字符解析(包含转义字符)
- 字符串解析(包含转义字符)
- 标识符(包含关键字)
- 运算符、标点符号、分界符
- Linux
- MacOSX
- X86-64