mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-10 22:10:21 +02:00
Mention `(system base lalr)' in the manual.
* doc/ref/Makefile.am (guile_TEXINFOS): Add `api-lalr.texi'. * doc/ref/api-lalr.texi: New file. * doc/ref/guile.texi (API Reference): Include it.
This commit is contained in:
parent
1b10152215
commit
2115b8eb40
3 changed files with 39 additions and 0 deletions
|
@ -40,6 +40,7 @@ guile_TEXINFOS = preface.texi \
|
|||
api-binding.texi \
|
||||
api-control.texi \
|
||||
api-io.texi \
|
||||
api-lalr.texi \
|
||||
api-evaluation.texi \
|
||||
api-memory.texi \
|
||||
api-modules.texi \
|
||||
|
|
36
doc/ref/api-lalr.texi
Normal file
36
doc/ref/api-lalr.texi
Normal file
|
@ -0,0 +1,36 @@
|
|||
@c -*-texinfo-*-
|
||||
@c This is part of the GNU Guile Reference Manual.
|
||||
@c Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2007, 2009, 2010
|
||||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node LALR(1) Parsing
|
||||
@section LALR(1) Parsing
|
||||
|
||||
The @code{(system base lalr)} module provides the
|
||||
@uref{http://code.google.com/p/lalr-scm/, @code{lalr-scm} LALR(1) parser
|
||||
generator by Dominique Boucher}. @code{lalr-scm} uses the same algorithm as GNU
|
||||
Bison (@pxref{Introduction, Introduction to Bison,, bison, Bison@comma{} The
|
||||
Yacc-compatible Parser Generator}). Parsers are defined using the
|
||||
@code{lalr-parser} macro.
|
||||
|
||||
@deffn {Scheme Syntax} lalr-parser [@var{options}] @var{tokens} @var{rules}...
|
||||
Generate an LALR(1) syntax analyzer. @var{tokens} is a list of symbols
|
||||
representing the terminal symbols of the grammar. @var{rules} are the grammar
|
||||
production rules.
|
||||
|
||||
Each rule has the form @code{(@var{non-terminal} (@var{rhs} ...) : @var{action}
|
||||
...)}, where @var{non-terminal} is the name of the rule, @var{rhs} are the
|
||||
right-hand sides, i.e., the production rule, and @var{action} is a semantic
|
||||
action associated with the rule.
|
||||
|
||||
The generated parser is a two-argument procedure that takes a @dfn{tokenizer}
|
||||
and a @dfn{syntax error procedure}. The tokenizer should be a unary procedure
|
||||
taking a port and returning a lexical token as produced by
|
||||
@code{make-lexical-token}. The syntax error procedure may be called with at
|
||||
least an error message (a string), and optionally the lexical token that caused
|
||||
the error.
|
||||
@end deffn
|
||||
|
||||
Please refer to the @code{lalr-scm} documentation for details.
|
|
@ -301,6 +301,7 @@ available through both Scheme and C interfaces.
|
|||
* Binding Constructs:: Definitions and variable bindings.
|
||||
* Control Mechanisms:: Controlling the flow of program execution.
|
||||
* Input and Output:: Ports, reading and writing.
|
||||
* LALR(1) Parsing:: Generating LALR(1) parsers.
|
||||
* Read/Load/Eval/Compile:: Reading and evaluating Scheme code.
|
||||
* Memory Management:: Memory management and garbage collection.
|
||||
* Objects:: Low level object orientation support.
|
||||
|
@ -325,6 +326,7 @@ available through both Scheme and C interfaces.
|
|||
@include api-binding.texi
|
||||
@include api-control.texi
|
||||
@include api-io.texi
|
||||
@include api-lalr.texi
|
||||
@include api-evaluation.texi
|
||||
@include api-memory.texi
|
||||
@include api-modules.texi
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue