Start of Tri Parser for a Program P9.tri at Sun Jun 03 15:36:53 2001


Scanner started

Input program:

# READ a ; y := ( a * 3 ) + ( a * 2 ) ; WRITE y #

Scanned program:

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

Identifiers:a, y;

Constants:3, 2;

Scanner ended

Parser started


Stack & Word # <•READ#i# a ; #i# y := ( #i# a * #c# 3 ) + ( #i# a * #c# 2 ) ; WRITE #i# y #

Stack & Word # <•READ =•#i#; #i# y := ( #i# a * #c# 3 ) + ( #i# a * #c# 2 ) ; WRITE #i# y #


Stack & Word # <•lugemine; #i# y := ( #i# a * #c# 3 ) + ( #i# a * #c# 2 ) ; WRITE #i# y #

Parsing tree

lugemine
a



Stack & Word # <•operaator; #i# y := ( #i# a * #c# 3 ) + ( #i# a * #c# 2 ) ; WRITE #i# y #



Stack & Word # <•operaatorid13; #i# y := ( #i# a * #c# 3 ) + ( #i# a * #c# 2 ) ; WRITE #i# y #


Stack & Word # <•operaatorid13 =•;#i# y := ( #i# a * #c# 3 ) + ( #i# a * #c# 2 ) ; WRITE #i# y #

Stack & Word # <•operaatorid13 =•; <•#i#:= ( #i# a * #c# 3 ) + ( #i# a * #c# 2 ) ; WRITE #i# y #


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


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

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

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


Stack & Word # <•operaatorid13 =•; <•muutuja =•:= <•( <•tegur* #c# 3 ) + ( #i# a * #c# 2 ) ; WRITE #i# y #



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


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

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


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



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



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

Parsing tree

yksliige
a3



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


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


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



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



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



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


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

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

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


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



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


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

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


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



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



Stack & Word # <•operaatorid13 =•; <•muutuja =•:= <•aritmav =•+ <•( <•yksliige) ; WRITE #i# y #

Parsing tree

yksliige
a2



Stack & Word # <•operaatorid13 =•; <•muutuja =•:= <•aritmav =•+ <•( <•aritmav) ; WRITE #i# y #


Stack & Word # <•operaatorid13 =•; <•muutuja =•:= <•aritmav =•+ <•( <•aritmav =•); WRITE #i# y #


Stack & Word # <•operaatorid13 =•; <•muutuja =•:= <•aritmav =•+ <•( =•tegur5; WRITE #i# y #



Stack & Word # <•operaatorid13 =•; <•muutuja =•:= <•aritmav =•+ <•tegur; WRITE #i# y #



Stack & Word # <•operaatorid13 =•; <•muutuja =•:= <•aritmav =•+ <•yksliige; WRITE #i# y #



Stack & Word # <•operaatorid13 =•; <•muutuja =•:= <•aritmav =•+ =•aritmav2; WRITE #i# y #



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

Parsing tree

aritmav
yksliige
a3
yksliige
a2



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



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

Parsing tree

omistamine
yaritmav
yksliige
a3
yksliige
a2



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



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


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

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

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


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

Parsing tree

kirjutamine
y



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



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



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



Stack & Word # =•operaatorid#



Stack & Word programm12#

the parsing is completed

Parsing tree

programm12
lugemine
a
omistamine
yaritmav
yksliige
a3
yksliige
a2
kirjutamine
y

Table of constants

c1=3c2=2

Table of identifiers

i1=ai2=y

Result tables


FileSize
P9.prm28
P9.t1140
P9.it8
P9.kt8
P9.pt504

Parser ended at Sun Jun 03 15:36:53 2001