Difference between revisions of "The YACC Parser Generator/Exercise 1"

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...")
 
Line 28: Line 28:
 
== Solution ==
 
== Solution ==
  
[[category:Teaching]]
+
[[category:Compiladores]]
[[category:Compilers]]
+
[[category:Ensino]]

Revision as of 16:35, 6 April 2015

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