# Beginner help with LALR(1) closure

## Kent Rollins <kentr@rollinssoft.com>12 Nov 1996 22:04:02 -0500

From comp.compilers

Related articles
Beginner help with LALR(1) closure kentr@rollinssoft.com (Kent Rollins) (1996-11-12)
Re: Beginner help with LALR(1) closure dlester@cs.man.ac.uk (1996-11-14)
Re: Beginner help with LALR(1) closure grout@sp55.csrd.uiuc.edu (1996-11-14)
Re: Beginner help with LALR(1) closure compres@world.std.com (1996-11-14)
Re: Beginner help with LALR(1) closure farzu@cs.tamu.edu (Francisco Arzu) (1996-11-14)
Re: Beginner help with LALR(1) closure adrian@dcs.rhbnc.ac.uk (1996-11-19)
Re: Beginner help with LALR(1) closure salomon@silver.cs.umanitoba.ca (1996-11-19)
[3 later articles]
| List of all articles for this month |

 From: Kent Rollins Newsgroups: comp.compilers Date: 12 Nov 1996 22:04:02 -0500 Organization: Compilers Central Keywords: LALR, question

I'm working on writing my own LALR(1) parser table generator and
I'm a little stuck. I'm doing this because I want to understand
the parsing process. Any tips would be greatly appreciated.

on performing LALR(1) closure on LALR(1) states. I've got 2
questions:

they all have left-recusive grammars like (A) below. When I
run this thru my generator, these cause infinite recursion.
I can't find anything in Holub about how the LALR(1) generator
should handle left-recursion. In order to get around the
problem, I used a technique from a previous chapter which
eliminates left-recursion (B) from LL grammars. I would like to
know how the LALR(1) closure process avoids left recursion.

A //// statement-list statement
A //// statement-list statement

B //// statement-list statement statement-list-pri
B ////
B //// statement-list-pri statement statement-list-pri
B //// EPS

2. How are circular references like the following handled when
performing LALR(1) closure?

type_specifier void
char
short
int
long
float
double
signed
unsigned
struct_or_union_specifier
enum_specifier
type_name

specifier_qualifier_list type_specifier specifier_qualifier_list
type_specifier
type_qualifier specifier_qualifier_list
type_qualifier

type_name specifier_qualifier_list
specifier_qualifier_list abstract_declarator

Any assistance would be greatly appreciated.

Kent
--

Post a followup to this message