Start of CONSTRUCTOR for the Grammar TRI.grm Sun Dec 12 23:10:34 2010

Terminal alphabet

# 1 = #
# 2 = ;
# 3 = :
# 4 = #i#
# 5 = :=
# 6 = GOTO
# 7 = +
# 8 = -
# 9 = *
#10 = /
#11 = #c#
#12 = (
#13 = )
#14 = <
#15 = >
#16 = <=
#17 = >=
#18 = /=
#19 = =
#20 = IF
#21 = THEN
#22 = READ
#23 = WRITE
#24 = [
#25 = ]
#26 = ARRAY


Nonterminal alphabet

#27 = `programm'
#28 = `programm12'
#29 = `operaatorid'
#30 = `operaator'
#31 = `operaatorid13'
#32 = `label'
#33 = `omistamine'
#34 = `iflause'
#35 = `suunamine'
#36 = `lugemine'
#37 = `kirjutamine'
#38 = `muutuja'
#39 = `omistamine1'
#40 = `loogilav'
#41 = `aritmav'
#42 = `tingimus'
#43 = `yksliige'
#44 = `aritmav2'
#45 = `aritmav3'
#46 = `tegur'
#47 = `yksliige4'
#48 = `tegur5'
#49 = `loogilav6'
#50 = `loogilav7'
#51 = `loogilav8'
#52 = `loogilav9'
#53 = `loogilav10'
#54 = `loogilav11'
#55 = `masindeks'
#56 = `masdeklaratrsion'
#57 = `massiiv'
#58 = `masomistamine'
#59 = `masvaartus'


Productions

P 1: `programm' -> `programm12' #
P 2: `programm12' -> # `operaatorid'
P 3: `operaatorid' -> `operaator'
P 4: `operaatorid' -> `operaatorid13' ; `operaatorid'
P 5: `operaatorid13' -> `operaator'
P 6: `operaator' -> `label' : `operaator'
P 7: `operaator' -> `omistamine'
P 8: `operaator' -> `iflause'
P 9: `operaator' -> `suunamine'
P10: `operaator' -> `lugemine'
P11: `operaator' -> `kirjutamine'
P12: `label' -> #i#
P13: `omistamine' -> `muutuja' := `omistamine1'
P14: `omistamine' -> `muutuja' := `loogilav'
P15: `omistamine1' -> `aritmav'
P16: `muutuja' -> #i#
P17: `iflause' -> `tingimus' `operaator'
P18: `suunamine' -> GOTO `label'
P19: `aritmav' -> `yksliige'
P20: `aritmav' -> `aritmav' + `aritmav2'
P21: `aritmav' -> `aritmav' - `aritmav3'
P22: `aritmav2' -> `yksliige'
P23: `aritmav3' -> `yksliige'
P24: `yksliige' -> `tegur'
P25: `yksliige' -> `yksliige' * `yksliige4'
P26: `yksliige' -> `yksliige' / `tegur'
P27: `yksliige4' -> `tegur'
P28: `tegur' -> #i#
P29: `tegur' -> #c#
P30: `tegur' -> ( `tegur5'
P31: `tegur5' -> `aritmav' )
P32: `loogilav' -> `aritmav' < `loogilav6'
P33: `loogilav' -> `aritmav' > `loogilav7'
P34: `loogilav' -> `aritmav' <= `loogilav8'
P35: `loogilav' -> `aritmav' >= `loogilav9'
P36: `loogilav' -> `aritmav' /= `loogilav10'
P37: `loogilav' -> `aritmav' = `loogilav11'
P38: `loogilav6' -> `aritmav'
P39: `loogilav7' -> `aritmav'
P40: `loogilav8' -> `aritmav'
P41: `loogilav9' -> `aritmav'
P42: `loogilav10' -> `aritmav'
P43: `loogilav11' -> `aritmav'
P44: `tingimus' -> IF `loogilav' THEN
P45: `lugemine' -> READ #i#
P46: `kirjutamine' -> WRITE #i#
P47: `masindeks' -> [ `aritmav' ]
P48: `masdeklaratrsion' -> ARRAY `massiiv'
P49: `operaator' -> `masdeklaratrsion'
P50: `operaator' -> `masomistamine'
P51: `massiiv' -> #i# `masindeks'
P52: `masomistamine' -> `massiiv' := `omistamine1'
P53: `masvaartus' -> `massiiv'
P54: `tegur' -> `masvaartus'

Leftmost-set

Symbol1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
27.programm*00000000000000000000000000*0000000000000000000000000000000
28.programm12*0000000000000000000000000000000000000000000000000000000000
29.operaatorid000*0*0000000000000*0**00*000*********000*0000000000000***0
30.operaator000*0*0000000000000*0**00*00000*******000*0000000000000***0
31.operaatorid13000*0*0000000000000*0**00*000*0*******000*0000000000000***0
32.label000*0000000000000000000000000000000000000000000000000000000
33.omistamine000*000000000000000000000000000000000*000000000000000000000
34.iflause0000000000000000000*000000000000000000000*00000000000000000
35.suunamine00000*00000000000000000000000000000000000000000000000000000
36.lugemine000000000000000000000*0000000000000000000000000000000000000
37.kirjutamine0000000000000000000000*000000000000000000000000000000000000
38.muutuja000*0000000000000000000000000000000000000000000000000000000
39.omistamine1000*000000**0000000000000000000000000000*0*00*0000000000*0*
40.loogilav000*000000**0000000000000000000000000000*0*00*0000000000*0*
41.aritmav000*000000**0000000000000000000000000000*0*00*0000000000*0*
42.tingimus0000000000000000000*000000000000000000000000000000000000000
43.yksliige000*000000**000000000000000000000000000000*00*0000000000*0*
44.aritmav2000*000000**000000000000000000000000000000*00*0000000000*0*
45.aritmav3000*000000**000000000000000000000000000000*00*0000000000*0*
46.tegur000*000000**00000000000000000000000000000000000000000000*0*
47.yksliige4000*000000**000000000000000000000000000000000*0000000000*0*
48.tegur5000*000000**0000000000000000000000000000*0*00*0000000000*0*
49.loogilav6000*000000**0000000000000000000000000000*0*00*0000000000*0*
50.loogilav7000*000000**0000000000000000000000000000*0*00*0000000000*0*
51.loogilav8000*000000**0000000000000000000000000000*0*00*0000000000*0*
52.loogilav9000*000000**0000000000000000000000000000*0*00*0000000000*0*
53.loogilav10000*000000**0000000000000000000000000000*0*00*0000000000*0*
54.loogilav11000*000000**0000000000000000000000000000*0*00*0000000000*0*
55.masindeks00000000000000000000000*00000000000000000000000000000000000
56.masdeklaratrsion0000000000000000000000000*000000000000000000000000000000000
57.massiiv000*0000000000000000000000000000000000000000000000000000000
58.masomistamine000*0000000000000000000000000000000000000000000000000000*00
59.masvaartus000*0000000000000000000000000000000000000000000000000000*00

Rightmost-set

Symbol1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
27.programm*0000000000000000000000000000000000000000000000000000000000
28.programm12000*000000*0*00000000000*000**0******0***0*****************
29.operaatorid000*000000*0*00000000000*000**0******0***0*****************
30.operaator000*000000*0*00000000000*0000*0******0***0*****************
31.operaatorid13000*000000*0*00000000000*0000*0******0***0*****************
32.label000*0000000000000000000000000000000000000000000000000000000
33.omistamine000*000000*0*00000000000*0000000000000***0*************0*0*
34.iflause000*000000*0*00000000000*0000*0******0***0*****************
35.suunamine000*000000000000000000000000000*000000000000000000000000000
36.lugemine000*0000000000000000000000000000000000000000000000000000000
37.kirjutamine000*0000000000000000000000000000000000000000000000000000000
38.muutuja000*0000000000000000000000000000000000000000000000000000000
39.omistamine1000*000000*0*00000000000*000000000000000*0******000000*0*0*
40.loogilav000*000000*0*00000000000*000000000000000*0*************0*0*
41.aritmav000*000000*0*00000000000*00000000000000000******000000*0*0*
42.tingimus00000000000000000000*00000000000000000000000000000000000000
43.yksliige000*000000*0*00000000000*00000000000000000000***000000*0*0*
44.aritmav2000*000000*0*00000000000*00000000000000000*00***000000*0*0*
45.aritmav3000*000000*0*00000000000*00000000000000000*00***000000*0*0*
46.tegur000*000000*0*00000000000*0000000000000000000000*000000*0*0*
47.yksliige4000*000000*0*00000000000*00000000000000000000*0*000000*0*0*
48.tegur5000000000000*0000000000000000000000000000000000000000000000
49.loogilav6000*000000*0*00000000000*000000000000000*0******000000*0*0*
50.loogilav7000*000000*0*00000000000*000000000000000*0******000000*0*0*
51.loogilav8000*000000*0*00000000000*000000000000000*0******000000*0*0*
52.loogilav9000*000000*0*00000000000*000000000000000*0******000000*0*0*
53.loogilav10000*000000*0*00000000000*000000000000000*0******000000*0*0*
54.loogilav11000*000000*0*00000000000*000000000000000*0******000000*0*0*
55.masindeks000000000000000000000000*0000000000000000000000000000000000
56.masdeklaratrsion000000000000000000000000*00000000000000000000000000000*0*00
57.massiiv000000000000000000000000*00000000000000000000000000000*0000
58.masomistamine000*000000*0*00000000000*0000000000000*0*0******000000*0*0*
59.masvaartus000000000000000000000000*00000000000000000000000000000*0*00

Leftmost & rightmost sets

`programm' leftmost set: `#' , `programm12'
`programm' rightmost set: #

`programm12' leftmost set: `#'
`programm12' rightmost set: #i# , #c# , ) , ] , operaatorid , operaator , label , omistamine , iflause , suunamine , lugemine , kirjutamine , omistamine1 , loogilav , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , loogilav6 , loogilav7 , loogilav8 , loogilav9 , loogilav10 , loogilav11 , masindeks , masdeklaratrsion , massiiv , masomistamine , masvaartus

`operaatorid' leftmost set: `#i#' , `GOTO' , `IF' , `READ' , `WRITE' , `ARRAY' , `operaator' , `operaatorid13' , `label' , `omistamine' , `iflause' , `suunamine' , `lugemine' , `kirjutamine' , `muutuja' , `tingimus' , `masdeklaratrsion' , `massiiv' , `masomistamine'
`operaatorid' rightmost set: #i# , #c# , ) , ] , operaatorid , operaator , label , omistamine , iflause , suunamine , lugemine , kirjutamine , omistamine1 , loogilav , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , loogilav6 , loogilav7 , loogilav8 , loogilav9 , loogilav10 , loogilav11 , masindeks , masdeklaratrsion , massiiv , masomistamine , masvaartus

`operaator' leftmost set: `#i#' , `GOTO' , `IF' , `READ' , `WRITE' , `ARRAY' , `label' , `omistamine' , `iflause' , `suunamine' , `lugemine' , `kirjutamine' , `muutuja' , `tingimus' , `masdeklaratrsion' , `massiiv' , `masomistamine'
`operaator' rightmost set: #i# , #c# , ) , ] , operaator , label , omistamine , iflause , suunamine , lugemine , kirjutamine , omistamine1 , loogilav , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , loogilav6 , loogilav7 , loogilav8 , loogilav9 , loogilav10 , loogilav11 , masindeks , masdeklaratrsion , massiiv , masomistamine , masvaartus

`operaatorid13' leftmost set: `#i#' , `GOTO' , `IF' , `READ' , `WRITE' , `ARRAY' , `operaator' , `label' , `omistamine' , `iflause' , `suunamine' , `lugemine' , `kirjutamine' , `muutuja' , `tingimus' , `masdeklaratrsion' , `massiiv' , `masomistamine'
`operaatorid13' rightmost set: #i# , #c# , ) , ] , operaator , label , omistamine , iflause , suunamine , lugemine , kirjutamine , omistamine1 , loogilav , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , loogilav6 , loogilav7 , loogilav8 , loogilav9 , loogilav10 , loogilav11 , masindeks , masdeklaratrsion , massiiv , masomistamine , masvaartus

`label' leftmost set: `#i#'
`label' rightmost set: #i#

`omistamine' leftmost set: `#i#' , `muutuja'
`omistamine' rightmost set: #i# , #c# , ) , ] , omistamine1 , loogilav , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , loogilav6 , loogilav7 , loogilav8 , loogilav9 , loogilav10 , loogilav11 , masindeks , massiiv , masvaartus

`iflause' leftmost set: `IF' , `tingimus'
`iflause' rightmost set: #i# , #c# , ) , ] , operaator , label , omistamine , iflause , suunamine , lugemine , kirjutamine , omistamine1 , loogilav , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , loogilav6 , loogilav7 , loogilav8 , loogilav9 , loogilav10 , loogilav11 , masindeks , masdeklaratrsion , massiiv , masomistamine , masvaartus

`suunamine' leftmost set: `GOTO'
`suunamine' rightmost set: #i# , label

`lugemine' leftmost set: `READ'
`lugemine' rightmost set: #i#

`kirjutamine' leftmost set: `WRITE'
`kirjutamine' rightmost set: #i#

`muutuja' leftmost set: `#i#'
`muutuja' rightmost set: #i#

`omistamine1' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`omistamine1' rightmost set: #i# , #c# , ) , ] , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus

`loogilav' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`loogilav' rightmost set: #i# , #c# , ) , ] , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , loogilav6 , loogilav7 , loogilav8 , loogilav9 , loogilav10 , loogilav11 , masindeks , massiiv , masvaartus

`aritmav' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`aritmav' rightmost set: #i# , #c# , ) , ] , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus

`tingimus' leftmost set: `IF'
`tingimus' rightmost set: THEN

`yksliige' leftmost set: `#i#' , `#c#' , `(' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`yksliige' rightmost set: #i# , #c# , ) , ] , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus

`aritmav2' leftmost set: `#i#' , `#c#' , `(' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`aritmav2' rightmost set: #i# , #c# , ) , ] , yksliige , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus

`aritmav3' leftmost set: `#i#' , `#c#' , `(' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`aritmav3' rightmost set: #i# , #c# , ) , ] , yksliige , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus

`tegur' leftmost set: `#i#' , `#c#' , `(' , `massiiv' , `masvaartus'
`tegur' rightmost set: #i# , #c# , ) , ] , tegur5 , masindeks , massiiv , masvaartus

`yksliige4' leftmost set: `#i#' , `#c#' , `(' , `tegur' , `massiiv' , `masvaartus'
`yksliige4' rightmost set: #i# , #c# , ) , ] , tegur , tegur5 , masindeks , massiiv , masvaartus

`tegur5' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`tegur5' rightmost set: )

`loogilav6' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`loogilav6' rightmost set: #i# , #c# , ) , ] , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus

`loogilav7' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`loogilav7' rightmost set: #i# , #c# , ) , ] , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus

`loogilav8' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`loogilav8' rightmost set: #i# , #c# , ) , ] , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus

`loogilav9' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`loogilav9' rightmost set: #i# , #c# , ) , ] , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus

`loogilav10' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`loogilav10' rightmost set: #i# , #c# , ) , ] , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus

`loogilav11' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`loogilav11' rightmost set: #i# , #c# , ) , ] , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus

`masindeks' leftmost set: `['
`masindeks' rightmost set: ]

`masdeklaratrsion' leftmost set: `ARRAY'
`masdeklaratrsion' rightmost set: ] , masindeks , massiiv

`massiiv' leftmost set: `#i#'
`massiiv' rightmost set: ] , masindeks

`masomistamine' leftmost set: `#i#' , `massiiv'
`masomistamine' rightmost set: #i# , #c# , ) , ] , omistamine1 , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus

`masvaartus' leftmost set: `#i#' , `massiiv'
`masvaartus' rightmost set: ] , masindeks , massiiv


Precedence matrix

Symbol1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
1.#000<0<0000000000000<0<<00<00=<<<<<<<<<000<0000000000000<<<0
2.;000<0<0000000000000<0<<00<00=<<<<<<<<<000<0000000000000<<<0
3.:000<0<0000000000000<0<<00<000=0<<<<<<<000<0000000000000<<<0
4.#i#>>>0>0>>>>00>>>>>>>0>00<>00000000000000000000000000000=0000
5.:=000<000000<<00000000000000000000000000==<0<00<0000000000<0<
6.GOTO000<000000000000000000000000000=000000000000000000000000000
7.+000<000000<<000000000000000000000000000000<=0<0000000000<0<
8.-000<000000<<000000000000000000000000000000<0=<0000000000<0<
9.*000<000000<<000000000000000000000000000000000<=000000000<0<
10./000<000000<<000000000000000000000000000000000=0000000000<0<
11.#c#>>0000>>>>00>>>>>>>0>000>0000000000000000000000000000000000
12.(000<000000<<0000000000000000000000000000<0<00<0=00000000<0<
13.)>>0000>>>>00>>>>>>>0>000>0000000000000000000000000000000000
14.<000<000000<<0000000000000000000000000000<0<00<00=0000000<0<
15.>000<000000<<0000000000000000000000000000<0<00<000=000000<0<
16.<=000<000000<<0000000000000000000000000000<0<00<0000=00000<0<
17.>=000<000000<<0000000000000000000000000000<0<00<00000=0000<0<
18./=000<000000<<0000000000000000000000000000<0<00<000000=000<0<
19.=000<000000<<0000000000000000000000000000<0<00<0000000=00<0<
20.IF000<000000<<000000000000000000000000000=<0<00<0000000000<0<
21.THEN000>0>0000000000000>0>>00>000>0>>>>>>>000>0000000000000>>>0
22.READ000=0000000000000000000000000000000000000000000000000000000
23.WRITE000=0000000000000000000000000000000000000000000000000000000
24.[000<000000<<0000000000000000000000000000 30<00<0000000000<0<
25.]>>00>0>>>>00>>>>>>>0>000>0000000000000000000000000000000000
26.ARRAY000<0000000000000000000000000000000000000000000000000000=00
27.programm00000000000000000000000000000000000000000000000000000000000
28.programm12=0000000000000000000000000000000000000000000000000000000000
29.operaatorid>0000000000000000000000000000000000000000000000000000000000
30.operaator>>000000000000000000000000000000000000000000000000000000000
31.operaatorid130=000000000000000000000000000000000000000000000000000000000
32.label>>=00000000000000000000000000000000000000000000000000000000
33.omistamine>>000000000000000000000000000000000000000000000000000000000
34.iflause>>000000000000000000000000000000000000000000000000000000000
35.suunamine>>000000000000000000000000000000000000000000000000000000000
36.lugemine>>000000000000000000000000000000000000000000000000000000000
37.kirjutamine>>000000000000000000000000000000000000000000000000000000000
38.muutuja0000=000000000000000000000000000000000000000000000000000000
39.omistamine1>>000000000000000000000000000000000000000000000000000000000
40.loogilav>>000000000000000000=00000000000000000000000000000000000000
41.aritmav>>0000==0000=======0>000=0000000000000000000000000000000000
42.tingimus000<0<0000000000000<0<<00<000=0<<<<<<<000<0000000000000<<<0
43.yksliige>>0000>>==00>>>>>>>0>000>0000000000000000000000000000000000
44.aritmav2>>0000>>0000>>>>>>>0>000>0000000000000000000000000000000000
45.aritmav3>>0000>>0000>>>>>>>0>000>0000000000000000000000000000000000
46.tegur>>0000>>>>00>>>>>>>0>000>0000000000000000000000000000000000
47.yksliige4>>0000>>>>00>>>>>>>0>000>0000000000000000000000000000000000
48.tegur5>>0000>>>>00>>>>>>>0>000>0000000000000000000000000000000000
49.loogilav6>>000000000000000000>00000000000000000000000000000000000000
50.loogilav7>>000000000000000000>00000000000000000000000000000000000000
51.loogilav8>>000000000000000000>00000000000000000000000000000000000000
52.loogilav9>>000000000000000000>00000000000000000000000000000000000000
53.loogilav10>>000000000000000000>00000000000000000000000000000000000000
54.loogilav11>>000000000000000000>00000000000000000000000000000000000000
55.masindeks>>00>0>>>>00>>>>>>>0>000>0000000000000000000000000000000000
56.masdeklaratrsion>>000000000000000000000000000000000000000000000000000000000
57.massiiv>>00=0>>>>00>>>>>>>0>000>0000000000000000000000000000000000
58.masomistamine>>000000000000000000000000000000000000000000000000000000000
59.masvaartus>>0000>>>>00>>>>>>>0>000>0000000000000000000000000000000000

The relationships of symbol #1 #:
<• #i#<• GOTO<• IF<• READ<• WRITE<• ARRAY=• `operaatorid'<• `operaator'<• `operaatorid13'<• `label'<• `omistamine'<• `iflause'<• `suunamine'<• `lugemine'<• `kirjutamine'<• `muutuja'<• `tingimus'<• `masdeklaratrsion'<• `massiiv'<• `masomistamine'

The relationships of symbol #2 ;:
<• #i#<• GOTO<• IF<• READ<• WRITE<• ARRAY=• `operaatorid'<• `operaator'<• `operaatorid13'<• `label'<• `omistamine'<• `iflause'<• `suunamine'<• `lugemine'<• `kirjutamine'<• `muutuja'<• `tingimus'<• `masdeklaratrsion'<• `massiiv'<• `masomistamine'

The relationships of symbol #3 ::
<• #i#<• GOTO<• IF<• READ<• WRITE<• ARRAY=• `operaator'<• `label'<• `omistamine'<• `iflause'<• `suunamine'<• `lugemine'<• `kirjutamine'<• `muutuja'<• `tingimus'<• `masdeklaratrsion'<• `massiiv'<• `masomistamine'

The relationships of symbol #4 #i#:
•> #•> ;•> :•> :=•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN<• [•> ]=• `masindeks'

The relationships of symbol #5 :=:
<• #i#<• #c#<• (=• `omistamine1'=• `loogilav'<• `aritmav'<• `yksliige'<• `tegur'<• `massiiv'<• `masvaartus'

The relationships of symbol #6 GOTO:
<• #i#=• `label'

The relationships of symbol #7 +:
<• #i#<• #c#<• (<• `yksliige'=• `aritmav2'<• `tegur'<• `massiiv'<• `masvaartus'

The relationships of symbol #8 -:
<• #i#<• #c#<• (<• `yksliige'=• `aritmav3'<• `tegur'<• `massiiv'<• `masvaartus'

The relationships of symbol #9 *:
<• #i#<• #c#<• (<• `tegur'=• `yksliige4'<• `massiiv'<• `masvaartus'

The relationships of symbol #10 /:
<• #i#<• #c#<• (=• `tegur'<• `massiiv'<• `masvaartus'

The relationships of symbol #11 #c#:
•> #•> ;•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #12 (:
<• #i#<• #c#<• (<• `aritmav'<• `yksliige'<• `tegur'=• `tegur5'<• `massiiv'<• `masvaartus'

The relationships of symbol #13 ):
•> #•> ;•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #14 <:
<• #i#<• #c#<• (<• `aritmav'<• `yksliige'<• `tegur'=• `loogilav6'<• `massiiv'<• `masvaartus'

The relationships of symbol #15 >:
<• #i#<• #c#<• (<• `aritmav'<• `yksliige'<• `tegur'=• `loogilav7'<• `massiiv'<• `masvaartus'

The relationships of symbol #16 <=:
<• #i#<• #c#<• (<• `aritmav'<• `yksliige'<• `tegur'=• `loogilav8'<• `massiiv'<• `masvaartus'

The relationships of symbol #17 >=:
<• #i#<• #c#<• (<• `aritmav'<• `yksliige'<• `tegur'=• `loogilav9'<• `massiiv'<• `masvaartus'

The relationships of symbol #18 /=:
<• #i#<• #c#<• (<• `aritmav'<• `yksliige'<• `tegur'=• `loogilav10'<• `massiiv'<• `masvaartus'

The relationships of symbol #19 =:
<• #i#<• #c#<• (<• `aritmav'<• `yksliige'<• `tegur'=• `loogilav11'<• `massiiv'<• `masvaartus'

The relationships of symbol #20 IF:
<• #i#<• #c#<• (=• `loogilav'<• `aritmav'<• `yksliige'<• `tegur'<• `massiiv'<• `masvaartus'

The relationships of symbol #21 THEN:
•> #i#•> GOTO•> IF•> READ•> WRITE•> ARRAY•> `operaator'•> `label'•> `omistamine'•> `iflause'•> `suunamine'•> `lugemine'•> `kirjutamine'•> `muutuja'•> `tingimus'•> `masdeklaratrsion'•> `massiiv'•> `masomistamine'

The relationships of symbol #22 READ:
=• #i#

The relationships of symbol #23 WRITE:
=• #i#

The relationships of symbol #24 [:
<• #i#<• #c#<• (<•=• `aritmav'<• `yksliige'<• `tegur'<• `massiiv'<• `masvaartus'

The relationships of symbol #25 ]:
•> #•> ;•> :=•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #26 ARRAY:
<• #i#=• `massiiv'

The relationships of symbol #27 `programm':

The relationships of symbol #28 `programm12':
=• #

The relationships of symbol #29 `operaatorid':
•> #

The relationships of symbol #30 `operaator':
•> #•> ;

The relationships of symbol #31 `operaatorid13':
=• ;

The relationships of symbol #32 `label':
•> #•> ;=• :

The relationships of symbol #33 `omistamine':
•> #•> ;

The relationships of symbol #34 `iflause':
•> #•> ;

The relationships of symbol #35 `suunamine':
•> #•> ;

The relationships of symbol #36 `lugemine':
•> #•> ;

The relationships of symbol #37 `kirjutamine':
•> #•> ;

The relationships of symbol #38 `muutuja':
=• :=

The relationships of symbol #39 `omistamine1':
•> #•> ;

The relationships of symbol #40 `loogilav':
•> #•> ;=• THEN

The relationships of symbol #41 `aritmav':
•> #•> ;=• +=• -=• )=• <=• >=• <==• >==• /==• =•> THEN=• ]

The relationships of symbol #42 `tingimus':
<• #i#<• GOTO<• IF<• READ<• WRITE<• ARRAY=• `operaator'<• `label'<• `omistamine'<• `iflause'<• `suunamine'<• `lugemine'<• `kirjutamine'<• `muutuja'<• `tingimus'<• `masdeklaratrsion'<• `massiiv'<• `masomistamine'

The relationships of symbol #43 `yksliige':
•> #•> ;•> +•> -=• *=• /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #44 `aritmav2':
•> #•> ;•> +•> -•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #45 `aritmav3':
•> #•> ;•> +•> -•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #46 `tegur':
•> #•> ;•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #47 `yksliige4':
•> #•> ;•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #48 `tegur5':
•> #•> ;•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #49 `loogilav6':
•> #•> ;•> THEN

The relationships of symbol #50 `loogilav7':
•> #•> ;•> THEN

The relationships of symbol #51 `loogilav8':
•> #•> ;•> THEN

The relationships of symbol #52 `loogilav9':
•> #•> ;•> THEN

The relationships of symbol #53 `loogilav10':
•> #•> ;•> THEN

The relationships of symbol #54 `loogilav11':
•> #•> ;•> THEN

The relationships of symbol #55 `masindeks':
•> #•> ;•> :=•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #56 `masdeklaratrsion':
•> #•> ;

The relationships of symbol #57 `massiiv':
•> #•> ;=• :=•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #58 `masomistamine':
•> #•> ;

The relationships of symbol #59 `masvaartus':
•> #•> ;•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]


Precedence varies


P2-conflict:
[ <•=• `aritmav'
The source is the production P47: `masindeks' -> [ `aritmav' ]
I'll add a new NT P55: `masindeks1' -> `aritmav' ]
I'll change the production P47: `masindeks' -> [ `masindeks1'

Leftmost-set

Symbol123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
27.programm*00000000000000000000000000*00000000000000000000000000000000
28.programm12*00000000000000000000000000000000000000000000000000000000000
29.operaatorid000*0*0000000000000*0**00*000*********000*0000000000000***00
30.operaator000*0*0000000000000*0**00*00000*******000*0000000000000***00
31.operaatorid13000*0*0000000000000*0**00*000*0*******000*0000000000000***00
32.label000*00000000000000000000000000000000000000000000000000000000
33.omistamine000*000000000000000000000000000000000*0000000000000000000000
34.iflause0000000000000000000*000000000000000000000*000000000000000000
35.suunamine00000*000000000000000000000000000000000000000000000000000000
36.lugemine000000000000000000000*00000000000000000000000000000000000000
37.kirjutamine0000000000000000000000*0000000000000000000000000000000000000
38.muutuja000*00000000000000000000000000000000000000000000000000000000
39.omistamine1000*000000**0000000000000000000000000000*0*00*0000000000*0*0
40.loogilav000*000000**0000000000000000000000000000*0*00*0000000000*0*0
41.aritmav000*000000**0000000000000000000000000000*0*00*0000000000*0*0
42.tingimus0000000000000000000*0000000000000000000000000000000000000000
43.yksliige000*000000**000000000000000000000000000000*00*0000000000*0*0
44.aritmav2000*000000**000000000000000000000000000000*00*0000000000*0*0
45.aritmav3000*000000**000000000000000000000000000000*00*0000000000*0*0
46.tegur000*000000**00000000000000000000000000000000000000000000*0*0
47.yksliige4000*000000**000000000000000000000000000000000*0000000000*0*0
48.tegur5000*000000**0000000000000000000000000000*0*00*0000000000*0*0
49.loogilav6000*000000**0000000000000000000000000000*0*00*0000000000*0*0
50.loogilav7000*000000**0000000000000000000000000000*0*00*0000000000*0*0
51.loogilav8000*000000**0000000000000000000000000000*0*00*0000000000*0*0
52.loogilav9000*000000**0000000000000000000000000000*0*00*0000000000*0*0
53.loogilav10000*000000**0000000000000000000000000000*0*00*0000000000*0*0
54.loogilav11000*000000**0000000000000000000000000000*0*00*0000000000*0*0
55.masindeks00000000000000000000000*000000000000000000000000000000000000
56.masdeklaratrsion0000000000000000000000000*0000000000000000000000000000000000
57.massiiv000*00000000000000000000000000000000000000000000000000000000
58.masomistamine000*0000000000000000000000000000000000000000000000000000*000
59.masvaartus000*0000000000000000000000000000000000000000000000000000*000
60.masindeks1000*000000**0000000000000000000000000000*0*00*0000000000*0*0

New grammar

P 1: `programm' -> `programm12' #
P 2: `programm12' -> # `operaatorid'
P 3: `operaatorid' -> `operaator'
P 4: `operaatorid' -> `operaatorid13' ; `operaatorid'
P 5: `operaatorid13' -> `operaator'
P 6: `operaator' -> `label' : `operaator'
P 7: `operaator' -> `omistamine'
P 8: `operaator' -> `iflause'
P 9: `operaator' -> `suunamine'
P10: `operaator' -> `lugemine'
P11: `operaator' -> `kirjutamine'
P12: `label' -> #i#
P13: `omistamine' -> `muutuja' := `omistamine1'
P14: `omistamine' -> `muutuja' := `loogilav'
P15: `omistamine1' -> `aritmav'
P16: `muutuja' -> #i#
P17: `iflause' -> `tingimus' `operaator'
P18: `suunamine' -> GOTO `label'
P19: `aritmav' -> `yksliige'
P20: `aritmav' -> `aritmav' + `aritmav2'
P21: `aritmav' -> `aritmav' - `aritmav3'
P22: `aritmav2' -> `yksliige'
P23: `aritmav3' -> `yksliige'
P24: `yksliige' -> `tegur'
P25: `yksliige' -> `yksliige' * `yksliige4'
P26: `yksliige' -> `yksliige' / `tegur'
P27: `yksliige4' -> `tegur'
P28: `tegur' -> #i#
P29: `tegur' -> #c#
P30: `tegur' -> ( `tegur5'
P31: `tegur5' -> `aritmav' )
P32: `loogilav' -> `aritmav' < `loogilav6'
P33: `loogilav' -> `aritmav' > `loogilav7'
P34: `loogilav' -> `aritmav' <= `loogilav8'
P35: `loogilav' -> `aritmav' >= `loogilav9'
P36: `loogilav' -> `aritmav' /= `loogilav10'
P37: `loogilav' -> `aritmav' = `loogilav11'
P38: `loogilav6' -> `aritmav'
P39: `loogilav7' -> `aritmav'
P40: `loogilav8' -> `aritmav'
P41: `loogilav9' -> `aritmav'
P42: `loogilav10' -> `aritmav'
P43: `loogilav11' -> `aritmav'
P44: `tingimus' -> IF `loogilav' THEN
P45: `lugemine' -> READ #i#
P46: `kirjutamine' -> WRITE #i#
P47: `masindeks' -> [ `masindeks1'
P48: `masdeklaratrsion' -> ARRAY `massiiv'
P49: `operaator' -> `masdeklaratrsion'
P50: `operaator' -> `masomistamine'
P51: `massiiv' -> #i# `masindeks'
P52: `masomistamine' -> `massiiv' := `omistamine1'
P53: `masvaartus' -> `massiiv'
P54: `tegur' -> `masvaartus'
P55: `masindeks1' -> `aritmav' ]

Leftmost-set

Symbol123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
27.programm*00000000000000000000000000*00000000000000000000000000000000
28.programm12*00000000000000000000000000000000000000000000000000000000000
29.operaatorid000*0*0000000000000*0**00*000*********000*0000000000000***00
30.operaator000*0*0000000000000*0**00*00000*******000*0000000000000***00
31.operaatorid13000*0*0000000000000*0**00*000*0*******000*0000000000000***00
32.label000*00000000000000000000000000000000000000000000000000000000
33.omistamine000*000000000000000000000000000000000*0000000000000000000000
34.iflause0000000000000000000*000000000000000000000*000000000000000000
35.suunamine00000*000000000000000000000000000000000000000000000000000000
36.lugemine000000000000000000000*00000000000000000000000000000000000000
37.kirjutamine0000000000000000000000*0000000000000000000000000000000000000
38.muutuja000*00000000000000000000000000000000000000000000000000000000
39.omistamine1000*000000**0000000000000000000000000000*0*00*0000000000*0*0
40.loogilav000*000000**0000000000000000000000000000*0*00*0000000000*0*0
41.aritmav000*000000**0000000000000000000000000000*0*00*0000000000*0*0
42.tingimus0000000000000000000*0000000000000000000000000000000000000000
43.yksliige000*000000**000000000000000000000000000000*00*0000000000*0*0
44.aritmav2000*000000**000000000000000000000000000000*00*0000000000*0*0
45.aritmav3000*000000**000000000000000000000000000000*00*0000000000*0*0
46.tegur000*000000**00000000000000000000000000000000000000000000*0*0
47.yksliige4000*000000**000000000000000000000000000000000*0000000000*0*0
48.tegur5000*000000**0000000000000000000000000000*0*00*0000000000*0*0
49.loogilav6000*000000**0000000000000000000000000000*0*00*0000000000*0*0
50.loogilav7000*000000**0000000000000000000000000000*0*00*0000000000*0*0
51.loogilav8000*000000**0000000000000000000000000000*0*00*0000000000*0*0
52.loogilav9000*000000**0000000000000000000000000000*0*00*0000000000*0*0
53.loogilav10000*000000**0000000000000000000000000000*0*00*0000000000*0*0
54.loogilav11000*000000**0000000000000000000000000000*0*00*0000000000*0*0
55.masindeks00000000000000000000000*000000000000000000000000000000000000
56.masdeklaratrsion0000000000000000000000000*0000000000000000000000000000000000
57.massiiv000*00000000000000000000000000000000000000000000000000000000
58.masomistamine000*0000000000000000000000000000000000000000000000000000*000
59.masvaartus000*0000000000000000000000000000000000000000000000000000*000
60.masindeks1000*000000**0000000000000000000000000000*0*00*0000000000*0*0

Rightmost-set

Symbol123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
27.programm*00000000000000000000000000000000000000000000000000000000000
28.programm12000*000000*0*00000000000*000**0******0***0******************
29.operaatorid000*000000*0*00000000000*000**0******0***0******************
30.operaator000*000000*0*00000000000*0000*0******0***0******************
31.operaatorid13000*000000*0*00000000000*0000*0******0***0******************
32.label000*00000000000000000000000000000000000000000000000000000000
33.omistamine000*000000*0*00000000000*0000000000000***0*************0*0**
34.iflause000*000000*0*00000000000*0000*0******0***0******************
35.suunamine000*000000000000000000000000000*0000000000000000000000000000
36.lugemine000*00000000000000000000000000000000000000000000000000000000
37.kirjutamine000*00000000000000000000000000000000000000000000000000000000
38.muutuja000*00000000000000000000000000000000000000000000000000000000
39.omistamine1000*000000*0*00000000000*000000000000000*0******000000*0*0**
40.loogilav000*000000*0*00000000000*000000000000000*0*************0*0**
41.aritmav000*000000*0*00000000000*00000000000000000******000000*0*0**
42.tingimus00000000000000000000*000000000000000000000000000000000000000
43.yksliige000*000000*0*00000000000*00000000000000000000***000000*0*0**
44.aritmav2000*000000*0*00000000000*00000000000000000*00***000000*0*0**
45.aritmav3000*000000*0*00000000000*00000000000000000*00***000000*0*0**
46.tegur000*000000*0*00000000000*0000000000000000000000*000000*0*0**
47.yksliige4000*000000*0*00000000000*00000000000000000000*0*000000*0*0**
48.tegur5000000000000*00000000000000000000000000000000000000000000000
49.loogilav6000*000000*0*00000000000*000000000000000*0******000000*0*0**
50.loogilav7000*000000*0*00000000000*000000000000000*0******000000*0*0**
51.loogilav8000*000000*0*00000000000*000000000000000*0******000000*0*0**
52.loogilav9000*000000*0*00000000000*000000000000000*0******000000*0*0**
53.loogilav10000*000000*0*00000000000*000000000000000*0******000000*0*0**
54.loogilav11000*000000*0*00000000000*000000000000000*0******000000*0*0**
55.masindeks000000000000000000000000*0000000000000000000000000000000000*
56.masdeklaratrsion000000000000000000000000*00000000000000000000000000000*0*00*
57.massiiv000000000000000000000000*00000000000000000000000000000*0000*
58.masomistamine000*000000*0*00000000000*0000000000000*0*0******000000*0*0**
59.masvaartus000000000000000000000000*00000000000000000000000000000*0*00*
60.masindeks1000000000000000000000000*00000000000000000000000000000000000

Leftmost & rightmost sets

`programm' leftmost set: `#' , `programm12'
`programm' rightmost set: #

`programm12' leftmost set: `#'
`programm12' rightmost set: #i# , #c# , ) , ] , operaatorid , operaator , label , omistamine , iflause , suunamine , lugemine , kirjutamine , omistamine1 , loogilav , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , loogilav6 , loogilav7 , loogilav8 , loogilav9 , loogilav10 , loogilav11 , masindeks , masdeklaratrsion , massiiv , masomistamine , masvaartus , masindeks1

`operaatorid' leftmost set: `#i#' , `GOTO' , `IF' , `READ' , `WRITE' , `ARRAY' , `operaator' , `operaatorid13' , `label' , `omistamine' , `iflause' , `suunamine' , `lugemine' , `kirjutamine' , `muutuja' , `tingimus' , `masdeklaratrsion' , `massiiv' , `masomistamine'
`operaatorid' rightmost set: #i# , #c# , ) , ] , operaatorid , operaator , label , omistamine , iflause , suunamine , lugemine , kirjutamine , omistamine1 , loogilav , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , loogilav6 , loogilav7 , loogilav8 , loogilav9 , loogilav10 , loogilav11 , masindeks , masdeklaratrsion , massiiv , masomistamine , masvaartus , masindeks1

`operaator' leftmost set: `#i#' , `GOTO' , `IF' , `READ' , `WRITE' , `ARRAY' , `label' , `omistamine' , `iflause' , `suunamine' , `lugemine' , `kirjutamine' , `muutuja' , `tingimus' , `masdeklaratrsion' , `massiiv' , `masomistamine'
`operaator' rightmost set: #i# , #c# , ) , ] , operaator , label , omistamine , iflause , suunamine , lugemine , kirjutamine , omistamine1 , loogilav , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , loogilav6 , loogilav7 , loogilav8 , loogilav9 , loogilav10 , loogilav11 , masindeks , masdeklaratrsion , massiiv , masomistamine , masvaartus , masindeks1

`operaatorid13' leftmost set: `#i#' , `GOTO' , `IF' , `READ' , `WRITE' , `ARRAY' , `operaator' , `label' , `omistamine' , `iflause' , `suunamine' , `lugemine' , `kirjutamine' , `muutuja' , `tingimus' , `masdeklaratrsion' , `massiiv' , `masomistamine'
`operaatorid13' rightmost set: #i# , #c# , ) , ] , operaator , label , omistamine , iflause , suunamine , lugemine , kirjutamine , omistamine1 , loogilav , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , loogilav6 , loogilav7 , loogilav8 , loogilav9 , loogilav10 , loogilav11 , masindeks , masdeklaratrsion , massiiv , masomistamine , masvaartus , masindeks1

`label' leftmost set: `#i#'
`label' rightmost set: #i#

`omistamine' leftmost set: `#i#' , `muutuja'
`omistamine' rightmost set: #i# , #c# , ) , ] , omistamine1 , loogilav , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , loogilav6 , loogilav7 , loogilav8 , loogilav9 , loogilav10 , loogilav11 , masindeks , massiiv , masvaartus , masindeks1

`iflause' leftmost set: `IF' , `tingimus'
`iflause' rightmost set: #i# , #c# , ) , ] , operaator , label , omistamine , iflause , suunamine , lugemine , kirjutamine , omistamine1 , loogilav , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , loogilav6 , loogilav7 , loogilav8 , loogilav9 , loogilav10 , loogilav11 , masindeks , masdeklaratrsion , massiiv , masomistamine , masvaartus , masindeks1

`suunamine' leftmost set: `GOTO'
`suunamine' rightmost set: #i# , label

`lugemine' leftmost set: `READ'
`lugemine' rightmost set: #i#

`kirjutamine' leftmost set: `WRITE'
`kirjutamine' rightmost set: #i#

`muutuja' leftmost set: `#i#'
`muutuja' rightmost set: #i#

`omistamine1' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`omistamine1' rightmost set: #i# , #c# , ) , ] , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus , masindeks1

`loogilav' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`loogilav' rightmost set: #i# , #c# , ) , ] , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , loogilav6 , loogilav7 , loogilav8 , loogilav9 , loogilav10 , loogilav11 , masindeks , massiiv , masvaartus , masindeks1

`aritmav' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`aritmav' rightmost set: #i# , #c# , ) , ] , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus , masindeks1

`tingimus' leftmost set: `IF'
`tingimus' rightmost set: THEN

`yksliige' leftmost set: `#i#' , `#c#' , `(' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`yksliige' rightmost set: #i# , #c# , ) , ] , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus , masindeks1

`aritmav2' leftmost set: `#i#' , `#c#' , `(' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`aritmav2' rightmost set: #i# , #c# , ) , ] , yksliige , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus , masindeks1

`aritmav3' leftmost set: `#i#' , `#c#' , `(' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`aritmav3' rightmost set: #i# , #c# , ) , ] , yksliige , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus , masindeks1

`tegur' leftmost set: `#i#' , `#c#' , `(' , `massiiv' , `masvaartus'
`tegur' rightmost set: #i# , #c# , ) , ] , tegur5 , masindeks , massiiv , masvaartus , masindeks1

`yksliige4' leftmost set: `#i#' , `#c#' , `(' , `tegur' , `massiiv' , `masvaartus'
`yksliige4' rightmost set: #i# , #c# , ) , ] , tegur , tegur5 , masindeks , massiiv , masvaartus , masindeks1

`tegur5' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`tegur5' rightmost set: )

`loogilav6' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`loogilav6' rightmost set: #i# , #c# , ) , ] , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus , masindeks1

`loogilav7' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`loogilav7' rightmost set: #i# , #c# , ) , ] , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus , masindeks1

`loogilav8' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`loogilav8' rightmost set: #i# , #c# , ) , ] , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus , masindeks1

`loogilav9' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`loogilav9' rightmost set: #i# , #c# , ) , ] , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus , masindeks1

`loogilav10' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`loogilav10' rightmost set: #i# , #c# , ) , ] , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus , masindeks1

`loogilav11' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`loogilav11' rightmost set: #i# , #c# , ) , ] , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus , masindeks1

`masindeks' leftmost set: `['
`masindeks' rightmost set: ] , masindeks1

`masdeklaratrsion' leftmost set: `ARRAY'
`masdeklaratrsion' rightmost set: ] , masindeks , massiiv , masindeks1

`massiiv' leftmost set: `#i#'
`massiiv' rightmost set: ] , masindeks , masindeks1

`masomistamine' leftmost set: `#i#' , `massiiv'
`masomistamine' rightmost set: #i# , #c# , ) , ] , omistamine1 , aritmav , yksliige , aritmav2 , aritmav3 , tegur , yksliige4 , tegur5 , masindeks , massiiv , masvaartus , masindeks1

`masvaartus' leftmost set: `#i#' , `massiiv'
`masvaartus' rightmost set: ] , masindeks , massiiv , masindeks1

`masindeks1' leftmost set: `#i#' , `#c#' , `(' , `aritmav' , `yksliige' , `tegur' , `massiiv' , `masvaartus'
`masindeks1' rightmost set: ]


Precedence matrix

Symbol123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
1.#000<0<0000000000000<0<<00<00=<<<<<<<<<000<0000000000000<<<00
2.;000<0<0000000000000<0<<00<00=<<<<<<<<<000<0000000000000<<<00
3.:000<0<0000000000000<0<<00<000=0<<<<<<<000<0000000000000<<<00
4.#i#>>>0>0>>>>00>>>>>>>0>00<>00000000000000000000000000000=00000
5.:=000<000000<<00000000000000000000000000==<0<00<0000000000<0<0
6.GOTO000<000000000000000000000000000=0000000000000000000000000000
7.+000<000000<<000000000000000000000000000000<=0<0000000000<0<0
8.-000<000000<<000000000000000000000000000000<0=<0000000000<0<0
9.*000<000000<<000000000000000000000000000000000<=000000000<0<0
10./000<000000<<000000000000000000000000000000000=0000000000<0<0
11.#c#>>0000>>>>00>>>>>>>0>000>00000000000000000000000000000000000
12.(000<000000<<0000000000000000000000000000<0<00<0=00000000<0<0
13.)>>0000>>>>00>>>>>>>0>000>00000000000000000000000000000000000
14.<000<000000<<0000000000000000000000000000<0<00<00=0000000<0<0
15.>000<000000<<0000000000000000000000000000<0<00<000=000000<0<0
16.<=000<000000<<0000000000000000000000000000<0<00<0000=00000<0<0
17.>=000<000000<<0000000000000000000000000000<0<00<00000=0000<0<0
18./=000<000000<<0000000000000000000000000000<0<00<000000=000<0<0
19.=000<000000<<0000000000000000000000000000<0<00<0000000=00<0<0
20.IF000<000000<<000000000000000000000000000=<0<00<0000000000<0<0
21.THEN000>0>0000000000000>0>>00>000>0>>>>>>>000>0000000000000>>>00
22.READ000=00000000000000000000000000000000000000000000000000000000
23.WRITE000=00000000000000000000000000000000000000000000000000000000
24.[000<000000<<0000000000000000000000000000<0<00<0000000000<0<=
25.]>>00>0>>>>00>>>>>>>0>000>00000000000000000000000000000000000
26.ARRAY000<0000000000000000000000000000000000000000000000000000=000
27.programm000000000000000000000000000000000000000000000000000000000000
28.programm12=00000000000000000000000000000000000000000000000000000000000
29.operaatorid>00000000000000000000000000000000000000000000000000000000000
30.operaator>>0000000000000000000000000000000000000000000000000000000000
31.operaatorid130=0000000000000000000000000000000000000000000000000000000000
32.label>>=000000000000000000000000000000000000000000000000000000000
33.omistamine>>0000000000000000000000000000000000000000000000000000000000
34.iflause>>0000000000000000000000000000000000000000000000000000000000
35.suunamine>>0000000000000000000000000000000000000000000000000000000000
36.lugemine>>0000000000000000000000000000000000000000000000000000000000
37.kirjutamine>>0000000000000000000000000000000000000000000000000000000000
38.muutuja0000=0000000000000000000000000000000000000000000000000000000
39.omistamine1>>0000000000000000000000000000000000000000000000000000000000
40.loogilav>>000000000000000000=000000000000000000000000000000000000000
41.aritmav>>0000==0000=======0>000=00000000000000000000000000000000000
42.tingimus000<0<0000000000000<0<<00<000=0<<<<<<<000<0000000000000<<<00
43.yksliige>>0000>>==00>>>>>>>0>000>00000000000000000000000000000000000
44.aritmav2>>0000>>0000>>>>>>>0>000>00000000000000000000000000000000000
45.aritmav3>>0000>>0000>>>>>>>0>000>00000000000000000000000000000000000
46.tegur>>0000>>>>00>>>>>>>0>000>00000000000000000000000000000000000
47.yksliige4>>0000>>>>00>>>>>>>0>000>00000000000000000000000000000000000
48.tegur5>>0000>>>>00>>>>>>>0>000>00000000000000000000000000000000000
49.loogilav6>>000000000000000000>000000000000000000000000000000000000000
50.loogilav7>>000000000000000000>000000000000000000000000000000000000000
51.loogilav8>>000000000000000000>000000000000000000000000000000000000000
52.loogilav9>>000000000000000000>000000000000000000000000000000000000000
53.loogilav10>>000000000000000000>000000000000000000000000000000000000000
54.loogilav11>>000000000000000000>000000000000000000000000000000000000000
55.masindeks>>00>0>>>>00>>>>>>>0>000>00000000000000000000000000000000000
56.masdeklaratrsion>>0000000000000000000000000000000000000000000000000000000000
57.massiiv>>00=0>>>>00>>>>>>>0>000>00000000000000000000000000000000000
58.masomistamine>>0000000000000000000000000000000000000000000000000000000000
59.masvaartus>>0000>>>>00>>>>>>>0>000>00000000000000000000000000000000000
60.masindeks1>>00>0>>>>00>>>>>>>0>000>00000000000000000000000000000000000

The relationships of symbol #1 #:
<• #i#<• GOTO<• IF<• READ<• WRITE<• ARRAY=• `operaatorid'<• `operaator'<• `operaatorid13'<• `label'<• `omistamine'<• `iflause'<• `suunamine'<• `lugemine'<• `kirjutamine'<• `muutuja'<• `tingimus'<• `masdeklaratrsion'<• `massiiv'<• `masomistamine'

The relationships of symbol #2 ;:
<• #i#<• GOTO<• IF<• READ<• WRITE<• ARRAY=• `operaatorid'<• `operaator'<• `operaatorid13'<• `label'<• `omistamine'<• `iflause'<• `suunamine'<• `lugemine'<• `kirjutamine'<• `muutuja'<• `tingimus'<• `masdeklaratrsion'<• `massiiv'<• `masomistamine'

The relationships of symbol #3 ::
<• #i#<• GOTO<• IF<• READ<• WRITE<• ARRAY=• `operaator'<• `label'<• `omistamine'<• `iflause'<• `suunamine'<• `lugemine'<• `kirjutamine'<• `muutuja'<• `tingimus'<• `masdeklaratrsion'<• `massiiv'<• `masomistamine'

The relationships of symbol #4 #i#:
•> #•> ;•> :•> :=•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN<• [•> ]=• `masindeks'

The relationships of symbol #5 :=:
<• #i#<• #c#<• (=• `omistamine1'=• `loogilav'<• `aritmav'<• `yksliige'<• `tegur'<• `massiiv'<• `masvaartus'

The relationships of symbol #6 GOTO:
<• #i#=• `label'

The relationships of symbol #7 +:
<• #i#<• #c#<• (<• `yksliige'=• `aritmav2'<• `tegur'<• `massiiv'<• `masvaartus'

The relationships of symbol #8 -:
<• #i#<• #c#<• (<• `yksliige'=• `aritmav3'<• `tegur'<• `massiiv'<• `masvaartus'

The relationships of symbol #9 *:
<• #i#<• #c#<• (<• `tegur'=• `yksliige4'<• `massiiv'<• `masvaartus'

The relationships of symbol #10 /:
<• #i#<• #c#<• (=• `tegur'<• `massiiv'<• `masvaartus'

The relationships of symbol #11 #c#:
•> #•> ;•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #12 (:
<• #i#<• #c#<• (<• `aritmav'<• `yksliige'<• `tegur'=• `tegur5'<• `massiiv'<• `masvaartus'

The relationships of symbol #13 ):
•> #•> ;•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #14 <:
<• #i#<• #c#<• (<• `aritmav'<• `yksliige'<• `tegur'=• `loogilav6'<• `massiiv'<• `masvaartus'

The relationships of symbol #15 >:
<• #i#<• #c#<• (<• `aritmav'<• `yksliige'<• `tegur'=• `loogilav7'<• `massiiv'<• `masvaartus'

The relationships of symbol #16 <=:
<• #i#<• #c#<• (<• `aritmav'<• `yksliige'<• `tegur'=• `loogilav8'<• `massiiv'<• `masvaartus'

The relationships of symbol #17 >=:
<• #i#<• #c#<• (<• `aritmav'<• `yksliige'<• `tegur'=• `loogilav9'<• `massiiv'<• `masvaartus'

The relationships of symbol #18 /=:
<• #i#<• #c#<• (<• `aritmav'<• `yksliige'<• `tegur'=• `loogilav10'<• `massiiv'<• `masvaartus'

The relationships of symbol #19 =:
<• #i#<• #c#<• (<• `aritmav'<• `yksliige'<• `tegur'=• `loogilav11'<• `massiiv'<• `masvaartus'

The relationships of symbol #20 IF:
<• #i#<• #c#<• (=• `loogilav'<• `aritmav'<• `yksliige'<• `tegur'<• `massiiv'<• `masvaartus'

The relationships of symbol #21 THEN:
•> #i#•> GOTO•> IF•> READ•> WRITE•> ARRAY•> `operaator'•> `label'•> `omistamine'•> `iflause'•> `suunamine'•> `lugemine'•> `kirjutamine'•> `muutuja'•> `tingimus'•> `masdeklaratrsion'•> `massiiv'•> `masomistamine'

The relationships of symbol #22 READ:
=• #i#

The relationships of symbol #23 WRITE:
=• #i#

The relationships of symbol #24 [:
<• #i#<• #c#<• (<• `aritmav'<• `yksliige'<• `tegur'<• `massiiv'<• `masvaartus'=• `masindeks1'

The relationships of symbol #25 ]:
•> #•> ;•> :=•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #26 ARRAY:
<• #i#=• `massiiv'

The relationships of symbol #27 `programm':

The relationships of symbol #28 `programm12':
=• #

The relationships of symbol #29 `operaatorid':
•> #

The relationships of symbol #30 `operaator':
•> #•> ;

The relationships of symbol #31 `operaatorid13':
=• ;

The relationships of symbol #32 `label':
•> #•> ;=• :

The relationships of symbol #33 `omistamine':
•> #•> ;

The relationships of symbol #34 `iflause':
•> #•> ;

The relationships of symbol #35 `suunamine':
•> #•> ;

The relationships of symbol #36 `lugemine':
•> #•> ;

The relationships of symbol #37 `kirjutamine':
•> #•> ;

The relationships of symbol #38 `muutuja':
=• :=

The relationships of symbol #39 `omistamine1':
•> #•> ;

The relationships of symbol #40 `loogilav':
•> #•> ;=• THEN

The relationships of symbol #41 `aritmav':
•> #•> ;=• +=• -=• )=• <=• >=• <==• >==• /==• =•> THEN=• ]

The relationships of symbol #42 `tingimus':
<• #i#<• GOTO<• IF<• READ<• WRITE<• ARRAY=• `operaator'<• `label'<• `omistamine'<• `iflause'<• `suunamine'<• `lugemine'<• `kirjutamine'<• `muutuja'<• `tingimus'<• `masdeklaratrsion'<• `massiiv'<• `masomistamine'

The relationships of symbol #43 `yksliige':
•> #•> ;•> +•> -=• *=• /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #44 `aritmav2':
•> #•> ;•> +•> -•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #45 `aritmav3':
•> #•> ;•> +•> -•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #46 `tegur':
•> #•> ;•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #47 `yksliige4':
•> #•> ;•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #48 `tegur5':
•> #•> ;•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #49 `loogilav6':
•> #•> ;•> THEN

The relationships of symbol #50 `loogilav7':
•> #•> ;•> THEN

The relationships of symbol #51 `loogilav8':
•> #•> ;•> THEN

The relationships of symbol #52 `loogilav9':
•> #•> ;•> THEN

The relationships of symbol #53 `loogilav10':
•> #•> ;•> THEN

The relationships of symbol #54 `loogilav11':
•> #•> ;•> THEN

The relationships of symbol #55 `masindeks':
•> #•> ;•> :=•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #56 `masdeklaratrsion':
•> #•> ;

The relationships of symbol #57 `massiiv':
•> #•> ;=• :=•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #58 `masomistamine':
•> #•> ;

The relationships of symbol #59 `masvaartus':
•> #•> ;•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]

The relationships of symbol #60 `masindeks1':
•> #•> ;•> :=•> +•> -•> *•> /•> )•> <•> >•> <=•> >=•> /=•> =•> THEN•> ]


Grammar TRI.grm is a precedence grammar

Grammar TRI.grm is not invertible


Left Context


Symbol123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
27.programm000000000000000000000000000000000000000000000000000000000000
28.programm12000000000000000000000000000000000000000000000000000000000000
29.operaatorid**0000000000000000000000000000000000000000000000000000000000
30.operaator***00000000000000000000000000000000000000*000000000000000000
31.operaatorid13**0000000000000000000000000000000000000000000000000000000000
32.label***00*00000000000000000000000000000000000*000000000000000000
33.omistamine***00000000000000000000000000000000000000*000000000000000000
34.iflause***00000000000000000000000000000000000000*000000000000000000
35.suunamine***00000000000000000000000000000000000000*000000000000000000
36.lugemine***00000000000000000000000000000000000000*000000000000000000
37.kirjutamine***00000000000000000000000000000000000000*000000000000000000
38.muutuja***00000000000000000000000000000000000000*000000000000000000
39.omistamine10000*0000000000000000000000000000000000000000000000000000000
40.loogilav0000*00000000000000*0000000000000000000000000000000000000000
41.aritmav0000*000000*0*******000*000000000000000000000000000000000000
42.tingimus***00000000000000000000000000000000000000*000000000000000000
43.yksliige0000*0**000*0*******000*000000000000000000000000000000000000
44.aritmav2000000*00000000000000000000000000000000000000000000000000000
45.aritmav30000000*0000000000000000000000000000000000000000000000000000
46.tegur0000*0****0*0*******000*000000000000000000000000000000000000
47.yksliige400000000*000000000000000000000000000000000000000000000000000
48.tegur500000000000*000000000000000000000000000000000000000000000000
49.loogilav60000000000000*0000000000000000000000000000000000000000000000
50.loogilav700000000000000*000000000000000000000000000000000000000000000
51.loogilav8000000000000000*00000000000000000000000000000000000000000000
52.loogilav90000000000000000*0000000000000000000000000000000000000000000
53.loogilav1000000000000000000*000000000000000000000000000000000000000000
54.loogilav11000000000000000000*00000000000000000000000000000000000000000
55.masindeks000*00000000000000000000000000000000000000000000000000000000
56.masdeklaratrsion***00000000000000000000000000000000000000*000000000000000000
57.massiiv***0*0****0*0*******000*0*000000000000000*000000000000000000
58.masomistamine***00000000000000000000000000000000000000*000000000000000000
59.masvaartus0000*0****0*0*******000*000000000000000000000000000000000000
60.masindeks100000000000000000000000*000000000000000000000000000000000000

Right Context


Symbol1234567891011121314151617181920212223242526
27.programm00000000000000000000000000
28.programm12*0000000000000000000000000
29.operaatorid*0000000000000000000000000
30.operaator**000000000000000000000000
31.operaatorid130*000000000000000000000000
32.label***00000000000000000000000
33.omistamine**000000000000000000000000
34.iflause**000000000000000000000000
35.suunamine**000000000000000000000000
36.lugemine**000000000000000000000000
37.kirjutamine**000000000000000000000000
38.muutuja0000*000000000000000000000
39.omistamine1**000000000000000000000000
40.loogilav**000000000000000000*00000
41.aritmav**0000**0000*******0*000*0
42.tingimus000*0*0000000000000*0**00*
43.yksliige**0000****00*******0*000*0
44.aritmav2**0000**0000*******0*000*0
45.aritmav3**0000**0000*******0*000*0
46.tegur**0000****00*******0*000*0
47.yksliige4**0000****00*******0*000*0
48.tegur5**0000****00*******0*000*0
49.loogilav6**000000000000000000*00000
50.loogilav7**000000000000000000*00000
51.loogilav8**000000000000000000*00000
52.loogilav9**000000000000000000*00000
53.loogilav10**000000000000000000*00000
54.loogilav11**000000000000000000*00000
55.masindeks**00*0****00*******0*000*0
56.masdeklaratrsion**000000000000000000000000
57.massiiv**00*0****00*******0*000*0
58.masomistamine**000000000000000000000000
59.masvaartus**0000****00*******0*000*0
60.masindeks1**00*0****00*******0*000*0


Independent context

`programm' left context:
`programm' right context:

`programm12' left context:
`programm12' right context: #

`operaatorid' left context: # , ;
`operaatorid' right context: #

`operaator' left context: # , ; , : , `tingimus'
`operaator' right context: # , ;

`operaatorid13' left context: # , ;
`operaatorid13' right context: ;

`label' left context: # , ; , : , GOTO , `tingimus'
`label' right context: # , ; , :

`omistamine' left context: # , ; , : , `tingimus'
`omistamine' right context: # , ;

`iflause' left context: # , ; , : , `tingimus'
`iflause' right context: # , ;

`suunamine' left context: # , ; , : , `tingimus'
`suunamine' right context: # , ;

`lugemine' left context: # , ; , : , `tingimus'
`lugemine' right context: # , ;

`kirjutamine' left context: # , ; , : , `tingimus'
`kirjutamine' right context: # , ;

`muutuja' left context: # , ; , : , `tingimus'
`muutuja' right context: :=

`omistamine1' left context: :=
`omistamine1' right context: # , ;

`loogilav' left context: := , IF
`loogilav' right context: # , ; , THEN

`aritmav' left context: := , ( , < , > , <= , >= , /= , = , IF , [
`aritmav' right context: # , ; , + , - , ) , < , > , <= , >= , /= , = , THEN , ]

`tingimus' left context: # , ; , : , `tingimus'
`tingimus' right context: #i# , GOTO , IF , READ , WRITE , ARRAY

`yksliige' left context: := , + , - , ( , < , > , <= , >= , /= , = , IF , [
`yksliige' right context: # , ; , + , - , * , / , ) , < , > , <= , >= , /= , = , THEN , ]

`aritmav2' left context: +
`aritmav2' right context: # , ; , + , - , ) , < , > , <= , >= , /= , = , THEN , ]

`aritmav3' left context: -
`aritmav3' right context: # , ; , + , - , ) , < , > , <= , >= , /= , = , THEN , ]

`tegur' left context: := , + , - , * , / , ( , < , > , <= , >= , /= , = , IF , [
`tegur' right context: # , ; , + , - , * , / , ) , < , > , <= , >= , /= , = , THEN , ]

`yksliige4' left context: *
`yksliige4' right context: # , ; , + , - , * , / , ) , < , > , <= , >= , /= , = , THEN , ]

`tegur5' left context: (
`tegur5' right context: # , ; , + , - , * , / , ) , < , > , <= , >= , /= , = , THEN , ]

`loogilav6' left context: <
`loogilav6' right context: # , ; , THEN

`loogilav7' left context: >
`loogilav7' right context: # , ; , THEN

`loogilav8' left context: <=
`loogilav8' right context: # , ; , THEN

`loogilav9' left context: >=
`loogilav9' right context: # , ; , THEN

`loogilav10' left context: /=
`loogilav10' right context: # , ; , THEN

`loogilav11' left context: =
`loogilav11' right context: # , ; , THEN

`masindeks' left context: #i#
`masindeks' right context: # , ; , := , + , - , * , / , ) , < , > , <= , >= , /= , = , THEN , ]

`masdeklaratrsion' left context: # , ; , : , `tingimus'
`masdeklaratrsion' right context: # , ;

`massiiv' left context: # , ; , : , := , + , - , * , / , ( , < , > , <= , >= , /= , = , IF , [ , ARRAY , `tingimus'
`massiiv' right context: # , ; , := , + , - , * , / , ) , < , > , <= , >= , /= , = , THEN , ]

`masomistamine' left context: # , ; , : , `tingimus'
`masomistamine' right context: # , ;

`masvaartus' left context: := , + , - , * , / , ( , < , > , <= , >= , /= , = , IF , [
`masvaartus' right context: # , ; , + , - , * , / , ) , < , > , <= , >= , /= , = , THEN , ]

`masindeks1' left context: [
`masindeks1' right context: # , ; , := , + , - , * , / , ) , < , > , <= , >= , /= , = , THEN , ]


Equivalent definitions:
`label' —> #i# & `tegur' —> #i# & `muutuja' —> #i#
`label' left context: # , ; , : , GOTO , `tingimus'
`label' right context: # , ; , :

`tegur' left context: := , + , - , * , / , ( , < , > , <= , >= , /= , = , IF , [
`tegur' right context: # , ; , + , - , * , / , ) , < , > , <= , >= , /= , = , THEN , ]

`muutuja' left context: # , ; , : , `tingimus'
`muutuja' right context: :=


The left context of `label' and `tegur' is different
The right context of `label' and `muutuja' is different
The left context of `tegur' and `muutuja' is different

Equivalent definitions:
`operaatorid' —> `operaator' & `operaatorid13' —> `operaator'
`operaatorid' left context: # , ;
`operaatorid' right context: #

`operaatorid13' left context: # , ;
`operaatorid13' right context: ;


The right context of `operaatorid' and `operaatorid13' is different

Equivalent definitions:
`loogilav6' —> `aritmav' & `omistamine1' —> `aritmav' & `loogilav9' —> `aritmav' & `loogilav8' —> `aritmav' & `loogilav7' —> `aritmav' & `loogilav11' —> `aritmav' & `loogilav10' —> `aritmav'
`loogilav6' left context: <
`loogilav6' right context: # , ; , THEN

`omistamine1' left context: :=
`omistamine1' right context: # , ;

`loogilav9' left context: >=
`loogilav9' right context: # , ; , THEN

`loogilav8' left context: <=
`loogilav8' right context: # , ; , THEN

`loogilav7' left context: >
`loogilav7' right context: # , ; , THEN

`loogilav11' left context: =
`loogilav11' right context: # , ; , THEN

`loogilav10' left context: /=
`loogilav10' right context: # , ; , THEN


The left context of `loogilav6' and `omistamine1' is different
The left context of `loogilav6' and `loogilav9' is different
The left context of `loogilav6' and `loogilav8' is different
The left context of `loogilav6' and `loogilav7' is different
The left context of `loogilav6' and `loogilav11' is different
The left context of `loogilav6' and `loogilav10' is different
The left context of `omistamine1' and `loogilav9' is different
The left context of `omistamine1' and `loogilav8' is different
The left context of `omistamine1' and `loogilav7' is different
The left context of `omistamine1' and `loogilav11' is different
The left context of `omistamine1' and `loogilav10' is different
The left context of `loogilav9' and `loogilav8' is different
The left context of `loogilav9' and `loogilav7' is different
The left context of `loogilav9' and `loogilav11' is different
The left context of `loogilav9' and `loogilav10' is different
The left context of `loogilav8' and `loogilav7' is different
The left context of `loogilav8' and `loogilav11' is different
The left context of `loogilav8' and `loogilav10' is different
The left context of `loogilav7' and `loogilav11' is different
The left context of `loogilav7' and `loogilav10' is different
The left context of `loogilav11' and `loogilav10' is different

Equivalent definitions:
`aritmav' —> `yksliige' & `aritmav3' —> `yksliige' & `aritmav2' —> `yksliige'
`aritmav' left context: := , ( , < , > , <= , >= , /= , = , IF , [
`aritmav' right context: # , ; , + , - , ) , < , > , <= , >= , /= , = , THEN , ]

`aritmav3' left context: -
`aritmav3' right context: # , ; , + , - , ) , < , > , <= , >= , /= , = , THEN , ]

`aritmav2' left context: +
`aritmav2' right context: # , ; , + , - , ) , < , > , <= , >= , /= , = , THEN , ]


The left context of `aritmav' and `aritmav3' is different
The left context of `aritmav' and `aritmav2' is different
The left context of `aritmav3' and `aritmav2' is different

Equivalent definitions:
`yksliige' —> `tegur' & `yksliige4' —> `tegur'
`yksliige' left context: := , + , - , ( , < , > , <= , >= , /= , = , IF , [
`yksliige' right context: # , ; , + , - , * , / , ) , < , > , <= , >= , /= , = , THEN , ]

`yksliige4' left context: *
`yksliige4' right context: # , ; , + , - , * , / , ) , < , > , <= , >= , /= , = , THEN , ]


The left context of `yksliige' and `yksliige4' is different

Grammar TRI.grm is BRC(1|1)-reducible


Semantics

Semantics file is TRI.sem
#i#=1
#c#=2
P12=15 $P12: `label' -> #i#
P13=10 $P13: `omistamine' -> `muutuja' := `omistamine1'
P18=16 $P18: `suunamine' -> GOTO `label'
P20=14 $P20: `aritmav' -> `aritmav' + `aritmav2'
P21=13 $P21: `aritmav' -> `aritmav' - `aritmav3'
P25=12 $P25: `yksliige' -> `yksliige' * `yksliige4'
P26=11 $P26: `yksliige' -> `yksliige' / `tegur'
P32=3 $P32: `loogilav' -> `aritmav' < `loogilav6'
P33=4 $P33: `loogilav' -> `aritmav' > `loogilav7'
P34=5 $P34: `loogilav' -> `aritmav' <= `loogilav8'
P35=6 $P35: `loogilav' -> `aritmav' >= `loogilav9'
P36=7 $P36: `loogilav' -> `aritmav' /= `loogilav10'
P37=8 $P37: `loogilav' -> `aritmav' = `loogilav11'
P44=18 $P44: `tingimus' -> IF `loogilav' THEN
P45=20 $P45: `lugemine' -> READ #i#
P46=21 $P46: `kirjutamine' -> WRITE #i#
P48=22 $P48: `masdeklaratrsion' -> ARRAY `massiiv'
P52=23 $P52: `masomistamine' -> `massiiv' := `omistamine1'
P53=24 $P53: `masvaartus' -> `massiiv'

Result tables


FileSize
TRI.prm28
TRI.pm3721
TRI.t1220
TRI.tt540
TRI.ht3180
TRI.sm332
TRI.v3416
TRI.lc3721
TRI.rc3721

Look at result tables

Finish of CONSTRUCTOR Sun Dec 12 23:10:34 2010