以下源`stm1; stm2; stm3`的根`CompoundStm`有2个子语句

时间:2017-08-14 11:31:16

标签: compilation compiler-construction

我正在阅读Modern Compiler Implementation in Java并显示以下简单的源程序代码:

a := 5+3; b := (print(a, a-1), 10*a); print(b)

程序的树形表示如下:

               CompoundStm
             /            \
            /              \
       a := 5+3            b := (print(a, a-1), 10*a); print(b)
       AssignStm           CompoundStm
      /         \         /          \
     /           \       /            \
    a           OpExp  AssignStm      PrintStm
                       /      \
                      b       EsecExp

但我希望它是这样的:

                    CompoundStm
             /             |       \
            /              |        \
       a := 5+3  b := (pr...), 10*a) print(b)
       AssignStm       AssignStm     PrintStm  
      /         \         /   \
     /           \       /     \
    a           OpExp  b       EsecExp

第一个CompoundStm有2个孩子而不是3个孩子是什么?是因为CompoundStm只能有2个孩子吗?

0 个答案:

没有答案