实现 12.5 递归下降语法:AST + 拒绝清单。

- Parser.h/cpp:POU 外壳(PROGRAM/FUNCTION/FUNCTION_BLOCK)、变量段、语句(赋值/IF/WHILE/FB 调用)、表达式优先级爬升(NOT/AND/OR 短路/比较/算术/函数调用/负号)
- Unit 结构:顶层 VAR_GLOBAL 段(GVL 文件形态)+ POU 列表
- 拒绝:VAR_IN_OUT/REF/CLASS/ANY 等保留名、链式比较、FB 字段赋值、顶层非 GVL 段
- THEN/DO 补入关键字表(12.5 修订,同步 12.1 与词法文档)
- parser_test:98 断言(line1 三文件 AST、FUNCTION 调用、IF/WHILE/TON、9 类负例),ctest 6/6
This commit is contained in:
2026-08-21 11:07:34 +08:00
parent d4e2c1ae7c
commit 4ba44459e2
11 changed files with 1387 additions and 1 deletions
+1
View File
@@ -367,6 +367,7 @@ CMake 三个库能空编译:`isa`、`compiler`、`vm`;两个可执行 `STCom
`VAR` `VAR_INPUT` `VAR_OUTPUT` `VAR_GLOBAL` `VAR_EXTERNAL` `END_VAR`
`BOOL` `INT` `TIME`
`IF` `ELSIF` `ELSE` `END_IF` `WHILE` `END_WHILE`
`THEN` `DO` 12.5 修订补入:`IF…THEN` / `WHILE…DO` 语法需要)
`AND` `OR` `NOT`
`TRUE` `FALSE`
`TON` `TOF` `CTU`