summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkim Demaille <akim.demaille@gmail.com>2021-08-04 21:35:05 +0200
committerAkim Demaille <akim.demaille@gmail.com>2021-08-04 21:36:41 +0200
commit93f9e527ca2ba0a1afb5ebcb07b0cc6bf6550f25 (patch)
treec0fc077cce36c7b56721428a740aea3582d09d43
parent0c0cf6f5a4ede4becc761d5e8ab781ee5dc054fa (diff)
downloadbison-93f9e527ca2ba0a1afb5ebcb07b0cc6bf6550f25.tar.gz
doc: refer to the examples
* doc/bison.texi: Point to rpcalc, mfcalc, simple.y, calc++, c/glr and c++/glr.
-rw-r--r--doc/bison.texi34
1 files changed, 25 insertions, 9 deletions
diff --git a/doc/bison.texi b/doc/bison.texi
index f73cc819..7b77f328 100644
--- a/doc/bison.texi
+++ b/doc/bison.texi
@@ -1162,7 +1162,10 @@ cannot be used within the same enumerated type declaration.
@cindex conflicts
@cindex reduce/reduce conflicts
-Let's consider an example, vastly simplified from a C++ grammar.
+Let's consider an example, vastly simplified from a C++
+grammar.@footnote{The sources of an extended version of this example are
+available in C as @file{examples/c/glr}, and in C++ as
+@file{examples/c++/glr}.}
@example
%@{
@@ -1675,6 +1678,14 @@ These examples are simple, but Bison grammars for real programming
languages are written the same way. You can copy these examples into a
source file to try them.
+@sp 1
+
+Bison comes with several examples (including for the different target
+languages). If this package is properly installed, you shall find them in
+@file{@var{prefix}/share/doc/bison/examples}, where @var{prefix} is the root
+of the installation, probably something like @file{/usr/local} or
+@file{/usr}.
+
@menu
* RPN Calc:: Reverse Polish Notation Calculator;
a first example with no operator precedence.
@@ -1693,7 +1704,9 @@ source file to try them.
@cindex @code{rpcalc}
@cindex calculator, simple
-The first example is that of a simple double-precision @dfn{Reverse Polish
+The first example@footnote{The sources of @command{rpcalc} are available as
+@file{examples/c/rpcalc}.} is that of a simple double-precision @dfn{Reverse
+Polish
Notation} calculator (a calculator using postfix operators). This example
provides a good starting point, since operator precedence is not an issue.
The second example will illustrate how operator precedence is handled.
@@ -2548,7 +2561,8 @@ valid input, in comments, in literal strings, and so on.
@cindex calculator, multi-function
Now that the basics of Bison have been discussed, it is time to move on to
-a more advanced problem. The above calculators provided only five
+a more advanced problem.@footnote{The sources of @command{mfcalc} are available as
+@file{examples/c/mfcalc}.} The above calculators provided only five
functions, @samp{+}, @samp{-}, @samp{*}, @samp{/} and @samp{^}. It would
be nice to have a calculator that provides other mathematical functions such
as @code{sin}, @code{cos}, etc.
@@ -2602,7 +2616,8 @@ Note that multiple assignment and nested function calls are permitted.
@node Mfcalc Declarations
@subsection Declarations for @code{mfcalc}
-Here are the C and Bison declarations for the multi-function calculator.
+Here are the C and Bison declarations for the multi-function
+calculator.
@ignore
@comment file: c/mfcalc/mfcalc.y
@@ -12048,9 +12063,10 @@ The Bison parser in C++ is an object, an instance of the class
@subsection A Simple C++ Example
This tutorial about C++ parsers is based on a simple, self contained
-example. The following sections are the reference manual for Bison with
-C++, the last one showing a fully blown example (@pxref{A Complete C++
-Example}).
+example.@footnote{The sources of this example are available as
+@file{examples/c++/simple.yy}.} The following sections are the reference
+manual for Bison with C++, the last one showing a fully blown example
+(@pxref{A Complete C++ Example}).
To look nicer, our example will be in C++14. It is not required: Bison
supports the original C++98 standard.
@@ -13105,7 +13121,7 @@ including the end-of-file token.
This section demonstrates the use of a C++ parser with a simple but complete
example. This example should be available on your system, ready to compile,
-in the directory @dfn{.../share/doc/bison/examples/calc++}. It focuses on
+in the directory @file{examples/c++/calc++}. It focuses on
the use of Bison, therefore the design of the various C++ classes is very
naive: no accessors, no encapsulation of members etc. We will use a Lex
scanner, and more precisely, a Flex scanner, to demonstrate the various
@@ -16554,7 +16570,7 @@ London, Department of Computer Science, TR-00-12 (December 2000).
@c LocalWords: symrec val tptr FUN func struct sym enum IEC syntaxes Byacc
@c LocalWords: fun putsym getsym arith funs atan ptr malloc sizeof Lex pcc
@c LocalWords: strlen strcpy fctn strcmp isalpha symbuf realloc isalnum DOTDOT
-@c LocalWords: ptypes itype trigraphs yytname expseq vindex dtype Unary
+@c LocalWords: ptypes itype trigraphs yytname expseq vindex dtype Unary usr
@c LocalWords: Rhs YYRHSLOC LE nonassoc op deffn typeless yynerrs nonterminal
@c LocalWords: yychar yydebug msg YYNTOKENS YYNNTS YYNRULES YYNSTATES reentrant
@c LocalWords: cparse clex deftypefun NE defmac YYACCEPT YYABORT param yypstate