The YACC Parser Generator/Exercise 1

From Wiki**3

< The YACC Parser Generator

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