1 Introduction

> (compile-file "yacc.lisp")
> (load *)
> (compile-file "yacc-tests.lisp")
> (load *)
> (yacc-tests:tests)
Note that you really must compile yacc-tests.lisp to a file in order to
test the fasdumping machinery.
Complete documentation is provided in texinfo format in ``cl-yacc.texi'',
and you will find a complete example in the file ``calculator.lisp''.
The most recent version should be available from
http://www.pps.jussieu.fr/~jch/software/cl-yacc/
Juliusz Chroboczek

DEFINE-GRAMMAR NAME OPTION... PRODUCTION...
PRODUCTION ::= (SYMBOL RHS...)
RHS ::= SYMBOL | (SYMBOL... [ACTION])
Defines the special variable NAME to be a parser. Options are as in
MAKE-GRAMMAR and MAKE-PARSER.

Returns a parser for the given grammar.
If MUFFLE-CONFLICTS is NIL, then a warning will be signaled for all conflicts.
If it is T, then no warnings will be signaled. If it is a list of the form
(SR SS), then a warning will be signaled unless there are exactly SR
shift-reduce conflicts and SS shift-shift conflicts.

Parse the stream of symbols provided by LEXER using PARSER.
LEXER is a function of no arguments returning a symbol and a semantic value,
and should return (VALUES NIL NIL) when the end of input is reached.
Handle YACC-PARSE-ERROR to provide custom error reporting.