The YACC Parser Generator/Exercise 1: Difference between revisions

From Wiki**3

< The YACC Parser Generator
(Created page with "{{TOCright}} = Problem = Pretende-se utilizar a ferramenta YACC para criar um programa que aceite uma gramática livre de contexto e determine se esta é recursiva (directa ou i...")
 
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{TOCright}}
#REDIRECT [[ist:The YACC Parser Generator/Exercise 1]]
= Problem =
 
Pretende-se utilizar a ferramenta YACC para criar um programa que aceite uma gramática livre de contexto e determine se esta é recursiva (directa ou indirectamente).
 
Indique a especificação YACC para o problema, bem como todas as funções auxiliares. Tal como nos exercícios de gramáticas atributivas, não são admitidas variáveis globais.
 
Assuma que o analizador lexical produz os seguintes símbolos (tokens):
:
|
;
tTER
tNTER
 
A entrada textual corresponde a uma sequência de produções com a sintaxe utilizada pelo próprio YACC.
 
Os símbolos tTER e tNTER denotam símbolos terminais e não terminais, respectivamente. Assuma, por simplicidade, que apenas existem 10 símbolos não terminais, identificados pelos inteiros 0 a 9 na variável i associada ao símbolo tNTER.
 
Exemplo de programa:
 
x : b X
  | c Y
  ;
b : x ;
c : A ;
 
== Solution ==
 
[[category:Teaching]]
[[category:Compilers]]

Latest revision as of 23:41, 5 December 2018