Start of TRI Parser for a Program P14.tri at Sun Oct 05 17:22:57 2003


Scanner started

Input program:

# IF ( 1 * 2 * 3 ) = ( 2 * 3 ) THEN F := 7 * ( 3 + ( 2 * 5 ) ) ; F := 100 #

Scanned program:

1 20 12 11 52 9 11 53 9 11 54 13 19 12 11 53 9 11 54 13 21 4 55 5 11 56 9 12 11 54 7 12 11 53 9 11 57 13 13 2 4 55 5 11 58 1

Identifiers:F;

Constants:1, 2, 3, 7, 5, 100;

Scanner ended

Parser started


Stack & Word # <•IF( #c# 1 * #c# 2 * #c# 3 ) = ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #

Stack & Word # <•IF <•(#c# 1 * #c# 2 * #c# 3 ) = ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #

Stack & Word # <•IF <•( <•#c#* #c# 2 * #c# 3 ) = ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•IF <•( <•tegur* #c# 2 * #c# 3 ) = ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•IF <•( <•yksliige* #c# 2 * #c# 3 ) = ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•IF <•( <•yksliige =•*#c# 2 * #c# 3 ) = ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #

Stack & Word # <•IF <•( <•yksliige =•* <•#c#* #c# 3 ) = ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•IF <•( <•yksliige =•* <•tegur* #c# 3 ) = ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•IF <•( <•yksliige =•* =•yksliige4* #c# 3 ) = ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•IF <•( <•yksliige* #c# 3 ) = ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #

Parsing tree

yksliige
12


Stack & Word # <•IF <•( <•yksliige =•*#c# 3 ) = ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #

Stack & Word # <•IF <•( <•yksliige =•* <•#c#) = ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•IF <•( <•yksliige =•* <•tegur) = ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•IF <•( <•yksliige =•* =•yksliige4) = ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•IF <•( <•yksliige) = ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #

Parsing tree

yksliige
yksliige
12
3



Stack & Word # <•IF <•( <•aritmav) = ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•IF <•( <•aritmav =•)= ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•IF <•( =•tegur5= ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•IF <•tegur= ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•IF <•yksliige= ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•IF <•aritmav= ( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•IF <•aritmav =•=( #c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #

Stack & Word # <•IF <•aritmav =•= <•(#c# 2 * #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #

Stack & Word # <•IF <•aritmav =•= <•( <•#c#* #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•IF <•aritmav =•= <•( <•tegur* #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•IF <•aritmav =•= <•( <•yksliige* #c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•IF <•aritmav =•= <•( <•yksliige =•*#c# 3 ) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #

Stack & Word # <•IF <•aritmav =•= <•( <•yksliige =•* <•#c#) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•IF <•aritmav =•= <•( <•yksliige =•* <•tegur) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•IF <•aritmav =•= <•( <•yksliige =•* =•yksliige4) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•IF <•aritmav =•= <•( <•yksliige) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #

Parsing tree

yksliige
23



Stack & Word # <•IF <•aritmav =•= <•( <•aritmav) THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•IF <•aritmav =•= <•( <•aritmav =•)THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•IF <•aritmav =•= <•( =•tegur5THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•IF <•aritmav =•= <•tegurTHEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•IF <•aritmav =•= <•yksliigeTHEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•IF <•aritmav =•= <•aritmavTHEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•IF <•aritmav =•= =•loogilav11THEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•IF =•loogilavTHEN #i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #

Parsing tree

loogilav
yksliige
yksliige
12
3
yksliige
23


Stack & Word # <•IF =•loogilav =•THEN#i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•tingimus#i# F := #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #

Parsing tree

tingimus
loogilav
yksliige
yksliige
12
3
yksliige
23


Stack & Word # <•tingimus <•#i#:= #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•tingimus <•muutuja:= #c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•tingimus <•muutuja =•:=#c# 7 * ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #

Stack & Word # <•tingimus <•muutuja =•:= <•#c#* ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•tingimus <•muutuja =•:= <•tegur* ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•tingimus <•muutuja =•:= <•yksliige* ( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•*( #c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #

Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•(#c# 3 + ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #

Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•#c#+ ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•tegur+ ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•yksliige+ ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav+ ( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+( #c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #

Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•(#c# 2 * #c# 5 ) ) ; #i# F := #c# 100 #

Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•#c#* #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•tegur* #c# 5 ) ) ; #i# F := #c# 100 #



Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•yksliige* #c# 5 ) ) ; #i# F := #c# 100 #


Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•yksliige =•*#c# 5 ) ) ; #i# F := #c# 100 #

Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•yksliige =•* <•#c#) ) ; #i# F := #c# 100 #


Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•yksliige =•* <•tegur) ) ; #i# F := #c# 100 #



Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•yksliige =•* =•yksliige4) ) ; #i# F := #c# 100 #



Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•yksliige) ) ; #i# F := #c# 100 #

Parsing tree

yksliige
25



Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•aritmav) ) ; #i# F := #c# 100 #


Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•aritmav =•)) ; #i# F := #c# 100 #


Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( =•tegur5) ; #i# F := #c# 100 #



Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•tegur) ; #i# F := #c# 100 #



Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•yksliige) ; #i# F := #c# 100 #



Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ =•aritmav2) ; #i# F := #c# 100 #



Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav) ; #i# F := #c# 100 #

Parsing tree

aritmav
3yksliige
25


Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•); #i# F := #c# 100 #


Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•( =•tegur5; #i# F := #c# 100 #



Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* <•tegur; #i# F := #c# 100 #



Stack & Word # <•tingimus <•muutuja =•:= <•yksliige =•* =•yksliige4; #i# F := #c# 100 #



Stack & Word # <•tingimus <•muutuja =•:= <•yksliige; #i# F := #c# 100 #

Parsing tree

yksliige
7aritmav
3yksliige
25



Stack & Word # <•tingimus <•muutuja =•:= <•aritmav; #i# F := #c# 100 #



Stack & Word # <•tingimus <•muutuja =•:= =•omistamine1; #i# F := #c# 100 #



Stack & Word # <•tingimus <•omistamine; #i# F := #c# 100 #

Parsing tree

omistamine
Fyksliige
7aritmav
3yksliige
25



Stack & Word # <•tingimus =•operaator; #i# F := #c# 100 #



Stack & Word # <•iflause; #i# F := #c# 100 #



Stack & Word # <•operaator; #i# F := #c# 100 #



Stack & Word # <•operaatorid13; #i# F := #c# 100 #


Stack & Word # <•operaatorid13 =•;#i# F := #c# 100 #

Stack & Word # <•operaatorid13 =•; <•#i#:= #c# 100 #


Stack & Word # <•operaatorid13 =•; <•muutuja:= #c# 100 #


Stack & Word # <•operaatorid13 =•; <•muutuja =•:=#c# 100 #

Stack & Word # <•operaatorid13 =•; <•muutuja =•:= <•#c##


Stack & Word # <•operaatorid13 =•; <•muutuja =•:= <•tegur#



Stack & Word # <•operaatorid13 =•; <•muutuja =•:= <•yksliige#



Stack & Word # <•operaatorid13 =•; <•muutuja =•:= <•aritmav#



Stack & Word # <•operaatorid13 =•; <•muutuja =•:= =•omistamine1#



Stack & Word # <•operaatorid13 =•; <•omistamine#

Parsing tree

omistamine
F100



Stack & Word # <•operaatorid13 =•; <•operaator#



Stack & Word # <•operaatorid13 =•; =•operaatorid#



Stack & Word # =•operaatorid#



Stack & Word programm12#

the parsing is completed

Parsing tree

programm12
tingimus
loogilav
yksliige
yksliige
12
3
yksliige
23
omistamine
Fyksliige
7aritmav
3yksliige
25
omistamine
F100

Table of constants

c1=1c2=2c3=3c4=7c5=5c6=100

Table of identifiers

i1=F

Result tables


FileSize
P14.prm28
P14.t1200
P14.it4
P14.kt24
P14.pt828

Parser ended at Sun Oct 05 17:22:58 2003