词法分析器文档

词法分析器的源码位于src/compiler/Lexer.cpp

Lexer.cpp里的代码都被stamon::cc指的是compiler)这个命名空间封装了起来。

如果你想要调用Lexer.cpp,可以编写以下代码:

```C++

include"Lexer.cpp"

using namespace stamon::c; ```

接下来我想讲一讲词法分析器的架构(了解该架构前,你应该要会编译原理):

Token是基本词法单元类,其成员如下:


Token类外,还有StringTokenIdenTokenIntTokenDoubleToken。这些都是Token的子类,如果一个Token是字面量或者标识符,你需要将其转化成对应的子类才能获取信息。具体请参见Lexer.cpp中的相关定义。


Lexer是词法分析器类,其接口如下:

Lexer在分析前,应当先把源码分解成逐行的文本,然后从第一行到最后一行依次调用getLineTok。

具体的用法请参见Lexer.cpp和测试样例

——摘自工作日志20230131.md