17 Jan 1997 23:27:03 -0500

Related articles |
---|

Recursive descent and left recursion mfinney@lynchburg.net (1997-01-14) |

Re: Recursive descent and left recursion fjh@mundook.cs.mu.OZ.AU (1997-01-15) |

Re: Recursive descent and left recursion hogan@rintintin.Colorado.EDU (1997-01-15) |

Re: Recursive descent and left recursion dlmoore@ix.netcom.com (David L Moore) (1997-01-16) |

Re: Recursive descent and left recursion cfc@world.std.com (1997-01-16) |

Re: Recursive descent and left recursion fjh@murlibobo.cs.mu.OZ.AU (1997-01-16) |

Re: Recursive descent and left recursion cfc@world.std.com (1997-01-17) |

Re: Recursive descent and left recursion will@ccs.neu.edu (William D Clinger) (1997-01-17) |

Re: Recursive descent and left recursion cfc@world.std.com (Chris F Clark) (1997-01-21) |

Re: Recursive descent and left recursion schoebel@eicheinformatik.uni-stuttgart.de (1997-01-25) |

From: | William D Clinger <will@ccs.neu.edu> |

Newsgroups: | comp.compilers |

Date: | 17 Jan 1997 23:27:03 -0500 |

Organization: | Northeastern University |

References: | 97-01-099 97-01-126 |

Keywords: | parse, LR(1) |

cfc@world.std.com (Chris F Clark) wrote that LR parsing allows

you to

*> ...write your expression*

*> grammars "naturally" with out inventing extra non-terminals to handle*

*> precedence levels. That is:*

*>*

*> expression : expression "+" expression*

*> | expression "*" expression*

This grammar is not LR because it is ambiguous (assuming the

'expression' nonterminal is not altogether useless).

Some LR parser generators let you resolve the ambiguity by non-LR

means, but I don't see how that counts as an advantage of LR parsing.

As for cost, the non-LR techniques for specifying precedence aren't

free either.

Yes, it is true that LR parsers can handle left recursion or right

recursion.

No, it is not true that LR parsers save you from inventing extra

non-terminals to express levels of precedence.

Will

--

Post a followup to this message

Return to the
comp.compilers page.

Search the
comp.compilers archives again.