Skip to content

Commit

Permalink
Update 实验细节与要求.md
Browse files Browse the repository at this point in the history
  • Loading branch information
gpzlx1 authored Sep 15, 2023
1 parent fc0ff63 commit 8de5fdd
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions docs/lab1/实验细节与要求.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@

### 实验内容

本部分需要各位同学在 `src/parser/lexical_analyzer.l` 文件中根据 `Cminusf` 的词法规则完成词法分析器。在 `lexical_analyzer.l` 文件中,你只需在规则部分补全模式和动作即可,能够输出识别出的 `token`,`text` ,`line(刚出现的行数)`,`pos_start(该行开始位置)`,`pos_end(结束的位置,不包含)`。比如:
本部分需要各位同学在 `src/parser/lexical_analyzer.l` 文件中根据 `Cminusf` 的词法规则完成词法分析器。在 `lexical_analyzer.l` 文件中,你只需在规则部分补全模式和动作即可,能够输出识别出的 `token`,`text``line(刚出现的行数)`,`pos_start(该行开始位置)`,`pos_end(结束的位置不包含)`。比如:

文本输入:

Expand Down Expand Up @@ -69,7 +69,7 @@ Token Text Line Column (Start,End)

请注意以下几点:

1. 在补全 `lexical_analyzer.l` 前,你需要在 `src/parser/syntax_analyzer.y` 中补全 `%union` 的相关内容
1. 在补全 `lexical_analyzer.l` 前,你需要在 `src/parser/syntax_analyzer.y` 中补全 `%union` 的相关内容
2. 在补全 `lexical_analyzer.l` 前,需要首先修改 `src/parser/syntax_analyzer.y` 文件对 token 进行定义,定义方式形如 `%token <node> ERROR`
3. token 编号是程序自动生成的,根据 token 定义顺序不同,输出的 token 编号也可能不同,是正常现象;
4. 对于部分 token,只需被识别,但不应该被输出到分析结果中,因为这些 token 对程序运行没有作用。
Expand Down Expand Up @@ -303,7 +303,7 @@ $ ./build/parser ./tests/testcases_general/1-return.cminus
测试样例分为两个部分,分别是 `tests/testcases_general` 和 lab1 限定的 `tests/1-parser`
我们重点使用 `tests/1-parser` 考察语法分析器的正确行。其结构如下:
我们重点使用 `tests/1-parser` 考察语法分析器的正确性。其结构如下:
```shell
.
Expand Down

0 comments on commit 8de5fdd

Please sign in to comment.