文件名/文件夹名 |
文件功能 |
dist/ |
GUI |
test/ |
测试文件源码 |
TPC-GUI/ |
GUI源代码 |
mkdir build
cd build
cmake ..
make
后缀名 |
说明 |
.scan |
词法分析结果 |
.tree |
语法分析结果 |
.symbol |
符号表 |
.code |
四元式中间代码 |
程序 -> 语句序列
语句序列 -> 语句 ; 语句
语句 -> if 语句 | repeat 语句 | assign 语句 | read 语句 | write 语句
if 语句 -> if 表达式 then 语句序列 end | if 表达式 then 语句序列 else 语句序列 end
repeat 语句 -> repeat 语句序列 until 表达式
assign 语句 -> 标识符 := 表达式
read 语句 -> read 标识符
write 语句 -> write 表达式
表达式 -> 简单表达式 | 简单表达式 {<, >, =, <=, >=, <>} 简单表达式
简单表达式 -> 加数 | 加数 {+, -} 加数
加数 -> 因数 | 因数 {*, /} 因数
因数 -> ( 表达式 ) | 数字 | 标识符
标识符 -> 字母的串
数字 -> 数字的串
保留字 |
Token |
if |
IF |
then |
THEN |
else |
ELSE |
repeat |
REPEAT |
until |
UNTIL |
read |
READ |
write |
WRITE |
end |
END |
运算符 |
Token |
+ |
PLUS |
- |
MINUS |
* |
TIMES |
/ |
OVER |
= |
EQ |
<> |
NOTEQ |
< |
LT |
> |
GT |
<= |
LTEQ |
>= |
GTEQ |
( |
LPAREN |
) |
RPAREN |
; |
SEMI |
:= |
ASSIGN |