LambdaYacc, a Lambda Prolog Parser Generator

During the Spring 2002 semester, I worked for Dr. Dale Miller on an updated version of LambdaYacc, originally started by Dr. Chuck Liang. The original version is on the Lambda Prolog Parser Generator Page. Please see the available files below for more information. Comments and suggestions are welcome! Please send mail to


25 Apr 2002   Quite a few updates:
  Added a parser for Twelf
  Updated all of the parsers to ensure compatibility with the most recent version of LambdaYacc
  Fixed problem with lookahead and lookback in case where two of the same grammar symbol are next to each other
  Added predicated parselinearg A B C to parse a line B with the start symbol A into the abstract syntax C
  Added a module to combine parses generated with LambdaYacc
19 Apr 2002   I posted a new version of LambdaYacc with some bug fixes, speedups in shift-reduce conflict detection, and a changed parseline predicate, whereby one can specify the start symbol to use.

In order to take advantage of the changed parseline predicate, I updated the Lambda Prolog parser. It is now possible to parse a term as a user-inputted line.
04 Apr 2002   Fixed problems with shift-reduce conflict detection; the system was not detecting a class of the conflicts.
02 Apr 2002   New version of LambdaYacc added with null production capability, as well as some other fixes. LambdaYacc will also generate freshcopy clauses automatically now; see the manual to see what modifications must be made to a grammar file to handle this. I also updated the Lambda Prolog parser to take advantage of some of the changes.
20 Mar 2002   Fixed precedence for lambda abstractions in Lambda Prolog parser example