Ver código fonte

feat: 添加一些工具说明

nicetry12138 1 ano atrás
pai
commit
005c16fc26
1 arquivos alterados com 9 adições e 1 exclusões
  1. 9 1
      Build-Project/程序员的自我修养/README.md

+ 9 - 1
Build-Project/程序员的自我修养/README.md

@@ -103,6 +103,8 @@ int main() {
 
 通过 `Scanner` 扫描器的词法分析产生的记号 `Token` 一般分为一下几类:关键字、标识符、字面量(数字、字符串等)和特殊符号(加号、减号等)
 
+> 语法分析工具有 lex
+
 ```cpp
 array[index] = (index + 4) * (2 + 6);
 ```
@@ -128,9 +130,15 @@ array[index] = (index + 4) * (2 + 6);
 | 6 | 数字 |
 | `)` | 右圆括号 |
 
-法分析器(`Grammar Parser`) 对扫描器(`Scanner`) 产生的记号进行语法分析,从而产生语法树(`Syntax Tree`),整个过程采用上下文无关语法(`Context-Free Grammar`)
+法分析器(`Grammar Parser`) 对扫描器(`Scanner`) 产生的记号进行语法分析,从而产生语法树(`Syntax Tree`),整个过程采用上下文无关语法(`Context-Free Grammar`)
 
 通过**语法分析器**生成的**语法树**就是以**表达式**为节点的树
 
 ![](Image/002.png)
 
+> 赋值表达式、加法表达式、乘法表达式、数组表达式、括号表达式等
+
+词法分析工具有 `yacc`(`Yet Another Compiler Compiler`),可以根据用户给定的语法规则对输入的记号序列进行解析,从而构建出一颗语法树
+
+> 对于不同的语言,编译器的开发者只需要改变语法规则,而无需为每个编译器编写一个语法分析器
+