.


 

7.11.

-

 

1: <1> --> {<2><3>}

:

:

: {

: φ( "{", <1>) = ( }<3><2>{)

: (4,2)(5,3)(5,2)(4,1)ComEnd

 

2. <2> ::= "bool"{6}.a1 <4>.f1

: f1 = a1

: a1 = -2

: "bool"

: φ( "bool", <2>) = ( .f1<4>.a1 {6} "bool")

: (8,nl)(5,4)(9,1)(8,-3)(6,6)(3,0)ComEnd

 

3. <3> ::= <6><7>

:

:

: ""

: φ*( "", <3>) = ( <7><6>)

: (5,7)(5,6)ComEnd

 

 

4 <4>f2 ::=":""" {5}.b1<5>.g1

: b1=f2, g1=f2

: b1 = -2, g1 = -1

: ":"

: φ( ":", <4>) = [f2] ( .g1<5>.b1 {5}"" ":")

: (8,-1)(5,5)(9,1)(8,-4)(6,5)(1,0)(4,4)ComEnd

 

5. <5>.g2 ::= ","""{5}.b2<5>g3.

: b2=g2, g3=g2,

: b2 = -3, g3 = -1

: ","

: φ( ",", <5>) = [g2] ( .g3<5>.b2 {5}""",")

: (8,-1)(5,5)(9,1)(8,-4)(6,5) (1,0) (4,10)ComEnd

 

6. <5>.g4 ::= ;

:

:

: ";"

: φ( ";", <5>) = [g4](";")

: (6,10)(4,3)ComEnd

 

 

7. <6> ::= ""{7}.c1<8>.j1

: j1=c1

:c1= -2

 

: ""

: φ( "", <6>) = ( j1<8>.c1{7}"")

: (8,nl)(5,8)(9,1)(8,-3)(6,7)(1,0)ComEnd

 

8. <7> ::= <6><7>

:

:

: ""

: φ*( "", <7>) = ( <7><6>)

: (5,7)(5,6)ComEnd

 

9. <7> ::= $

:

:

: "}"

: φ*( "}", <7>) = ( )

: ComEnd

 

10. <8>.j2 ::= "="<9>.k1{1}.d1.d2;

: d1=j2, d2=k1

: d1 = -3, k1 = -3

: "="

: φ( "=", <8>) = [j2] ( ";".d2.d1{1}).k1 <9> "=")

: (4,3)(8,nl)(8,-3)(6,1)(8.-3)(5,9)(4,11)ComEnd

 

11: <9>.k2 ::= <10>.l1<11>.m1.n1

: k2=m1, n1=l1

: m1 = -2, l1 = -3

: ""

: φ*( """", <9>) = [k2] ( .n1.m1<11>.l1<10>)

: (8,nl)(8,-2)(5,11)(8.-3)(5,10)ComEnd

 

12. <9>.k2 ::= <10>.l1<11>.m1.n1

: k2=m1, n1=l1

: m1 = -2, l1 = -3

: "~"

: φ*( "~", <9>) = [k2] ( .n1.m1<11>.l1<10>)

: (8,nl)(8,-2)(5,11)(8.-3)(5,10)ComEnd

 

13. <9>.k2 ::= <10>.l1<11>.m1.n1

: k2=m1, n1=l1

: m1 = -2, l1 = -3

: "("

: φ*( "(", <9>) = [k2] ( .n1.m1<11>.l1<10>)

 

 

: (8,nl)(8,-2)(5,11)(8.-3)(5,10)ComEnd

 

14. <9>.k2 ::= <10>.l1<11>.m1.n1

: k2=m1, n1=l1

 

: m1 = -2, l1 = -3

: "false"

: φ*( "false", <9>) = [k2] ( .n1.m1<11>.l1<10>)

: (8,nl)(8,-2)(5,11)(8.-3)(5,10)ComEnd

 

15. <9>.k2 ::= <10>.l1<11>.m1.n1

: k2=m1, n1=l1

: m1 = -2, l1 = -3

: "true"

: φ*( "true", <9>) = [k2] ( .n1.m1<11>.l1<10>)

: (8,nl)(8,-2)(5,11)(8.-3)(5,10)ComEnd

 

16.  <10>.l3 ::= <12>.p1<13>.q1.r1

: l3=q1, r1=p1

: q1 = -2, p1 = -3

: " "

: φ*( " ", <10>) = [l3] ( .r1.q1<13>.p1<12>)

: (8,nl)(8,-2)(5,13)(8.-3)(5,12)ComEnd

 

17.  <10>.l3 ::= <12>.p1<13>.q1.r1

: l3=q1, r1=p1

: q1 = -4, p1 = -3

: " ~ "

: φ*( " ~ ", <10>) = [l3] ( .r1.q1<13>.p1<12>)

: (8,nl)(8,-2)(5,13)(8.-3)(5,12)ComEnd

 

18.  <10>.l3 ::= <12>.p1<13>.q1.r1

: l3=q1, r1=p1

: q1 = -4, p1 = -3

: " ( "

: φ*( "(", <10>) = [l3] ( .r1.q1<13>.p1<12>)

: (8,nl)(8,-2)(5,13)(8.-3)(5,12)ComEnd

 

19.  <10>.l3 ::= <12>.p1<13>.q1.r1

: l3=q1, r1=p1

: q1 = -4, p1 = -3

: " false "

: φ*( "false ", <10>) = [l3] ( .r1.q1<13>.p1<12>)

: (8,nl)(8,-2)(5,13)(8.-3)(5,12)ComEnd

 

20.  <10>.l3 ::= <12>.p1<13>.q1.r1

: l3=q1, r1=p1

: q1 = -4, p1 = -3

: " true"

: φ*( "true", <10>) = [l3] ( .r1.q1<13>.p1<12>)

 

: (8,nl)(8,-2)(5,13)(8.-3)(5,12)ComEnd

 

21.  <11>.m2.n2 ::= "|" <10>l2{3}.x1.x2.x3<11>.m3.n3

: m2=m3, x1=l2, x2=n2, n3=x3

: m3 = -2, l2 = --2, x2=-6, x3=-3

: "|"

: φ( "|", <11>) = [.n2.m2] ( .n3.m3<11>.x3.x2.x1{3}.l2<10>"|")

:(8,nl)(8,-2)(5,11)(8,-3)(8,-6)(8,nl)(6,3)(8.-2)(5,10)(4,6)ComEnd

 

22. <11>.m4.n4 ::= {8}

: m4=n4

: ")"

: φ*( ")", <11>) = [.n3.m3] ( )

:(6,8)ComEnd

 

23. <11>.m4.n4 ::= {8}

: m4=n4

";"

: φ*( ";", <11>) = [.n3.m3] ( )

:(6,8)ComEnd

 

24. <12>.p2 ::= "~"<14>.s1 {4}.y1.y2

: y1=s1, p2=y2

: s1=-2, y2=-1

: "~"

: φ( "~", <12>) = [.p2] (.y2,y1{4} .s1<14>"~")

: (8,-1)(8,nl)(6,4) (8,-2)(5,14)(4,7)ComEnd

 

25. <12>.p3 ::= <14>.s2

: p3=s2

: s2=-1

: " "

: φ*( " ", <12>) = [.p3] (.s2<14>)

: (8,-2)(5,14)ComEnd

 

26. <12>.p3 ::= <14>.s2

: p3=s2

: s2=-1

: "( "

: φ*( "( ", <12>) = [.p3] ( .s2<14>)

:(8,-1)(5,14)ComEnd

 

27. <12>.p3 ::= <14>.s2

: p3=s2

: s2=-1

: "false "

: φ*( "false", <12>) = [.p3] ( .s2<14>)

 

:(8,-1)(5,14)ComEnd

 

28. <12>.p3 ::= <14>.s2

: p3=s2

: s2=-1

: "true"

: φ*( "true", <12>) = [.p3] ( .s2<14>)

:(8,-1)(5,14)ComEnd

 

29. <13>.q2.r2 ::= "&"<12>.p2{2}.x4.x5.x6<13>.q3.r3

: q2=q3, x4=p2, x5=r2, r3=x6

: x6=-3, p2=-2, x5=-6, q3=-2,

: "&"

: φ("&", <13>) = [.r2.q2] ( .r3.q3<13>.x6.x5.x4{2}.p2<12>"&")

:(8,nl)(8,-2)(5,13)(8,-3)(8,-6)(8,nl)(6,2)(8,-2)(5,12)(4,5)ComEnd

 

30. <13>.q4.r4 ::= {8}

: q4=r4

: ";"

: φ*( ";", <13>) = [.r4.q4] ()

:(6,8)ComEnd

 

31. <13>.q4.r4 ::= {8}

: q4=r4

: "|"

: φ*( "|", <11>) = [.r4.q4] ()

:(6,8)ComEnd

 

32. <13>.q4.r4 ::= {8}

: q4=r4

: ")"

: φ*( ")", <11>) = [.r4.q4] ({8})

:(6,8)ComEnd

 

33. <14>.s3::=""{7}.c2

: s3=c2

: c2=-1

: " "

: φ( " ", <14>) = [.s3] ( .c2{7}"")

: (9,1)(8,-2)(6,7)(1,0)ComEnd

 

34. <14>.s4::= "("<9>.k3")"

: s4=k3

: c2=-2

: " ( "

: φ( " (", <14>) = [.s4] ( ")".k3<9>"(")

 

: (4,9)(8,-2)(5,9)(4,8)ComEnd

 

35. <14>.s5::= "false"{9}.t1

: s5=t1

: t1=-1

: "false"

: φ( "false", <14>) = [.s5] (.t1{9}"false")

(9,1)(8,-2)(6,9)(3,2)ComEnd

 

36/ <14>.s6::= "true"{9}.t2

: s6=t2

: t2=-1

: "true"

: φ( "true", <14>) = [.s6] (.t2{9}"true")

(9,1)(8,-2)(6,9)(3,1)ComEnd

 


.