C识别的符号的完整列表

时间:2013-03-04 07:42:33

标签: c symbols

我正在写一个C tokenizer,我希望得到C识别的所有符号的完整列表,例如'+',' - ','*','/','!',' !=','==','++'等。请注意,我不是指关键字(我已经找到了这些关键字的列表)。我环顾四周,但没有找到一个完整的清单,我不太相信自己列举所有这些清单。有帮助吗?谢谢!

4 个答案:

答案 0 :(得分:2)

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

<强>编辑:

正如Jens所指出的那样:该列表既没有显示有向图也没有显示三角形标记:

enter image description here enter image description here

C in a Nutshell

中的表格

答案 1 :(得分:1)

如果您有K&amp; R(圣经,无论哪个版本(f.e.ANSI)),您在本书末尾都有一个优先顺序的完整列表(在我的德语版本中是附录A)。

您还可以查看gnu-c-compiler源代码,它具有您可以查看的扫描程序/语法。

答案 2 :(得分:1)

wikipedia article包含以下列表

  

标点符号:〜! @#%^&amp; *() - + = :; “'&lt;&gt;,。?| / \ {} []

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

草稿与最终标准几乎相同但不完全相同。一般来说,如果没有标准可供比较,你不确切地知道差异是什么,你应该限制你对草稿的信任,至少寻求其他信息来源。 虽然对于语法这样基本的东西应该没问题。

获得C标准的另一种方式(可能是我认为最好的)是获得免费提供的书籍The New C Standard: An Economic and Cultural Commentary并包含整个(最终)标准以及对标准的大量评论

答案 3 :(得分:0)

由于它很短,让我在这里提供完整的清单。从C11标准:

  

(6.4.6)标点符号:

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

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