bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

FYI: master: examples: ship and install variant.yy


From: Akim Demaille
Subject: FYI: master: examples: ship and install variant.yy
Date: Tue, 14 Aug 2018 13:42:29 +0200

Pushed in master (in two commits, merged here in a single one).

commit 30c179fee8dc13b0d0cb0c4d725b549d1afab439
Author: Akim Demaille <address@hidden>
Date:   Tue Aug 14 07:49:09 2018 +0200

    examples: ship and install variant.yy
    
    This file was meant to be shown as an example.  Install it.
    
    * README, data/README: Put Emacs metadata in the final section.
    * examples/README: New.
    * examples/variant.yy: Use %empty.
    * examples/local.mk: Install both these files.

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..bfdd8c68
--- /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.  Extracted from the documentation.
+
+* variant.yy
+A C++ example 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); }
 ;
 %%
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]