语法分析树输出格式 程序使用文本字符输出语法分析树,类似 '='---5
+-----ID
表示ID=5, ID表示标识符。以后将实现存储标识符的表格,从而可以显示标识符的名字。
'='---'+'---5
| '+'---b
+-----ID
表示ID=ID+5
whl---'='---'+'---5
| | +-----ID
| +-----ID
+-----'>'---3
+-----ID
表示while ID>3 then ID=ID+5
if ---blk---whl---'='---9
| | | +-----ID
| | +-----'>'---ID
| | +-----3
| +-----blk---'='---'+'---'*'---ID
| | | | +-----9
| | | +-----8
| | +-----ID
| +-----'='---3
| +-----ID
+-----'>'---8
+-----ID
对应下面的程序:
if a>8 then{
b = 3;
a = 8 + 9 * t;
}else{
while 3>a do
a=9;
}
下面的程序:
if a>8+3*d+6 | 3>4 & e<8 then{
s=2;
b=15;
if a
s = 8+te
i = 4*8
}else{
s = 0;
}
a=8+9;
rel=8*7;
}else{
while d>a do
begin
a=9+a;
b=7;
c=5+17*a;
end
}
生成树:
if ---blk---whl---blk---'='---'+'---'*'---ID
| | | | | | +-----17
| | | | | +-----5
| | | | +-----ID
| | | +-----blk---'='---7
| | | | +-----ID
| | | +-----'='---'+'---ID
| | | | +-----9
| | | +-----ID
| | +-----'>'---ID
| | +-----ID
| +-----blk---'='---'*'---7
| | | +-----8
| | +-----ID
| +-----blk---'='---'+'---9
| | | +-----8
| | +-----ID
| +-----blk---if ---blk---'='---0
| | | | +-----ID
| | | +-----blk---'='---'*'---8
| | | | | +-----4
| | | | +-----ID
| | | +-----'='---'+'---ID
| | | | +-----8
| | | +-----ID
| | +-----'
| | +-----ID
| +-----blk---'='---15
| | +-----ID
| +-----'='---2
| +-----ID
+-----'|'---'&'---'
| | +-----ID
| +-----'>'---4
| +-----3
+-----'>'---'+'---6
| +-----'+'---'*'---ID
| | +-----3
| +-----8
+-----ID