LR语法分析
LR分析
分析过程
- 三元式表示
三元式子:(状态栈,符号栈,输入符号串)
当我们表述一种语言时,无非是说明这种语言的句子,如果语言只含有有穷多个句子,则只需列出句子的有穷集就行了,但对于含有无穷句子的语言来讲,存在着如何给出它的有穷表示的问题。
以自然语言为例,人们无法列出全部句子,但是人们可以给出一些规则,用这些规则来说明(或者定义)句子的组成结构,比如汉语句子可以是由主语后随谓语而成,构成谓语的是动词和直接宾语,我们采用第2章所介绍的EBNF来表示这种句子的构成规则:
GCC全称GNU C Compiler,是以GPL协议发布的自由软件,其创始人理查德·马修·斯托曼是自由软件运动的精神领袖。
GNU 编译器套件包括 C、C++、Objective-C、Java、Ada 和 Go 语言前端,也包括了这些语言的库(如 libstdc++,libgcj等)
GCC 不仅支持 C 的许多“方言”,也可以区别不同的 C 语言标准;可以使用命令行选项来控制编译器在翻译源代码时应该遵循哪个 C 标准。例如,当使用命令行参数-std=c99
启动 GCC 时,编译器支持 C99 标准。
新函数一般用defun宏来定义。其基本结构为:
(defun name
“一些说明文字”
body-form*)
任何符号都可以作为函数名,但通常函数名仅包含字典字符和连字符,但在特定的命名约定里,其它字符也允许使用。例如+函数可以将一个或多个数字相加。
进入项目目录
版本库初始化
1 | $ git init |
fgets函数用于从指定流读取指定字节数的字符,Ascii码字符1个字符占用1个字节,1个汉字占用多少字节因平台而异。
验证一个汉字占用几个字节:
1 | char chinese[10] = "中文"; |