Recentemente, deparei com um artigo descrevendo a técnica de análise mencionada no título. Infelizmente, a terminologia usada no referido artigo está um pouco além da minha compreensão, por isso tenho tentado entender o algoritmo de construção de maneira mais intuitiva. Acredito que consegui ( esta apresentação foi a fonte do momento ah-ha), mas uma verificação da correção de alguém familiarizado com a técnica ou a terminologia contida nela seria muito apreciada.
Vou descrever minha opinião sobre a solução (se estiver correta, acredito que poderia ser útil para outras pessoas que tentam entender a técnica) e fazer perguntas adicionais posteriormente. Para garantir que não há mal-entendido, eu vou usar a seguinte notação padrão: , A , B , C , . . . ∈ N , . . . X , Y , Z ∈ N ∪ T , α , βum , b , c , . . . ∈ Ta,b,c,...∈TA , B , C, . . . ∈ NA,B,C,...∈N. . . X, Y, Z∈ N∪ T...X,Y,Z∈N∪T e, como no papel, um i → co para denotar número regra i . No entanto, provavelmente usarei nomes diferentes para conceitos do que o artigo original.α , β, γ, . . . ∈ { N∪ T}∗α,β,γ,...∈{N∪T}∗A →EuωA→iωEui
Além disso, em toda a descrição, a relação de equivalência é usada.κ0κ0
Existem dois tipos de itens dentro do autômato de análise: itens LR simples (0) do formato que chamo de itens de turno e itens do formato A i → α ∙ β , m , n que eu chamo de resolução itens ; eles dizem ao analisador para empurrar n símbolos de volta ao fluxo de entrada e depois reduzir pelo número de regra m no primeiro símbolo de β .A→iα∙βA→iα∙βA→iα∙β,m,nA→iα∙β,m,nnnmmββ