Académique Documents
Professionnel Documents
Culture Documents
02/10/19
Ms. Alex Andrade
15/10/2019 1
Análise Sintática
15/10/2019 2
Analise Sintática
• O analisador descendente: Em cada passo, um lado
esquerdo da produção é substituído por um lado
direito ( expansão )
S E + F
15/10/2019 3
Analise Sintática Descendente
• Dos analisadores sintáticos descendentes, destacamos os
tipos:
– Os descendentes recursivos;
– E os LL(1).
15/10/2019 5
Análise Sintática Descendente Recursiva
15/10/2019 6
Análise Sintática Descendente Recursiva
• Exemplo: aplicar ASDR com a entrada w=cad e a
gramática:
– S -> cAd
– A -> ab | a
15/10/2019 8
Analise Sintática Descendente
• Durante a análise descendente, as variáveis First e Follow
nos ajudam a escolher qual produção deve ser usada, com
base no próximo símbolo de entrada;
• Dada uma entrada ‘a’ e o não-terminal ‘A’, deve-se saber
qual das produções alternativas A -> B1|B2|B3|... deriva a
sequência que inicia por ‘a’;
• Calculasse então os conjuntos de primeiros símbolos
produzidos por todas as alternativas na gramática, ou seja,
os conjuntos FIRST;
• Durante a recuperação de erros, os valores retornados por
FOLLOW podem ser usados como tokens de sincronismo.
15/10/2019 9
Analise Sintática Descendente
• First( X ) - é um conjunto de terminais que iniciam
as sentenças derivadas a partir de X .
15/10/2019 10
Analise Sintática Descendente
• First(X) - é um conjunto de terminais que iniciam as
sentenças derivadas a partir de X.
15/10/2019 11
Analise Sintática Descendente
• Lembrando que, os símbolos terminais serão representados
por:
15/10/2019 12
Analise Sintática Descendente
Ex - A gramática
Terminais: + - * ( ) número
15/10/2019 13
Analise Sintática Descendente
Ex - A gramática
declaração if-decl | outra
if-decl if (exp) declaração else-parte
else-parte else declaração | Є
exp 0 | 1
15/10/2019 14
Analise Sintática Descendente
Ex - A gramática
declaração if-decl | outra
if-decl if (exp) declaração else-parte
else-parte else declaração | Є
exp 0 | 1
Terminais: + - * ( ) número
15/10/2019 16
Analise Sintática Descendente
podemos escrever novamente
15/10/2019 17
Analise Sintática Descendente
15/10/2019 18
Analise Sintática Descendente
15/10/2019 19
Analise Sintática Descendente
15/10/2019 20
Analise Sintática Descendente
15/10/2019 21
Analise Sintática Descendente
Regra Passada 1 Passada 2 Passada 3
exp exp soma termo
exp termo First(exp)={( , número}
soma + First(soma)={+}
soma - First(soma)={+, - }
termo termo mult fator
termo fator First(termo)={(, número}
mult * First(mult)={*}
fator ( exp ) First(fator)={( }
15/10/2019 22
Analise Sintática Descendente
• Follow(X) é um conjunto de terminais que podem aparecer
imediatamente à direita de X.
Ex - Considere a gramática
S ABc|BAc
A a|aA
B b|bB
15/10/2019 23
Analise Sintática Descendente
Obs -
X é um não-terminal .
Є não faz parte de Follow(X).
Daremos em seguida uma definição mais formal.
15/10/2019 24
Analise Sintática Descendente
Definição:
• Dado um não-terminal X, o conjunto Follow(X), composto
por terminais e possivelmente o $, é definido como segue:
15/10/2019 25
Analise Sintática Descendente
Observe o item (II) da definição
15/10/2019 26
Analise Sintática Descendente
Observe o item (III) da definição
Follow(Y) Follow(X)
15/10/2019 27
Analise Sintática Descendente
Observe de maneira idêntica
15/10/2019 28
Analise Sintática Descendente
Observe que:
15/10/2019 29
Analise Sintática Descendente
Ex - A gramática
15/10/2019 30
Analise Sintática Descendente
A gramática do Ex 1, podemos escrever novamente:
15/10/2019 32
Analise Sintática Descendente
Um “pequeno” roteiro para achar os Follow(X)
(*) No caso de uma nova passagem refaça apenas a definição (III), pois os
First(X) estão fixos
15/10/2019 33
Analise Sintática Descendente
Ex 1- Achar os Follow( ) , da gramática
Terminais: + - * ( ) número
15/10/2019 34
Analise Sintática Descendente
podemos reescrever First(soma)= {+, - }
First(mult) = { * }
First(fator) = { ( , número }
(1) exp exp soma termo First(termo)={ ( , número }
(2) exp termo First(exp)={( , número}
(3) soma +
Inicialisar todos Follow(X) com vazio
(4) soma - Follow(exp)={ $ , . . .}
(5) termo termo mult fator
A regras 3,4,7 e 9 não tem não-
(6) termo fator terminais à direita, nenhuma
(7) mult * informação.
Por II da definição
(8) fator ( exp ) First(soma) Follow(exp)
(9) fator número First(termo) Follow(soma) logo
Follow(exp)={ $, +, -, . . .}
Follow(soma)={( , número, . . .}
15/10/2019 35
Analise Sintática Descendente
First(soma)= {+, - }
(1) exp exp soma termo First(mult) = { * }
First(fator) = { ( , número }
(2) exp termo First(termo)={ ( , número }
(3) soma + First(exp)={( , número}
(4) soma - Por III da definição
(5) termo termo mult fator Follow(exp) Follow(termo)
Follow(termo)={ $, +, -, . . .}
(6) termo fator
(7) mult * A regra 2, tem mesma informação
(8) fator ( exp ) anterior.
A regra 5, temos
por II da definição
(9) fator número First(mult) Follow(termo)
First(fator) Follow(mult)
Follow(termo)={ $, + , - , *, . . . }
Follow(mult)={ ( , número, . . .}
15/10/2019 36
Analise Sintática Descendente
(1) exp exp soma termo First(soma)= {+, - }
(2) exp termo First(mult) = { * }
First(fator) = { ( , número }
(3) soma + First(termo)={ ( , número }
First(exp)={( , número}
(4) soma -
(5) termo termo mult fator
Já temos
(6) termo fator Follow(termo)={ $, + , - , *, . . . }
(7) mult *
A regra 5, temos por III da definição
(8) fator ( exp ) Follow(termo) Follow(fator)
Follow(fator)={ $, +, - , * , . . . }
(9) fator número
A regra 6, tem a mesma informação
15/10/2019 37
Analise Sintática Descendente
(1) exp exp soma termo First(soma)= {+, - }
(2) exp termo First(mult) = { * }
First(fator) = { ( , número }
(3) soma + First(termo)={ ( , número }
(4) soma - First(exp)={( , número}
15/10/2019 38
Analise Sintática Descendente
(1) exp exp soma termo Por enquanto temos
(2) exp termo Follow(exp)={ $, +, -, ). . .}
Follow(soma)={( , número, . . .}
(3) soma + Follow(termo)={ $, + , - , *, . . . }
Follow(mult)={ ( , número, . . .}
(4) soma -
(5) termo termo mult fator Na segunda passada :
(6) termo fator
A regra 1, temos por III
(7) mult * Follow(exp) Follow(termo)
(8) fator ( exp ) Follow(termo)={ $, +, -, *, ). . .}
15/10/2019 39
Analise Sintática Descendente
(1) exp exp soma termo
Na terceira passada, não teremos
(2) exp termo mais alterações, fim do algoritmo.
(3) soma + Follow(exp)={ $, +, -, ) }
(4) soma - Follow(soma)={( , número }
Follow(termo)={ $, + , - , *, ) }
(5) termo termo mult fator Follow(mult)={ ( , número }
(6) termo fator Follow(fator)={ $, +, -, *, ) }
(7) mult *
(8) fator ( exp )
(9) fator número
15/10/2019 40
Analise Sintática Descendente
First(soma)= {+, - } First(mult) = { * } First(fator) = { ( , número }
First(termo)={ ( , número } First(exp)={( , número}
exp termo
termo termo mult fator Follow(termo)={$, +, - , * }
Follow(mult)={( , número} Follow(fator)={$, +, - , * , ) }
Follow(fator)={$, + , -, * }
termo fator
fator ( exp ) Follow(exp)={$. + , - , )}
15/10/2019 41
Analise Sintática Descendente
S →XYZ
X→aXb | ε
Y →cYZcX | d
Z →eZYe | f
15/10/2019 42
Analise Sintática Descendente
15/10/2019 43
Analise Sintática Descendente
• Só terminais entram em First e Follow.
15/10/2019 45
Analise Sintática Descendente LL(1)
• Uma gramática G é LL(1) se qualquer regra
A B|C
são duas produções distintas de G, tal que:
– Dado um terminal 'a', ambos B e C não derivam uma
mesma string que inicia com 'a'.
– No máximo um entre B e C podem derivar a string vazia,
ou seja, B ε ou C ε.
– Se C ε em zero ou mais passos, então Follow(A) não
contém nenhum First(B). O mesmo caso ocorre para B ε
em zero ou mais passos.
15/10/2019 46
Analise Sintática Descendente LL(1)
• Utiliza uma pilha explícita
– Facilita e agiliza a visualização as ações do analisador sintático
LL(1)
15/10/2019 47
Analise Sintática Descendente LL(1)
• Tanto o analisador sintático descendente recursivo como o
LL(1), é necessário o cálculo dos conjuntos First e Follow.
15/10/2019 48
Eliminando Prefixo em Comum
• Quando duas a mais escolhas de regras gramaticais
compartilham uma cadeia de prefixo comum, é necessário
uma fatoração à esquerda.
Ex A aB
A aC
Ex decl-seqüência decl ; decl-seqüência
decl-seqüência decl
decl s
• Um analisador sintático LL(1) não pode diferenciar entre as
escolhas de produções desse tipo.
15/10/2019 49
Eliminando Prefixo em Comum
A B A A’
A C A’ B|C
A B| C
A A’ A’ B|C
15/10/2019 50
Eliminando Prefixo em Comum
15/10/2019 51
Eliminando Recursividade à Esquerda
• Quando temos uma produção no formato: E E + T | T
– Diremos que esta gramática é recursiva à esquerda.
• A remoção da recursão à esquerda é efetuada
reescrevendo-se a regra gramatical dada como duas regras,
a repetições será obtida por meio da recursão à direita,
criando um novo não-terminal.
Ex E Ea | b E bE’
E’ aE’ | Є
E bE’ E’ aE’|Є
15/10/2019 52
Analise Sintática Descendente LL(1)
Ex 1 -
Achar a tabela de análise sintática LL(1) da gramática
É recursiva à esquerda.
15/10/2019 53
Analise Sintática Descendente LL(1)
• Teremos que eliminar as recursividades à esquerda para
construção da tabela de análise sintática LL(1).
• Ao introduzir novas variáveis auxiliares: exp’ e termo’,
teremos que achar os novos conjuntos First(X) e
Follow(X).
• Gramática equivalente:
exp termo exp’
exp’ soma termo exp’ |Є Exercício: Achar o First(X) e
soma +| - Follow(X) desta gramática,
termo fator termo’ apresentamos somente a
termo’ mult fator termo’ | Є resposta (façam os passos)
no próximo slide .
mult *
fator ( exp ) | número
15/10/2019 54
Analise Sintática Descendente LL(1)
First(exp)={ (, número} Follow(exp)={$, )}
First(exp’)={ +,-, Є } Follow(exp’)={$, )}
First(soma)={+, -} Follow(soma)={( , número }
First(termo)={ (, número} Follow(termo)={$, ) , + , - }
First(termo’)={ *, Є} Follow(termo’)={$, ) , + , - }
First(mult)={ * } Follow(mult)={ ( , número}
First(fator)={ ( , número } Follow(fator)={$, ) , + , - , *}
15/10/2019 55
Analise Sintática Descendente LL(1)
• Utilizaremos as seguintes simplificações
exp = E exp’=E’ termo=T termo’=T’
mult=M soma=S fator=F número=n
• Gramática equivalente:
E TE’
E’ STE’ |Є
S +| -
T FT’
T’ MFT’ | Є
M *
F (E)|n
15/10/2019 56
Analise Sintática Descendente LL(1)
• Construção de tabelas de análise sintática LL(1)
1º passo: listar dos terminais e não-terminais
T={ ( , n, ) , + , - , * } N={ E, E’ , T, T’ , M , S, F }
2º passo: construir a 1ª linha e 1ª coluna da tabela
M(N,T) ( n ) + - * $
E
E’
S
T
T’
M
F
15/10/2019 57
Analise Sintática Descendente LL(1)
3º Passo: achar as células da matriz (tabela) M(N,T)
usando os First( ) e Follow( )
M(N,T) ( n ) + - * $
E
E’
As regras
S serão
T colocadas nas
células
T’ Algumas células
ficarão vazias
M
F
15/10/2019 58
Analise Sintática Descendente LL(1)
E TE’
E’ STE’ |Є
S +| -
T FT’
T’ MFT’ | Є
M *
F (E)|n Temos E T E’ e First(T)={ ( , n}
( n ) + - * $
E ET E’ ET E’
E’
S
T
T’
M
F
15/10/2019 59
Analise Sintática Descendente LL(1)
E TE’
E’ STE’ |Є
S +| -
T FT’
T’ MFT’ | Є
M *
F (E)|n Temos E’ STE’ e First(S)={ +, -}
( n ) + - * $
E ET E’ ET E’
E’ E’STE’ E’STE’
S
T
T’
M
F
15/10/2019 60
Analise Sintática Descendente LL(1)
E TE’
E’ STE’ |Є
S +| -
T FT’
T’ MFT’ | Є
M *
F (E)|n Temos E’ Є e Follow(E’)={ $ , ) }
( n ) + - * $
E ET E’ ET E’
E’ E’ Є E’STE’ E’STE’ E’ Є
S
T
T’
M
F
15/10/2019 61
Analise Sintática Descendente LL(1)
E TE’
E’ STE’ |Є
S +| -
T FT’
T’ MFT’ | Є
M *
F (E)|n Temos S + | -
( n ) + - * $
E ET E’ ET E’
E’ E’ Є E’STE’ E’STE’ E’ Є
S S + S -
T
T’
M
F
15/10/2019 62
Analise Sintática Descendente LL(1)
E TE’
E’ STE’ |Є
S +| -
T FT’
T’ MFT’ | Є
M * Temos T FT’ First(F)={( , n}
F (E)|n
( n ) + - * $
E ET E’ ET E’
E’ E’ Є E’STE’ E’STE’ E’ Є
S S + S -
T TFT’ TFT’
T’
M
F
15/10/2019 63
Analise Sintática Descendente LL(1)
E TE’
E’ STE’ |Є
S +| -
T FT’
T’ MFT’ | Є
M * Temos T’ MFT’ First(M)={ * }
F (E)|n
( n ) + - * $
E ET E’ ET E’
E’ E’ Є E’STE’ E’STE’ E’ Є
S S + S -
T TFT’ TFT’
T’ T’MFT’
M
F
15/10/2019 64
Analise Sintática Descendente LL(1)
E TE’
E’ STE’ |Є
S +| -
T FT’
T’ MFT’ | Є
M *
F (E)|n Temos T’ Є Follow(T’)={ $, ) + , - }
( n ) + - * $
E ET E’ ET E’
E’ E’ Є E’STE’ E’STE’ E’ Є
S S + S -
T TFT’ TFT’
T’ T’ Є T’ Є T’ Є T’MFT’ T’ Є
M
F
15/10/2019 65
Analise Sintática Descendente LL(1)
E TE’
E’ STE’ |Є
S +| -
T FT’
T’ MFT’ | Є
M *
F (E)|n Temos M *
( n ) + - * $
E ET E’ ET E’
E’ E’ Є E’STE’ E’STE’ E’ Є
S S + S -
T TFT’ TFT’
T’ T’ Є T’ Є T’ Є T’MFT’ T’ Є
M M *
F
15/10/2019 66
Analise Sintática Descendente LL(1)
E TE’
E’ STE’ |Є
S +| -
T FT’
T’ MFT’ | Є
M *
F (E)|n Temos F ( E )
( n ) + - * $
E ET E’ ET E’
E’ E’ Є E’STE’ E’STE’ E’ Є
S S + S -
T TFT’ TFT’
T’ T’ Є T’ Є T’ Є T’MFT’ T’ Є
M M *
F F (E)
15/10/2019 67
Analise Sintática Descendente LL(1)
• Se, depois de realizar esses passos, não houver
E TE’ produção alguma em M[N,T], então defina M[N,T]
E’ STE’ |Є como 'ERRO!’.
S +| - • Uma G é LL(1) se a tabela de AS LL(1) associada tiver
T FT’ no máximo uma produção em cada célula.
T’ MFT’ | Є • Uma G LL(1) não pode ser ambigua.
M *
F (E)|n Temos F n
( n ) + - * $
E ET E’ ET E’
E’ E’ Є E’STE’ E’STE’ E’ Є
S S + S -
T TFT’ TFT’
T’ T’ Є T’ Є T’ Є T’MFT’ T’ Є
M M *
F F (E) F n
15/10/2019 68
Analise Sintática Descendente LL(1)
15/10/2019 69
Pilha Entrada Ação
$E 5*(8+7) $ E TE’
$E’ T 5*(8+7) $ T FT’
$E’ T’ F 5*(8+7) $ F n
$E’ T’ n 5*(8+7) $ casamento
$E’ T’ *(8+7)$ T’ MFT’
$E’ T’ F M *(8+7)$ M *
$E’ T’ F * *(8+7)$ casamento
$E’ T’ F (8+7)$ F (E)
$E’ T’ ) E ( (8+7)$ casamento
$E’ T’ ) E 8+7)$ E TE’
$E’ T’ ) E’ T 8+7)$ T FT’
( n ) + - * $
E ETE’ ETE’
E’ E’Є E’STE’ E’STE’ E’Є
S S+ S-
T TFT’ TFT’
T’ T’Є T’Є T’Є T’MFT’ T’Є
M M*
F F(E) Fn
15/10/2019 70
Pilha Entrada Ação
$E’ T’ ) E’ T 8+7) $ T FT’
$E’ T’ ) E’ T’ F 8+7) $ F n
$E’ T’ ) E’ T’ n 8+7) $ casamento
$E’ T’ ) E’ T’ +7) $ T’Є
$E’ T’ ) E’ +7)$ E’ STE’
$E’ T’ ) E’ T S +7)$ S +
$E’ T’ ) E’ T + +7)$ casamento
$E’ T’ ) E’ T 7)$ T FT’
$E’ T’ ) E’ T’ F 7)$ Fn
$E’ T’ ) E’ T’ n 7)$ casamento
$E’ T’ ) E’ T’ )$ T’Є
( n ) + - * $
E ETE’ ETE’
E’ E’Є E’STE’ E’STE’ E’Є
S S+ S-
T TFT’ TFT’
T’ T’Є T’Є T’Є T’MFT’ T’Є
M M*
F F(E) Fn
15/10/2019 71
Analise Sintática Descendente LL(1)
Pilha Entrada Ação
$E’ T’ ) E’ T’ )$ T’Є
$E’ T’ ) E’ )$ E’Є
$E’ T’ ) )$ casamento
$E’ T’ $ T’Є
$E’ $ E’Є
$ $ ACEITA!
( n ) + - * $
E ETE’ ETE’
E’ E’Є E’STE’ E’STE’ E’Є
S S+ S-
T TFT’ TFT’
T’ T’Є T’Є T’Є T’MFT’ T’Є
M M*
F F(E) Fn
15/10/2019 72
Analise Sintática Descendente LL(1)
Pilha Entrada Ação
$E’ T’ ) E’ T’ )$ T’Є
$E’ T’ ) E’ )$ E’Є
$E’ T’ ) )$ casamento
$E’ T’ $ T’Є
$E’ $ E’Є
$ $ ACEITA!
15/10/2019 73
Analise Sintática Descendente LL(1)
Entrada: id v id & id
15/10/2019 74
15/10/2019 75
Analise Sintática Descendente LL(1)
15/10/2019 76
Analise Sintática Descendente LL(1)
15/10/2019 77
Analise Sintática Descendente LL(1)
( n ) + - * $
E ETE’ ETE’
S S+ S-
T TFT’ TFT’
M M*
F F(E) Fn
15/10/2019 78
Recuperação de erros
A resposta de um analisador sintático a erros é frequentemente um
fator crítico em um compilador.
O mínimo requerido é que um analisador sintático determine se um
programa está sintaticamente correto, ou não.
Um analisador sintático que efetua apenas essa tarefa é
denominador de reconhecedor.
É fundamental que o compilador prossiga na tradução, após a
detecção de erros, de modo que o texto seja totalmente analisado.
Tenta-se colocar o analisador em um estado tal que o restante da
sentença possa ser analisada.
Dependendo de como o processo é executado, erros falsos podem
ser gerados a partir de um erro reparado.
15/10/2019 79
Recuperação de erros
Em geral o analisador sintático tenta dar uma mensagem
significativa de erro, pelo menos para o primeiro erro
encontrado, e também o possível local do erro.
Alguns analisadores podem até tentar alguma forma de
correção de erros. Na maioria das vezes, isso se limita aos
casos mais simples, como por exemplo, falta de ponto e
virgula ou parênteses ( delimitadores ).
modo pânico
recuperação local
15/10/2019 80
Recuperação de erros
Modo pânico:
15/10/2019 81
Recuperação de erros
Recuperação local :
15/10/2019 82
Recuperação de erros
15/10/2019 83
Recuperação de erros
• Dado um não-terminal A no topo da pilha e x o terminal de
entrada corrente:
1. Se x=$ ou x Follow(A) retirar A da pilha - “SAI”.
2. Se x $ e x First(A) Follow(A) Retirar sucessivamente
treminais da entrada até encontrar um terminal de
sincronização – “VARRE”.
sai varre
15/10/2019 84
1) Se x $ ou x Follow(A) sai
2)Se x $ e x First(A) Follow(A) varre
( n ) + - * $
E ETE’ ETE’
E’ varre E’Є E’STE’ E’STE’ E’Є
S S+ S-
T TFT’ TFT’
T’ T’Є T’Є T’Є T’MFT’ T’Є
M M*
F F(E) Fn
15/10/2019 85
1) Se x $ ou x Follow(A) sai
2)Se x $ e x First(A) Follow(A) varre
( n ) + - * $
E ETE’ ETE’
E’ varre E’Є E’STE’ E’STE’ E’Є
S sai S+ S-
T TFT’ TFT’
T’ T’Є T’Є T’Є T’MFT’ T’Є
M M*
F F(E) Fn
15/10/2019 86
1) Se x $ ou x Follow(A) sai
2)Se x $ e x First(A) Follow(A) varre
( n ) + - * $
E ETE’ ETE’
E’ varre E’Є E’STE’ E’STE’ E’Є
S sai S+ S-
T TFT’ TFT’
T’ varre T’Є T’Є T’Є T’MFT’ T’Є
M M*
F F(E) Fn
15/10/2019 87
1) Se x $ ou x Follow(A) sai
2)Se x $ e x First(A) Follow(A) varre
( n ) + - * $
E ETE’ ETE’
E’ varre E’Є E’STE’ E’STE’ E’Є
S sai S+ S-
T TFT’ TFT’
T’ varre T’Є T’Є T’Є T’MFT’ T’Є
M sai M*
F F(E) Fn
15/10/2019 88
1) Se x $ ou x Follow(A) sai
2)Se x $ e x First(A) Follow(A) varre
( n ) + - * $
E ETE’ ETE’
E’ varre varre E’Є E’STE’ E’STE’ E’Є
S sai sai S+ S-
T TFT’ TFT’
T’ varre varre T’Є T’Є T’Є T’MFT’ T’Є
M sai sai M*
F F(E) Fn
( n ) + - * $
E ETE’ ETE’ sai varre varre varre sai
E’ varre varre E’Є E’STE’ E’STE’ varre E’Є
S sai sai varre S+ S- varre sai
T TFT’ TFT’ sai sai sai varre sai
T’ varre varre T’Є T’Є T’Є T’MFT’ T’Є
M sai sai varre varre varre M* sai
F F(E) Fn sai sai sai sai sai
First(E)={ (, n} Follow(E)={$, )}
First(E’)={ +,-, Є } Follow(E’)={$, )}
First(S)={+, -} Follow(S)={( , n }
First(T)={ (, n} Follow(T)={$, ) , + , - }
First(T’)={ *, Є} Follow(T’)={$, ) , + , - }
First(M)={ * } Follow(M)={ ( , n}
First(F)={ ( , n } Follow(F’)={$, ) , + , - , *}
15/10/2019 90
Recuperação de erros LL(1)
15/10/2019 91
Pilha Entrada Ação
$E (2+*) $ E TE’
$E’ T (2+*) $ T FT’
$E’ T’ F (2+*) $ F (E)
$E’ T’ ) E ( (2+*) $ casamento
$E’ T’ ) E 2+*)$ E TE’
$E’ T’ ) E’ T 2+*)$ TFT’
$E’ T’ ) E’ T’ F 2+*)$ Fn
$E’ T’ ) E’ T’ n 2+*)$ casamento
$E’ T’ ) E’ T’ +*)$ T’ Є
$E’ T’ ) E’ +*)$ E’ STE’
$E’ T’ ) E’ T S +*)$ S+
( n ) + - * $
E ETE’ ETE’ SAI VARRE VARRE VARRE SAI
E’ VARRE VARRE E’Є E’STE’ E’STE’ VARRE E’Є
S SAI SAI VARRE S+ S- VARRE SAI
T TFT’ TFT’ SAI SAI SAI VARRE SAI
T’ VARRE VARRE T’Є T’Є T’Є T’MFT’ T’Є
M SAI SAI VARRE VARRE VARRE M* SAI
F F(E) Fn SAI SAI SAI SAI SAI
15/10/2019 92
Pilha Entrada Ação
$E’ T’ ) E’ T S +*)$ S+
$E’ T’ ) E’ T + +*)$ casamento
$E’ T’ ) E’ T *) $ ERRO (VARRE)
$E’ T’ ) E’ T )$ ERRO ( SAI )
$E’ T’ ) E’ )$ E’ Є
$E’ T’ ) )$ casamento
$E’ T’ $ T’ Є
$E’ $ E’ Є
$ $ Existem erros!
( n ) + - * $
E ETE’ ETE’ SAI VARRE VARRE VARRE SAI
E’ VARRE VARRE E’Є E’STE’ E’STE’ VARRE E’Є
S SAI SAI VARRE S+ S- VARRE SAI
T TFT’ TFT’ SAI SAI SAI VARRE SAI
T’ VARRE VARRE T’Є T’Є T’Є T’MFT’ T’Є
M SAI SAI VARRE VARRE VARRE M* SAI
F F(E) Fn SAI SAI SAI SAI SAI
15/10/2019 93
15/10/2019 94