diff --git a/README.md b/README.md index abcb91f..92d15bc 100644 --- a/README.md +++ b/README.md @@ -191,4 +191,106 @@ println("Hello", 42) // 输出: Hello42\n | 13 | &= | a &= 1 | a = a & 1 | | 13 | ^= | a ^= 1 | a = a ^ 1 | | 13 | <<= | a <<= 1 | a = a << 1 | -| 13 | >>= | a >>= 1 | a = a >> 1 | \ No newline at end of file +| 13 | >>= | a >>= 1 | a = a >> 1 | + +## 2. 实现细节 + +### 2.1 词法分析的符号表结构 +#### 关键字表 + +| name | id | +| ------- | ---- | +| var | 1 | +| i8 | 2 | +| i16 | 3 | +| i32 | 4 | +| i64 | 5 | +| u8 | 6 | +| u16 | 7 | +| u32 | 8 | +| u64 | 9 | +| float32 | 10 | +| float64 | 11 | +| char | 12 | +| for | 13 | +| if | 14 | +| else | 15 | +| bool | 16 | +| string | 17 | +| vector | 18 | +| array | 19 | +| struct | 20 | +| tuple | 21 | +| print | 22 | +| println | 23 | +| | | +| | | +| | | + +#### 界符表 + +| id | 关键字 | +| ------ | ------ | +| 1 | - | +| 2 | ! | +| 3 | ~ | +| 4 | / | +| 5 | * | +| 6 | % | +| 7 | + | +| 8 | - | +| 9 | << | +| 10 | >> | +| 11 | > | +| 12 | >= | +| 13 | < | +| 14 | <= | +| 15 | == | +| 16 | != | +| 17 | & | +| 18 | ^ | +| 19 | \| | +| 20 | && | +| 21 | \|\| | +| 22 | = | +| 23 | %= | +| 24 | \*= | +| 25 | /= | +| 26 | += | +| 27 | -= | +| 28 | \|= | +| 29 | &= | +| 30 | ^= | +| 31 | <<= | +| 32 | >>= | +| 33 | ( | +| 34 | ) | +| 35 | < | +| 36 | > | +| 37 | , | +| 38 | . | +| 39 | [ | +| 40 | ] | +| 41 | ? | +| 42 | : | + +#### 常量表 + +| id | type | val | +| ---- | ---- | ---- | +| 1 | i8 | 33 | +| 2 | i64 | 100 | +| 3 | char | 指向'c'的pointer | +| 4 | string | 指向'hello,world'的pointer | + +#### 标识符表 + +| id | name | +| ---- | ----| +| 1 | a | +| 2 | tot | +| 3 | my_vector | +| 4 | ans | + + +