summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README3
-rw-r--r--data/README6
-rw-r--r--examples/README39
-rw-r--r--examples/local.mk7
-rw-r--r--examples/variant.yy8
5 files changed, 55 insertions, 8 deletions
diff --git a/README b/README
index 7ec93e49..5370f335 100644
--- a/README
+++ b/README
@@ -37,13 +37,12 @@ test case in each bug report.
For any copyright year range specified as YYYY-ZZZZ in this package,
note that the range specifies every single year in that closed interval.
+-----
Local Variables:
mode: outline
End:
------
-
Copyright (C) 1992, 1998-1999, 2003-2005, 2008-2015, 2018 Free Software
Foundation, Inc.
diff --git a/data/README b/data/README
index 629599cc..798750f7 100644
--- a/data/README
+++ b/data/README
@@ -1,5 +1,3 @@
--*- outline -*-
-
This directory contains data needed by Bison.
* Skeletons
@@ -52,6 +50,10 @@ into various formats.
-----
+Local Variables:
+mode: outline
+End:
+
Copyright (C) 2002, 2008-2015, 2018 Free Software Foundation, Inc.
This file is part of GNU Bison.
diff --git a/examples/README b/examples/README
new file mode 100644
index 00000000..1a0c65d1
--- /dev/null
+++ b/examples/README
@@ -0,0 +1,39 @@
+This directory contains examples of Bison grammar files.
+
+* mfcalc
+A C example of a multi-function calculator. Extracted from the
+documentation.
+
+* calc++
+A C++ version of the canonical example for parsers: a calculator.
+Also uses Flex for the scanner.
+
+* variant.yy
+A C++ examples that uses variants (they allow to use any C++ type as
+semantic value type) and symbol constructors (they ensure consistency
+between declared token type and effective semantic value).
+
+-----
+
+Local Variables:
+mode: outline
+End:
+
+Copyright (C) 2018 Free Software Foundation, Inc.
+
+This file is part of Bison, the GNU Compiler Compiler.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# LocalWords: mfcalc calc parsers yy
diff --git a/examples/local.mk b/examples/local.mk
index 3a23d808..6dfbf2eb 100644
--- a/examples/local.mk
+++ b/examples/local.mk
@@ -41,6 +41,13 @@ $(extracted): %D%/extracted.stamp
@test -f $@ || rm -f %D%/extracted.stamp
@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) %D%/extracted.stamp
+## ---------- ##
+## Examples. ##
+## ---------- ##
+
+examplesdir = $(docdir)/examples
+dist_examples_DATA = %D%/README %D%/variant.yy
+
include %D%/calc++/local.mk
include %D%/mfcalc/local.mk
include %D%/rpcalc/local.mk
diff --git a/examples/variant.yy b/examples/variant.yy
index b6d97c9c..6c8e4635 100644
--- a/examples/variant.yy
+++ b/examples/variant.yy
@@ -88,13 +88,13 @@ result:
;
list:
- /* nothing */ { /* Generates an empty string list */ }
-| list item { std::swap ($$, $1); $$.push_back ($2); }
+ %empty { /* Generates an empty string list */ }
+| list item { std::swap ($$, $1); $$.push_back ($2); }
;
item:
- TEXT { std::swap ($$, $1); }
-| NUMBER { $$ = string_cast ($1); }
+ TEXT { std::swap ($$, $1); }
+| NUMBER { $$ = string_cast ($1); }
;
%%