-1

我正在编写一个 C 分词器,我想要一个 C 识别的所有符号的完整列表,例如'+'、'-'、'*'、'/'、'!'、'!=' , '==', '++' 等。请注意,我不是指关键字(我已经找到了这些关键字的列表)。我环顾四周,但没有找到一个完整的列表,而且我不太相信自己会列举所有这些。有什么帮助吗?谢谢!

4

4 回答 4

2

可在此处找到 ANSI C 2011 令牌的 Lex 扫描仪列表:http ://www.quut.com/c/ANSI-C-grammar-l-2011.html

编辑:

正如 Jens 所指出的:该列表既不显示二合字母也不显示三合字母标记:

在此处输入图像描述 在此处输入图像描述

“ C in a Nutshell ”中的表格

于 2013-03-04T07:59:43.533 回答
1

如果你有 K&R(圣经,无论哪个版本(fe ANSI)),你有一个完整的列表,在书的末尾有优先级(在我的德文版中是附录 A)。

您还可以查看 gnu-c-compiler 源代码,其中包含您可以查看的扫描仪/语法。

于 2013-03-04T07:49:06.417 回答
1

维基百科文章包含以下列表

标点:~!@ # % ^ & * ( ) - + = : ; " ' < > , . ? | / \ { } [ ]

尽管最终的权威来源是 C 标准 ISO IEC 9899。作为 ISO 标准,获得它需要花钱,尽管互联网上有一些免费的草稿版本。

草案与最终标准几乎相同,但不完全一致。通常,由于没有可比较的标准,您无法确切知道差异是什么,因此您应该限制对草稿的信任,并至少寻求其他信息来源。虽然对于像语法这样基本的东西应该没问题。

获得 C 标准的另一种方法(在我看来可能是最好的)是获得《新 C 标准:经济和文化评论》一书,该书可免费获得,包含整个(最终)标准以及大量关于标准。

于 2013-03-04T08:22:06.933 回答
0

由于它很短,让我在这里提供一个完整的列表。来自 C11 标准:

(6.4.6) 标点符号:其中之一

[ ] ( ) { } . ->
++ -- & * + - ~ !
/ % << >> < > <= >=
 ==
 !=
 ^
 |
 &&
 ||
? : ; ...
= *= /= %= += -= <<=
 >>=
 &=
 ^=
 |=
, # ##
<: :> <% %> %: %:%:

特别注意其他答案错过的###标记,以及最后的有向图标记。

于 2013-03-04T08:32:41.863 回答