[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 4/8] lalr1.cc: no longer require %defines.
From: |
Akim Demaille |
Subject: |
[PATCH 4/8] lalr1.cc: no longer require %defines. |
Date: |
Tue, 31 Jul 2012 11:17:27 +0200 |
* data/lalr1.cc: Generate the parser header only when %defines is
passed.
* tests/calc.at: Check it.
---
data/lalr1.cc | 11 +++++++++--
tests/calc.at | 8 ++++----
2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/data/lalr1.cc b/data/lalr1.cc
index 3d6bdca..5792257 100644
--- a/data/lalr1.cc
+++ b/data/lalr1.cc
@@ -336,7 +336,8 @@ b4_public_types_define])[
# We do want M4 expansion after # for CPP macros.
m4_changecom()
-m4_divert_push(0)dnl
+b4_defines_if(
+[m4_divert_push(0)dnl
@output(b4_spec_defines_file@)@
b4_copyright([Skeleton interface for Bison LALR(1) parsers in C++])
[
@@ -350,6 +351,11 @@ b4_copyright([Skeleton interface for Bison LALR(1) parsers
in C++])
]b4_cpp_guard_open([b4_spec_defines_file])[
]b4_shared_declarations[
]b4_cpp_guard_close([b4_spec_defines_file])
+m4_divert_pop(0)dnl
+])
+
+
+m4_divert_push(0)dnl
@output(b4_parser_file_name@)@
b4_copyright([Skeleton implementation for Bison LALR(1) parsers in C++])
b4_percent_code_get([[top]])[]dnl
@@ -363,7 +369,8 @@ m4_if(b4_prefix, [yy], [],
]b4_null_define[
-#include "@basename(]b4_spec_defines_file[@)"
+]b4_defines_if([[#include "@basename(]b4_spec_defines_file[@)"]],
+ [b4_shared_declarations])[
/* User implementation prologue. */
]b4_user_post_prologue[
diff --git a/tests/calc.at b/tests/calc.at
index 1eac92a..8d0fcb3 100644
--- a/tests/calc.at
+++ b/tests/calc.at
@@ -693,12 +693,12 @@ AT_CHECK_CALC([%skeleton "lalr1.cc" %defines])
# Start a testing chunk which compiles `calc' grammar with
# the C++ skeleton, and performs several tests over the parser.
m4_define([AT_CHECK_CALC_LALR1_CC],
-[AT_CHECK_CALC([%language "C++" %defines] $@)])
+[AT_CHECK_CALC([%language "C++"] $@)])
AT_CHECK_CALC_LALR1_CC([])
AT_CHECK_CALC_LALR1_CC([%locations])
AT_CHECK_CALC_LALR1_CC([%locations %define location_type Span])
-AT_CHECK_CALC_LALR1_CC([%locations %define parse.error verbose %name-prefix
"calc" %verbose %yacc])
+AT_CHECK_CALC_LALR1_CC([%defines %locations %define parse.error verbose
%name-prefix "calc" %verbose %yacc])
AT_CHECK_CALC_LALR1_CC([%locations %define parse.error verbose %define
api.prefix "calc" %verbose %yacc])
AT_CHECK_CALC_LALR1_CC([%locations %define parse.error verbose %debug
%name-prefix "calc" %verbose %yacc])
@@ -706,10 +706,10 @@ AT_CHECK_CALC_LALR1_CC([%locations %define parse.error
verbose %debug %name-pref
AT_CHECK_CALC_LALR1_CC([%locations %pure-parser %define parse.error verbose
%debug %define api.prefix "calc" %verbose %yacc])
AT_CHECK_CALC_LALR1_CC([%locations %pure-parser %define parse.error verbose
%debug %define api.prefix "calc" %define api.tokens.prefix "TOK_" %verbose
%yacc])
-AT_CHECK_CALC_LALR1_CC([%locations %pure-parser %define parse.error verbose
%debug %name-prefix "calc" %verbose %yacc %parse-param {semantic_value *result}
{int *count}])
+AT_CHECK_CALC_LALR1_CC([%defines %locations %pure-parser %define parse.error
verbose %debug %name-prefix "calc" %verbose %yacc %parse-param {semantic_value
*result} {int *count}])
AT_CHECK_CALC_LALR1_CC([%pure-parser %define parse.error verbose %debug
%define api.prefix "calc" %verbose %yacc %parse-param {semantic_value *result}
{int *count}])
-AT_CHECK_CALC_LALR1_CC([%locations %pure-parser %define parse.error verbose
%debug %define api.prefix "calc" %verbose %yacc %parse-param {semantic_value
*result} {int *count}])
+AT_CHECK_CALC_LALR1_CC([%defines %locations %pure-parser %define parse.error
verbose %debug %define api.prefix "calc" %verbose %yacc %parse-param
{semantic_value *result} {int *count}])
--
1.7.11.3
- [PATCH 0/8] {master} C++: make %locations and %defines optional, Akim Demaille, 2012/07/31
- [PATCH 2/8] glr.cc, lalr1.cc: define b4_shared_declarations, Akim Demaille, 2012/07/31
- [PATCH 5/8] lalr1.cc: location.hh and position.hh are not generated without %defines, Akim Demaille, 2012/07/31
- [PATCH 3/8] skeletons: style changes, Akim Demaille, 2012/07/31
- [PATCH 8/8] tests: comment changes., Akim Demaille, 2012/07/31
- [PATCH 6/8] lalr1.cc: do not create stack.hh without %defines, Akim Demaille, 2012/07/31
- [PATCH 1/8] glr.cc: no longer require location support., Akim Demaille, 2012/07/31
- [PATCH 4/8] lalr1.cc: no longer require %defines.,
Akim Demaille <=
- [PATCH 7/8] tests: really check the set of generated files, Akim Demaille, 2012/07/31