You are on page 1of 115

I0 = { <S'> ::= .

<S>
goto ( I0 , <S> ) = I1 = { <S'> ::= <S>.
goto ( I0 , "program" ) = I2 = { <S> ::= "program" ."id" ";" <D> "begin" <L> "end" "."
goto ( I2 , "id" ) = I3 = { <S> ::= "program" "id" .";" <D> "begin" <L> "end" "."
goto ( I3 , ";" ) = I4 = { <S> ::= "program" "id" ";" .<D> "begin" <L> "end" "."
goto ( I4 , <D> ) = I5 = { <S> ::= "program" "id" ";" <D> ."begin" <L> "end" "."
goto ( I4 , "begin" ) = I6 = { <S> ::= "program" "id" ";" "begin" .<L> "end" "."
goto ( I4 , "var" ) = I7 = { <D> ::= "var" .<V>
goto ( I5 , "begin" ) = I8 = { <S> ::= "program" "id" ";" <D> "begin" .<L> "end" "."
goto ( I6 , <L> ) = I9 = { <S> ::= "program" "id" ";" "begin" <L> ."end" "."
goto ( I6 , <C> ) = I10 = { <L> ::= <C> .";"
goto ( I6 , <A> ) = I11 = { <C> ::= <A>.
goto ( I6 , <R> ) = I12 = { <C> ::= <R>.
goto ( I6 , <W> ) = I13 = { <C> ::= <W> .
goto ( I6 , <M> ) = I14 = { <C> ::= <M>.
goto ( I6 , <N> ) = I15 = { <C> ::= <N> .
goto ( I6 , <P> ) = I16 = { <C> ::= <P>.
goto ( I6 , "id" ) = I17 = { <A> ::= "id" .":=" <E>
goto ( I6 , "read" ) = I18 = { <R> ::= "read" ."("<I>")"
goto ( I6 , "readln" ) = I19 = { <R> ::= "readln".
goto ( I6 , "write" ) = I20 = { <W> ::= "write" ."("<F>")"
goto ( I6 , "writeln" ) = I21 = { <W> ::= "writeln".
goto ( I6 , "begin" ) = I22 = { <M> ::= "begin" .<L> "end"
goto ( I6 , "if" ) = I23 = { <N> ::= "if" .<B> "then" <C>
goto ( I6 , "while" ) = I24 = { <P> ::= "while" .<B> "do" <C>
goto ( I7 , <V> ) = I25 = { <D> ::= "var" <V>.
goto ( I7 , <I> ) = I26 = { <V> ::= <I> .":" <T> ";" <V>
goto ( I7 , "id" ) = I27 = { <I> ::= "id".
goto ( I8 , <L> ) = I28 = { <S> ::= "program" "id" ";" <D> "begin" <L> ."end" "."
goto ( I8 , <C> ) = I10
goto ( I8 , <A> ) = I11
goto ( I8 , <R> ) = I12
goto ( I8 , <W> ) = I13
goto ( I8 , <M> ) = I14
goto ( I8 , <N> ) = I15
goto ( I8 , <P> ) = I16
goto ( I8 , "id" ) = I17
goto ( I8 , "read" ) = I18
goto ( I8 , "readln" ) = I19
goto ( I8 , "write" ) = I20
goto ( I8 , "writeln" ) = I21
goto ( I8 , "begin" ) = I22
goto ( I8 , "if" ) = I23
goto ( I8 , "while" ) = I24
goto ( I9 , "end" ) = I29 = { <S> ::= "program" "id" ";" "begin" <L> "end" ."."
goto ( I10 , ";" ) = I30 = { <L> ::= <C> ";".
goto ( I17 , ":=" ) = I31 = { <A> ::= "id" ":=" .<E>
goto ( I18 , "(" ) = I32 = { <R> ::= "read" "(" .<I> ")"
goto ( I19 , "(" ) = I33 = { <R> ::= "readln" "(" .<I> ")"
goto ( I20 , "(" ) = I34 = { <W> ::= "write" "(" .<F> ")"
goto ( I21 , "(" ) = I35 = { <W> ::= "writeln" "(" .<F> ")"
goto ( I22 , <L> ) = I36 = { <M> ::= "begin" <L> ."end"
goto ( I22 , <C> ) = I10
goto ( I22 , <A> ) = I11
goto ( I22 , <R> ) = I12
goto ( I22 , <W> ) = I13
goto ( I22 , <M> ) = I14
goto ( I22 , <N> ) = I15
goto ( I22 , <P> ) = I16
goto ( I22 , "id" ) = I17
goto ( I22 , "read" ) = I18
goto ( I22 , "readln" ) = I19
goto ( I22 , "write" ) = I20
goto ( I22 , "writeln" ) = I21
goto ( I22 , "begin" ) = I22
goto ( I22 , "if" ) = I23
goto ( I22 , "while" ) = I24
goto ( I23 , <B> ) = I37 = { <N> ::= "if" <B> ."then" <C>
goto ( I23 , <E> ) = I38 = { <B> ::= <E> ."<" <E>
goto ( I23 , "id" ) = I39 = { <B> ::= "id".
goto ( I23 , <X> ) = I40 = { <E> ::= <X>.
goto ( I23 , <Y> ) = I41 = { <X> ::= <Y>.
goto ( I23 , <U> ) = I42 = { <Y> ::= <U>.
goto ( I23 , <Z> ) = I43 = { <U> ::= <Z> ."/" <U>
goto ( I23 , <num> ) = I44 = { <Z> ::= "num".
goto ( I23 , "(" ) = I45 = { <Z> ::= "(" .<E> ")"
goto ( I23 , "-" ) = I46 = { <Z> ::= "-" .<E>
goto ( I24 , <B> ) = I47 = { <P> ::= "while" <B> ."do" <C>
goto ( I24 , <E> ) = I38
goto ( I24 , "id" ) = I39
goto ( I24 , <X> ) = I40
goto ( I24 , <Y> ) = I41
goto ( I24 , <U> ) = I42
goto ( I24 , <Z> ) = I43
goto ( I24 , <num> ) = I44
goto ( I24 , "(" ) = I45
goto ( I24 , "-" ) = I46
goto ( I26 , ":" ) = I48 = { <V> ::= <I> ":" .<T> ";" <V>
goto ( I27 , "," ) = I49 = { <I> ::= "id" "," .<I>
goto ( I28 , "end" ) = I50 = { <S> ::= "program" "id" ";" <D> "begin" <L> "end" ."."
goto ( I29 , "." ) = I51 = { <S> ::= "program" "id" ";" "begin" <L> "end" ".".
goto ( I30 , <L> ) = I52 = { <L> ::= <C> ";" <L> .
goto ( I30 , <C> ) = I10
goto ( I30 , <A> ) = I11
goto ( I30 , <R> ) = I12
goto ( I30 , <W> ) = I13
goto ( I30 , <M> ) = I14
goto ( I30 , <N> ) = I15
goto ( I30 , <P> ) = I16
goto ( I30 , "id" ) = I17
goto ( I30 , "read" ) = I18
goto ( I30 , "readln" ) = I19
goto ( I30 , "write" ) = I20
goto ( I30 , "writeln" ) = I21
goto ( I30 , "begin" ) = I22
goto ( I30 , "if" ) = I23
goto ( I30 , "while" ) = I24
goto ( I31 , <E> ) = I53 = { <A> ::= "id" ":=" <E>.
goto ( I31 , <X> ) = I40
goto ( I31 , <Y> ) = I41
goto ( I31 , <U> ) = I42
goto ( I31 , <Z> ) = I43
goto ( I31 , "id" ) = I54 = { <Z> ::= "id".
goto ( I31 , <num> ) = I44
goto ( I31 , "(" ) = I45
goto ( I31 , "-" ) = I46
goto ( I32 , <I> ) = I55 = { <R> ::= "read" "(" <I> .")"
goto ( I32 , "id" ) = I27
goto ( I33 , <I> ) = I56 = { <R> ::= "readln" "(" <I> .")"
goto ( I33 , "id" ) = I27
goto ( I34 , <F> ) = I57 = { <W> ::= "write" "(" <F> .")"
goto ( I34 , <G> ) = I58 = { <F> ::= <G>.
goto ( I34 , "str" ) = I59 = { <G> ::= "str".
goto ( I34 , <E> ) = I60 = { <G> ::= <E>.
goto ( I34 , <X> ) = I40
goto ( I34 , <Y> ) = I41
goto ( I34 , <U> ) = I42
goto ( I34 , <Z> ) = I43
goto ( I34 , "id" ) = I54
goto ( I34 , <num> ) = I44
goto ( I34 , "(" ) = I45
goto ( I34 , "-" ) = I46
goto ( I35 , <F> ) = I61 = { <W> ::= "writeln" "(" <F> .")"
goto ( I35 , <G> ) = I58
goto ( I35 , "str" ) = I59
goto ( I35 , <E> ) = I60
goto ( I35 , <X> ) = I40
goto ( I35 , <Y> ) = I41
goto ( I35 , <U> ) = I42
goto ( I35 , <Z> ) = I43
goto ( I35 , "id" ) = I54
goto ( I35 , <num> ) = I44
goto ( I35 , "(" ) = I45
goto ( I35 , "-" ) = I46
goto ( I36 , "end" ) = I62 = { <M> ::= "begin" <L> "end".
goto ( I37 , "then" ) = I63 = { <N> ::= "if" <B> "then" .<C>
goto ( I38 , "<" ) = I64 = { <B> ::= <E> "<" .<E>
goto ( I38 , "<=" ) = I65 = { <B> ::= <E> "<=" .<E>
goto ( I38 , ">" ) = I66 = { <B> ::= <E> ">" .<E>
goto ( I38 , ">=" ) = I67 = { <B> ::= <E> ">=" .<E>
goto ( I38 , "=" ) = I68 = { <B> ::= <E> "=" .<E>
goto ( I38 , "<>" ) = I69 = { <B> ::= <E> "<>" .<E>
goto ( I38 , "+" ) = I70 = { <E> ::= <E> "+" .<X>
goto ( I40 , "-" ) = I71 = { <X> ::= <X> "–" .<Y>
goto ( I41 , "*" ) = I72 = { <Y> ::= <Y> "*" .<U>
goto ( I43 , "/" ) = I73 = { <U> ::= <Z> "/" .<U>
goto ( I45 , <E> ) = I74 = { <Z> ::= "(" <E> .")"
goto ( I45 , <X> ) = I40
goto ( I45 , <Y> ) = I41
goto ( I45 , <U> ) = I42
goto ( I45 , <Z> ) = I43
goto ( I45 , "id" ) = I54
goto ( I45 , <num> ) = I44
goto ( I45 , "(" ) = I45
goto ( I45 , "-" ) = I46
goto ( I46 , <E> ) = I75 = { <P> ::= "-" <E>.
goto ( I46 , <X> ) = I40
goto ( I46 , <Y> ) = I41
goto ( I46 , <U> ) = I42
goto ( I46 , <Z> ) = I43
goto ( I46 , "id" ) = I54
goto ( I46 , <num> ) = I44
goto ( I46 , "(" ) = I45
goto ( I46 , "-" ) = I46
goto ( I47 , "do" ) = I76 = { <P> ::= "while" <B> "do" .<C>
goto ( I48 , <T> ) = I77 = { <V> ::= <I> ":" <T> .";" <V>
goto ( I48 , "integer" ) = I78 = { <T> ::= "integer".
goto ( I48 , "boolean" ) = I79 = { <T> ::= "Boolean".
goto ( I49 , <I> ) = I80 { <I> ::= "id" "," <I>.
goto ( I49 , "id" ) = I27
goto ( I50 , "." ) = I81 = { <S> ::= "program" "id" ";" <D> "begin" <L> "end" ".".
goto ( I53 , "+" ) = I67
goto ( I55 , ")" ) = I82 = { <R> ::= "read" "(" <I> ")".
goto ( I56 , ")" ) = I83 = { <R> ::= "readln" "(" <I> ")".
goto ( I57 , ")" ) = I84 = { <W> ::= "write" "(" <F> ")".
goto ( I58 , "," ) = I85 = { <F> ::= <G> "," .<F>
goto ( I60 , "+" ) = I67
goto ( I61 , ")" ) = I86 = { <W> ::= "writeln" "(" <F> ")".
goto ( I63 , <C> ) = I87 = { <N> ::= "if" <B> "then" <C>.
goto ( I63 , <A> ) = I11
goto ( I63 , <R> ) = I12
goto ( I63 , <W> ) = I13
goto ( I63 , <M> ) = I14
goto ( I63 , <N> ) = I15
goto ( I63 , <P> ) = I16
goto ( I63 , "id" ) = I17
goto ( I63 , "read" ) = I18
goto ( I63 , "readln" ) = I19
goto ( I63 , "write" ) = I20
goto ( I63 , "writeln" ) = I21
goto ( I63 , "begin" ) = I22
goto ( I63 , "if" ) = I23
goto ( I63 , "while" ) = I24
goto ( I64 , <E> ) = I88 = { <B> ::= <E> "<" <E>.
goto ( I65 , <X> ) = I40
goto ( I65 , <Y> ) = I41
goto ( I65 , <U> ) = I42
goto ( I65 , <Z> ) = I43
goto ( I65 , "id" ) = I54
goto ( I65 , <num> ) = I44
goto ( I65 , "(" ) = I45
goto ( I65 , "-" ) = I46
goto ( I65 , <E> ) = I89 = { <B> ::= <E> "<=" <E>.
goto ( I65 , <X> ) = I40
goto ( I65 , <Y> ) = I41
goto ( I65 , <U> ) = I42
goto ( I65 , <Z> ) = I43
goto ( I65 , "id" ) = I54
goto ( I65 , <num> ) = I44
goto ( I65 , "(" ) = I45
goto ( I65 , "-" ) = I46
goto ( I66 , <E> ) = I90 = { <B> ::= <E> ">" <E>.
goto ( I66 , <X> ) = I40
goto ( I66 , <Y> ) = I41
goto ( I66 , <U> ) = I42
goto ( I66 , <Z> ) = I43
goto ( I66 , "id" ) = I54
goto ( I66 , <num> ) = I44
goto ( I66 , "(" ) = I45
goto ( I66 , "-" ) = I46
goto ( I67 , <E> ) = I91 = { <B> ::= <E> ">=" <E>.
goto ( I67 , <X> ) = I40
goto ( I67 , <Y> ) = I41
goto ( I67 , <U> ) = I42
goto ( I67 , <Z> ) = I43
goto ( I67 , "id" ) = I54
goto ( I67 , <num> ) = I44
goto ( I67 , "(" ) = I45
goto ( I67 , "-" ) = I46
goto ( I68 , <E> ) = I92 = { <B> ::= <E> "=" <E>.
goto ( I68 , <X> ) = I40
goto ( I68 , <Y> ) = I41
goto ( I68 , <U> ) = I42
goto ( I68 , <Z> ) = I43
goto ( I68 , "id" ) = I54
goto ( I68 , <num> ) = I44
goto ( I68 , "(" ) = I45
goto ( I68 , "-" ) = I46
goto ( I69 , <E> ) = I93 = { <B> ::= <E> "<>" <E>.
goto ( I69 , <X> ) = I40
goto ( I69 , <Y> ) = I41
goto ( I69 , <U> ) = I42
goto ( I69 , <Z> ) = I43
goto ( I69 , "id" ) = I54
goto ( I69 , <num> ) = I44
goto ( I69 , "(" ) = I45
goto ( I69 , "-" ) = I46
goto ( I70 , <X> ) = I94 = { <E> ::= <E> "+" <X>.
goto ( I70 , <Y> ) = I41
goto ( I70 , <U> ) = I42
goto ( I70 , <Z> ) = I43
goto ( I70 , "id" ) = I54
goto ( I70 , <num> ) = I44
goto ( I70 , "(" ) = I45
goto ( I70 , "-" ) = I46
goto ( I71 , <Y> ) = I95 = { <X> ::= <X> "–" <Y> .
goto ( I71 , <U> ) = I42
goto ( I71 , <Z> ) = I43
goto ( I71 , "id" ) = I54
goto ( I71 , <num> ) = I44
goto ( I71 , "(" ) = I45
goto ( I71 , "-" ) = I46
goto ( I72 , <U> ) = I96 = { <Y> ::= <Y> "*" <U>.
goto ( I72 , <Z> ) = I43
goto ( I72 , "id" ) = I54
goto ( I72 , <num> ) = I44
goto ( I72 , "(" ) = I45
goto ( I72 , "-" ) = I46
goto ( I73 , <U> ) = I97 = { <U> ::= <Z> "/" <U>.
goto ( I73 , <Z> ) = I43
goto ( I73 , "id" ) = I54
goto ( I73 , <num> ) = I44
goto ( I73 , "(" ) = I45
goto ( I73 , "-" ) = I46
goto ( I74 , ")" ) = I98 = { <Z> ::= "(" <E> ")".
goto ( I74 , "+" ) = I67
goto ( I75 , "+" ) = I67
goto ( I76 , <C> ) = I99 = { <P> ::= "while" <B> "do" <C>.
goto ( I76 , <A> ) = I11
goto ( I76 , <R> ) = I12
goto ( I76 , <W> ) = I13
goto ( I76 , <M> ) = I14
goto ( I76 , <N> ) = I15
goto ( I76 , <P> ) = I16
goto ( I76 , "id" ) = I17
goto ( I76 , "read" ) = I18
goto ( I76 , "readln" ) = I19
goto ( I76 , "write" ) = I20
goto ( I76 , "writeln" ) = I21
goto ( I76 , "begin" ) = I22
goto ( I76 , "if" ) = I23
goto ( I76 , "while" ) = I24
goto ( I77 , ";" ) = I100 = { <V> ::= <I> ":" <T> ";" .<V>
goto ( I85 , <F> ) = I101 = { <F> ::= <G> "," <F> .
goto ( I86 , <G> ) = I58
goto ( I86 , "str" ) = I59
goto ( I86 , <E> ) = I60
goto ( I86 , <X> ) = I40
goto ( I86 , <Y> ) = I41
goto ( I86 , <U> ) = I42
goto ( I86 , <Z> ) = I43
goto ( I86 , "id" ) = I54
goto ( I86 , <num> ) = I44
goto ( I86 , "(" ) = I45
goto ( I86 , "-" ) = I46
goto ( I87 , "else" ) = I102 = { <N> ::= "if" <B> "then" <C> "else" .<C>
goto ( I88 , "+" ) = I67
goto ( I89 , "+" ) = I67
goto ( I90 , "+" ) = I67
goto ( I91 , "+" ) = I67
goto ( I92 , "+" ) = I67
goto ( I93 , "+" ) = I67
goto ( I94 , "-" ) = I68
goto ( I95 , "*" ) = I69
goto ( I100 , <V> ) = I103 = { <V> ::= <I> ":" <T> ";" <V>.
goto ( I100 , <I> ) = I26
goto ( I100 , "id" ) = I27
goto ( I102 , <C> ) = I104 = { <N> ::= "if" <B> "then" <C> "else" <C>.
goto ( I102 , <A> ) = I11
goto ( I102 , <R> ) = I12
goto ( I102 , <W> ) = I13
goto ( I102 , <M> ) = I14
goto ( I102 , <N> ) = I15
goto ( I102 , <P> ) = I16
goto ( I102 , "id" ) = I17
goto ( I102 , "read" ) = I18
goto ( I102 , "readln" ) = I19
goto ( I102 , "write" ) = I20
goto ( I102 , "writeln" ) = I21
goto ( I102 , "begin" ) = I22
goto ( I102 , "if" ) = I23
goto ( I102 , "while" ) = I24
<S> ::= ."program" "id" ";" <D> "begin" <L> "end" "."
}
<S> ::= "program" ."id" ";" "begin" <L> "end" "."
<S> ::= "program" "id" .";" "begin" <L> "end" "."
<S> ::= "program" "id" ";" ."begin" <L> "end" "."
}
<L> ::= .<C> ";"
<V> ::= .<I>":" <T> ";" <V>
<L> ::= .<C> ";"
}
<L> ::= <C> .";" <L>
}
}
}
}
}
}
}
}
<R> ::= "readln" ."(" <I> ")"
}
<W> ::= "writeln" ."(" <F> ")"
<L> ::= .<C> ";"
<N> ::= "if" .<B> "then" <C> "else" <C>
<B> ::= .<E> "<" <E>
}
<V> ::= <I> .":" <T>";"
<I> ::= "id" ."," <I>
}
}
<L> ::= <C> ";" .<L>
<E> ::= .<E> "+" <X>
<I> ::= ."id"
<I> ::= ."id"
<F> ::= .<G>
<F> ::= .<G>
}

<N> ::= "if" <B> ."then" <C> "else" <C>


<B> ::= <E> ."<=" <E>
<Z> ::= "id".
<X> ::= <X> ."–" <Y>
<Y> ::= <Y> ."*" <U>
}
<U> ::= <Z>.
}
<E> ::= .<E> "+" <X>
<E> ::= .<E> "+" <X>
}
<V> ::= <I> ":" .<T> ";"
<I> ::= ."id"
}
}
}

<E> ::= <E> ."+" <X>

<F> ::= <G> ."," <F>

<E> ::= <E> ."+" <X>


}

}
<N> ::= "if" <B> "then" .<C> "else" <C>
<E> ::= .<E> "+" <X>
<E> ::= .<E> "+" <X>
<E> ::= .<E> "+" <X>
<E> ::= .<E> "+" <X>
<E> ::= .<E> "+" <X>
<E> ::= .<E> "+" <X>
<X> ::= .<X> "–" <Y>
<Y> ::= .<Y> "*" <U>
<U> ::= .<Z> "/" <U>
<U> ::= .<Z> "/" <U>
<E> ::= <E> ."+" <X>

<E> ::= <E> ."+" <X>


<C> ::= .<A>
<V> ::= <I> ":" <T> .";"
}
}
}

}
}
}
<F> ::= .<G>

}
<N> ::= "if" <B> "then" <C> ."else" <C>

<E> ::= <E> ."+" <X>

<E> ::= <E> ."+" <X>


<E> ::= <E> ."+" <X>

<E> ::= <E> ."+" <X>

<E> ::= <E> ."+" <X>

<E> ::= <E> ."+" <X>

<X> ::= <X> ."–" <Y>


<Y> ::= <Y> ."*" <U>

}
<V> ::= <I> ":" <T> ";" .
}

<C> ::= .<A>

}
<S> ::= ."program" "id" ";" "begin" <L> "end" "."

}
}
<D> ::= ."var" <V>

<L> ::= .<C> ";" <L>


<V> ::= .<I> ":" <T>";"
<L> ::= .<C> ";" <L>

}
<L> ::= .<C> ";" <L>
<B> ::= .<E> "<" <E>
<B> ::= .<E> "<=" <E>

}
}
<L> ::= .<C> ";"
<E> ::= .<X>
<I> ::= ."id" "," <I> ;
<I> ::= ."id" "," <I> ;
<F> ::= .<G> "," <F>
<F> ::= .<G> "," <F>

}
<B> ::= <E> .">" <E>
}
}
}

<E> ::= .<X>


<E> ::= .<X>
<T> ::= ."integer"
<I> ::= ."id" "," <I>

}
<C> ::= .<A>
<E> ::= .<X>
<E> ::= .<X>
<E> ::= .<X>
<E> ::= .<X>
<E> ::= .<X>
<E> ::= .<X>
<X> ::= .<Y>
<Y> ::= .<U>
<U> ::= .<Z>
<U> ::= .<Z>
}

}
<C> ::= .<R>
}

<F> ::= .<G> "," <F>

}
}

}
}
<V> ::= .<I> ":" <T> ";" <V>

<C> ::= .<R>


}

<C> ::= .<A>


<I> ::= ."id"
<C> ::= .<A>

<C> ::= .<A>


<B> ::= .<E> "<=" <E>
<B> ::= .<E> ">" <E>
<L> ::= .<C> ";" <L>
<X> ::= .<X> "–" <Y>
}
}
<G> ::= ."str"
<G> ::= ."str"

<B> ::= <E> .">=" <E>

<X> ::= .<X> "–" <Y>


<X> ::= .<X> "–" <Y>
<T> ::= ."Boolean"
}
<C> ::= .<R>
<X> ::= .<X> "–" <Y>
<X> ::= .<X> "–" <Y>
<X> ::= .<X> "–" <Y>
<X> ::= .<X> "–" <Y>
<X> ::= .<X> "–" <Y>
<X> ::= .<X> "–" <Y>
<Y> ::= .<Y> "*" <U>
<U> ::= .<Z> "/" <U>
<Z> ::= ."id"
<Z> ::= ."id"
<C> ::= .<W>

<G> ::= ."str"


<V> ::= .<I> ":" <T> ";"

<C> ::= .<W>


<C> ::= .<R>
<I> ::= ."id" "," <I>
<C> ::= .<R>

<C> ::= .<R>


<B> ::= .<E> ">" <E>
<B> ::= .<E> ">=" <E>
<C> ::= .<A>
<X> ::= .<Y>

<G> ::= .<E>


<G> ::= .<E>

<B> ::= <E> ."=" <E>

<X> ::= .<Y>


<X> ::= .<Y>
}
<C> ::= .<W>
<X> ::= .<Y>
<X> ::= .<Y>
<X> ::= .<Y>
<X> ::= .<Y>
<X> ::= .<Y>
<X> ::= .<Y>
<Y> ::= .<U>
<U> ::= .<Z>
<Z> ::= ."num"
<Z> ::= ."num"
<C> ::= .<M>

<G> ::= .<E>


<I> ::= ."id"

<C> ::= .<M>


<C> ::= .<W>
}
<C> ::= .<W>

<C> ::= .<W>


<B> ::= .<E> ">=" <E>
<B> ::= .<E> "=" <E>
<C> ::= .<R>
<Y> ::= .<Y> "*" <U>

<E> ::= .<E> "+" <X>


<E> ::= .<E> "+" <X>

<B> ::= <E> ."<>" <E>

<Y> ::= .<Y> "*" <U>


<Y> ::= .<Y> "*" <U>
<C> ::= .<M>
<Y> ::= .<Y> "*" <U>
<Y> ::= .<Y> "*" <U>
<Y> ::= .<Y> "*" <U>
<Y> ::= .<Y> "*" <U>
<Y> ::= .<Y> "*" <U>
<Y> ::= .<Y> "*" <U>
<U> ::= .<Z> "/" <U>
<Z> ::= ."id"
<Z> ::= ."(" <E> ")"
<Z> ::= ."(" <E> ")"
<C> ::= .<N>

<E> ::= .<E> "+" <X>


<I> ::= ."id" "," <I>

<C> ::= .<N>


<C> ::= .<M>

<C> ::= .<M>

<C> ::= .<M>


<B> ::= .<E> "=" <E>
<B> ::= .<E> "<>" <E>
<C> ::= .<W>
<Y> ::= .<U>

<E> ::= .<X>


<E> ::= .<X>

<E> ::= <E> ."+" <X>

<Y> ::= .<U>


<Y> ::= .<U>
<C> ::= .<N>
<Y> ::= .<U>
<Y> ::= .<U>
<Y> ::= .<U>
<Y> ::= .<U>
<Y> ::= .<U>
<Y> ::= .<U>
<U> ::= .<Z>
<Z> ::= ."num"
<Z> ::= ."-" <E>
<Z> ::= ."-" <E>
<C> ::= .<P>

<E> ::= .<X>


}

<C> ::= .<P>


<C> ::= .<N>

<C> ::= .<N>

<C> ::= .<N>


<B> ::= .<E> "<>" <E>
<B> ::= ."id"
<C> ::= .<M>
<U> ::= .<Z> "/" <U>

<X> ::= .<X> "–" <Y>


<X> ::= .<X> "–" <Y>

<U> ::= .<Z> "/" <U>


<U> ::= .<Z> "/" <U>
<C> ::= .<P>
<U> ::= .<Z> "/" <U>
<U> ::= .<Z> "/" <U>
<U> ::= .<Z> "/" <U>
<U> ::= .<Z> "/" <U>
<U> ::= .<Z> "/" <U>
<U> ::= .<Z> "/" <U>
<Z> ::= ."id"
<Z> ::= ."(" <E> ")"
}
}
<A> ::= ."id" ":=" <E>

<X> ::= .<X> "–" <Y>


<A> ::= ."id" ":=" <E>
<C> ::= .<P>

<C> ::= .<P>

<C> ::= .<P>


<B> ::= ."id"
<E> ::= .<E> "+" <X>
<C> ::= .<N>
<U> ::= .<Z>

<X> ::= .<Y>


<X> ::= .<Y>

<U> ::= .<Z>


<U> ::= .<Z>
<A> ::= ."id" ":=" <E>
<U> ::= .<Z>
<U> ::= .<Z>
<U> ::= .<Z>
<U> ::= .<Z>
<U> ::= .<Z>
<U> ::= .<Z>
<Z> ::= ."num"
<Z> ::= ."-" <E>
<R> ::= ."read" "(" <I> ")"

<X> ::= .<Y>


<R> ::= ."read" "(" <I> ")"
<A> ::= ."id" ":=" <E>

<A> ::= ."id" ":=" <E>

<A> ::= ."id" ":=" <E>


<E> ::= .<E> "+" <X>
<E> ::= .<X>
<C> ::= .<P>
<Z> ::= ."id"

<Y> ::= .<Y> "*" <U>


<Y> ::= .<Y> "*" <U>

<Z> ::= ."id"


<Z> ::= ."id"
<R> ::= ."read" "(" <I> ")"
<Z> ::= ."id"
<Z> ::= ."id"
<Z> ::= ."id"
<Z> ::= ."id"
<Z> ::= ."id"
<Z> ::= ."id"
<Z> ::= ."(" <E> ")"
}
<R> ::= ."readln"

<Y> ::= .<Y> "*" <U>


<R> ::= ."readln"
<R> ::= ."read" "(" <I> ")"

<R> ::= ."read" "(" <I> ")"

<R> ::= ."read" "(" <I> ")"


<E> ::= .<X>
<X> ::= .<X> "–" <Y>
<A> ::= ."id" ":=" <E>
<Z> ::= ."num"

<Y> ::= .<U>


<Y> ::= .<U>

<Z> ::= ."num"


<Z> ::= ."num"
<R> ::= ."readln"
<Z> ::= ."num"
<Z> ::= ."num"
<Z> ::= ."num"
<Z> ::= ."num"
<Z> ::= ."num"
<Z> ::= ."num"
<Z> ::= ."-" <E>
<R> ::= ."readln" "(" <I> ")"

<Y> ::= .<U>


<R> ::= ."readln" "("<I>")"
<R> ::= ."readln"

<R> ::= ."readln"

<R> ::= ."readln"


<X> ::= .<X> "–" <Y>
<X> ::= .<Y>
<R> ::= ."read" "(" <I> ")"
<Z> ::= ."(" <E> ")"

<U> ::= .<Z> "/" <U>


<U> ::= .<Z> "/" <U>

<Z> ::= ."(" <E> ")"


<Z> ::= ."(" <E> ")"
<R> ::= ."readln" "("<I>")"
<Z> ::= ."(" <E> ")"
<Z> ::= ."(" <E> ")"
<Z> ::= ."(" <E> ")"
<Z> ::= ."(" <E> ")"
<Z> ::= ."(" <E> ")"
<Z> ::= ."(" <E> ")"
}
<W> ::= ."write" "(" <F> ")"

<U> ::= .<Z> "/" <U>


<W> ::= ."write" "(" <F> ")"
<R> ::= ."readln" "(" <I> ")"

<R> ::= ."readln" "(" <I> ")"

<R> ::= ."readln" "("<I>")"


<X> ::= .<Y>
<Y> ::= .<Y> "*" <U>
<R> ::= ."readln"
<Z> ::= ."-" <E>

<U> ::= .<Z>


<U> ::= .<Z>

<Z> ::= ."-" <E>


<Z> ::= ."-" <E>
<W> ::= ."write" "(" <F> ")"
<Z> ::= ."-" <E>
<Z> ::= ."-" <E>
<Z> ::= ."-" <E>
<Z> ::= ."-" <E>
<Z> ::= ."-" <E>
<Z> ::= ."-" <E>
<W> ::= ."writeln"

<U> ::= .<Z>


<W> ::= ."writeln"
<W> ::= ."write" "(" <F> ")"

<W> ::= ."write" "(" <F> ")"

<W> ::= ."write" "(" <F> ")"


<Y> ::= .<Y> "*" <U>
<Y> ::= .<U>
<R> ::= ."readln" "(" <I> ")"
}

<Z> ::= ."id"


<Z> ::= ."id"

}
}
<W> ::= ."writeln"
}
}
}
}
}
}
<W> ::= ."writeln" "(" "<F>" )"

<Z> ::= ."id"


<W> ::= ."writeln" "(" "<F>" )"
<W> ::= ."writeln"

<W> ::= ."writeln"

<W> ::= ."writeln"


<Y> ::= .<U>
<U> ::= .<Z> "/" <U>
<W> ::= ."write" "(" <F> ")"

<Z> ::= ."num"


<Z> ::= ."num"
<W> ::= ."writeln" "(" "<F>" )"
<M> ::= ."begin" <L> "end"

<Z> ::= ."num"


<M> ::= ."begin" <L> "end"
<W> ::= ."writeln" "(" "<F>" )"

<W> ::= ."writeln" "(" "<F>" )"

<W> ::= ."writeln" "(" "<F>" )"


<U> ::= .<Z> "/" <U>
<U> ::= .<Z>
<W> ::= ."writeln"

<Z> ::= ."(" <E> ")"


<Z> ::= ."(" <E> ")"
<M> ::= ."begin" <L> "end"
<N> ::= ."if" <B> "then" <C>

<Z> ::= ."(" <E> ")"


<N> ::= ."if" <B> "then" <C>
<M> ::= ."begin" <L> "end"

<M> ::= ."begin" <L> "end"

<M> ::= ."begin" <L> "end"


<U> ::= .<Z>
<Z> ::= ."id"
<W> ::= ."writeln" "(" "<F>" )"

<Z> ::= ."-" <E>


<Z> ::= ."-" <E>
<N> ::= ."if" <B> "then" <C>
<N> ::= ."if" <B> "then" <C> "else" <C>

<Z> ::= ."-" <E>


<N> ::= ."if" <B> "then" <C> "else" <C>
<N> ::= ."if" <B> "then" <C>

<N> ::= ."if" <B> "then" <C>

<N> ::= ."if" <B> "then" <C>


<Z> ::= ."id"
<Z> ::= ."num"
<M> ::= ."begin" <L> "end"

}
}
<N> ::= ."if" <B> "then" <C> "else" <C>
<P> ::= ."while"<B> "do" <C>

}
<P> ::= ."while"<B> "do" <C>
<N> ::= ."if" <B> "then" <C> "else" <C>

<N> ::= ."if" <B> "then" <C> "else" <C>

<N> ::= ."if" <B> "then" <C> "else" <C>


<Z> ::= ."num"
<Z> ::= ."(" <E> ")"
<N> ::= ."if" <B> "then" <C>
<P> ::= ."while"<B> "do" <C>
}
}
<P> ::= ."while"<B> "do" <C>

<P> ::= ."while"<B> "do" <C>

<P> ::= ."while"<B> "do" <C>


<Z> ::= ."(" <E> ")"
<Z> ::= ."-" <E>
<N> ::= ."if" <B> "then" <C> "else" <C>
}
}

}
<Z> ::= ."-" <E>
}
<P> ::= ."while"<B> "do" <C>
}
}
<S'> ::= <S>
<S> ::= "program" "id" ";" <D> "begin" <L> "end" "."
<S> ::= "program" "id" ";" "begin" <L> "end" "."
<D> ::= "var" <V>
<V> ::= <I> ":" <T> ";" <V>
<V> ::= <I> ":" <T> ";"
<T> ::= "integer"
<T> ::= "Boolean"
<I> ::= "id"
<I> ::= "id" "," <I>
<L> ::= <C> ";"
<L> ::= <C> ";" <L>
<C> ::= <A>
<C> ::= <R>
<C> ::= <W>
<C> ::= <M>
<C> ::= <N>
<C> ::= <P>
<A> ::= "id" ":=" <E>
<R> ::= "read" "(" <I> ")"
<R> ::= "readln"
<R> ::= "readln" "(" <I> ")"
<W> ::= "write" "(" <F> ")"
<W> ::= "writeln"
<W> ::= "writeln" "(" <F> ")"
<F> ::= <G>
<F> ::= <G> "," <F>
<G> ::= "str"
<G> ::= <E>
<M> ::= "begin" <L> "end"
<N> ::= "if" <B> "then" <C>
<N> ::= "if" <B> "then" <C> "else" <C>
<P> ::= "while"<B> "do" <C>
<E> ::= <E> "+" <X>
<E> ::= <X>
<X> ::= <X> "–" <Y>
<X> ::= <Y>
<Y> ::= <Y> "*" <U>
<Y> ::= <U>
<U> ::= <Z> "/" <U>
<U> ::= <Z>
<Z> ::= "id"
<Z> ::= "num"
<Z> ::= "(" <E> ")"
<Z> ::= "-" <E>
<B> ::= <E> "<" <E>
<B> ::= <E> "<=" <E>
<B> ::= <E> ">" <E>
<B> ::= <E> ">=" <E>
<B> ::= <E> "=" <E>
<B> ::= <E> "<>" <E>
<B> ::= "id"

You might also like