Start of Tri Parser for a Program P7.tri at Wed Apr 23 12:38:22 2003


Scanner started

Input program:

# READ a ; READ b ; READ c ; F := a * ( b + ( 2 * c ) ) / 2 ; WRITE F #

Scanned program:

1 22 4 52 2 22 4 53 2 22 4 54 2 4 55 5 4 52 9 12 4 53 7 12 11 56 9 4 54 13 13 10 11 56 2 23 4 55 1

Identifiers:a, b, c, F;

Constants:2;

Scanner ended

Parser started


Stack & Word # <•READ#i# a ; READ #i# b ; READ #i# c ; #i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #

Stack & Word # <•READ =•#i#; READ #i# b ; READ #i# c ; #i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #


Stack & Word # <•lugemine; READ #i# b ; READ #i# c ; #i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #

Parsing tree

lugemine
a



Stack & Word # <•operaator; READ #i# b ; READ #i# c ; #i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #



Stack & Word # <•operaatorid13; READ #i# b ; READ #i# c ; #i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #


Stack & Word # <•operaatorid13 =•;READ #i# b ; READ #i# c ; #i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #

Stack & Word # <•operaatorid13 =•; <•READ#i# b ; READ #i# c ; #i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #

Stack & Word # <•operaatorid13 =•; <•READ =•#i#; READ #i# c ; #i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•lugemine; READ #i# c ; #i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #

Parsing tree

lugemine
b



Stack & Word # <•operaatorid13 =•; <•operaator; READ #i# c ; #i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #



Stack & Word # <•operaatorid13 =•; <•operaatorid13; READ #i# c ; #i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•;READ #i# c ; #i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #

Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•READ#i# c ; #i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #

Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•READ =•#i#; #i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•lugemine; #i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #

Parsing tree

lugemine
c



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaator; #i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13; #i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•;#i# F := #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #

Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•#i#:= #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja:= #i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:=#i# a * ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #

Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•#i#* ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•tegur* ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige* ( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•*( #i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #

Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•(#i# b + ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #

Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•#i#+ ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•tegur+ ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•yksliige+ ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav+ ( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+( #c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #

Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•(#c# 2 * #i# c ) ) / #c# 2 ; WRITE #i# F #

Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•#c#* #i# c ) ) / #c# 2 ; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•tegur* #i# c ) ) / #c# 2 ; WRITE #i# F #



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•yksliige* #i# c ) ) / #c# 2 ; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•yksliige =•*#i# c ) ) / #c# 2 ; WRITE #i# F #

Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•yksliige =•* <•#i#) ) / #c# 2 ; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•yksliige =•* <•tegur) ) / #c# 2 ; WRITE #i# F #



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•yksliige =•* =•yksliige4) ) / #c# 2 ; WRITE #i# F #



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•yksliige) ) / #c# 2 ; WRITE #i# F #

Parsing tree

yksliige
2c



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•aritmav) ) / #c# 2 ; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( <•aritmav =•)) / #c# 2 ; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•( =•tegur5) / #c# 2 ; WRITE #i# F #



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•tegur) / #c# 2 ; WRITE #i# F #



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ <•yksliige) / #c# 2 ; WRITE #i# F #



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•+ =•aritmav2) / #c# 2 ; WRITE #i# F #



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav) / #c# 2 ; WRITE #i# F #

Parsing tree

aritmav
byksliige
2c


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( <•aritmav =•)/ #c# 2 ; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•( =•tegur5/ #c# 2 ; WRITE #i# F #



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* <•tegur/ #c# 2 ; WRITE #i# F #



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•* =•yksliige4/ #c# 2 ; WRITE #i# F #



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige/ #c# 2 ; WRITE #i# F #

Parsing tree

yksliige
aaritmav
byksliige
2c


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•/#c# 2 ; WRITE #i# F #

Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•/ <•#c#; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•muutuja =•:= <•yksliige =•/ =•tegur; WRITE #i# F #



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

Parsing tree

yksliige
yksliige
aaritmav
byksliige
2c
2



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



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



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•omistamine; WRITE #i# F #

Parsing tree

omistamine
Fyksliige
yksliige
aaritmav
byksliige
2c
2



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•operaator; WRITE #i# F #



Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13; WRITE #i# F #


Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•;WRITE #i# F #

Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•WRITE#i# F #

Stack & Word # <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•operaatorid13 =•; <•WRITE =•#i##


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

Parsing tree

kirjutamine
F



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



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



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



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



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



Stack & Word # =•operaatorid#



Stack & Word wprogramm12#

the parsing is completed

Parsing tree

programm12
lugemine
a
lugemine
b
lugemine
c
omistamine
Fyksliige
yksliige
aaritmav
byksliige
2c
2
kirjutamine
F

Table of constants

c1=2

Table of identifiers

i1=ai2=bi3=ci4=F

Result tables


FileSize
P7.prm28
P7.t1160
P7.it16
P7.kt4
P7.pt720

Parser ended at Wed Apr 23 12:38:22 2003