[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
style: c: fix a few minor issues about indentation of cpp directives
From: |
Akim Demaille |
Subject: |
style: c: fix a few minor issues about indentation of cpp directives |
Date: |
Sat, 25 Apr 2020 13:44:55 +0200 |
commit b74fc07d21ba81954ea30fd87a1ae8bd324cb182
Author: Akim Demaille <address@hidden>
Date: Sat Apr 25 12:10:30 2020 +0200
style: c: fix a few minor issues about indentation of cpp directives
* README-hacking.md: More about cpp.
* data/skeletons/c.m4, data/skeletons/yacc.c: Style changes.
diff --git a/NEWS b/NEWS
index ade1a70b..d676d6d0 100644
--- a/NEWS
+++ b/NEWS
@@ -17,6 +17,12 @@ GNU Bison NEWS
(2013-07-25), "%error-verbose" is deprecated in favor of "%define
parse.error verbose".
+** Deprecated features
+
+ The YYPRINT macro, which works only with yacc.c and only for tokens, was
+ obsoleted long ago by %printer, introduced in Bison 1.50 (November 2002).
+ It is deprecated and its support will be removed eventually.
+
** New features
*** Improved syntax error messages
diff --git a/README-hacking.md b/README-hacking.md
index 0914cb1f..5e64f95b 100644
--- a/README-hacking.md
+++ b/README-hacking.md
@@ -57,6 +57,31 @@ Actually, Bison has legacy code that we should replace with
gnulib modules
### Skeletons
We try to use the "typical" coding style for each language.
+#### CPP
+We indent the CPP directives this way:
+
+```
+#if FOO
+# if BAR
+# define BAZ
+# endif
+#endif
+```
+
+Don't indent with leading spaces in the skeletons (it's ok in the grammar
+files though, e.g., in `%code {...}` blocks).
+
+On occasions, use `cppi -c` to see where we stand. We don't aim at full
+correctness: depending `-d`, some bits can be in the *.c file, or the *.h
+file within the double-inclusion cpp-guards. In that case, favor the case
+of the *.h file, but don't waste time on this.
+
+Don't hesitate to leave a comment on the `#endif` (e.g., `#endif /* FOO
+*/`), especially for long blocks.
+
+There is no conistency on `! defined` vs. `!defined`. The day gnulib
+decides, we'll follow them.
+
#### C/C++
Follow the GNU Coding Standards.
diff --git a/data/skeletons/c.m4 b/data/skeletons/c.m4
index fa1f9e1e..1a1e3afd 100644
--- a/data/skeletons/c.m4
+++ b/data/skeletons/c.m4
@@ -965,8 +965,8 @@ m4_define([b4_yy_location_print_define],
This macro was not mandated originally: define only if we know
we won't break user code: when these are the locations we know. */
-#ifndef YY_LOCATION_PRINT
-# if defined ]b4_api_PREFIX[LTYPE_IS_TRIVIAL && ]b4_api_PREFIX[LTYPE_IS_TRIVIAL
+# ifndef YY_LOCATION_PRINT
+# if defined ]b4_api_PREFIX[LTYPE_IS_TRIVIAL &&
]b4_api_PREFIX[LTYPE_IS_TRIVIAL
/* Print *YYLOCP on YYO. Private, do not rely on its existence. */
@@ -996,17 +996,17 @@ yy_location_print_ (FILE *yyo, YYLTYPE const * const
yylocp)
return res;
}
-# define YY_LOCATION_PRINT(File, Loc) \
+# define YY_LOCATION_PRINT(File, Loc) \
yy_location_print_ (File, &(Loc))
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
-#endif]],
+# else
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
+# endif /* !defined YY_LOCATION_PRINT */]],
[[/* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif]])
+# ifndef YY_LOCATION_PRINT
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif]])
])
# b4_yyloc_default
diff --git a/data/skeletons/yacc.c b/data/skeletons/yacc.c
index 0fc0c9e5..f52d11a5 100644
--- a/data/skeletons/yacc.c
+++ b/data/skeletons/yacc.c
@@ -695,14 +695,14 @@ yysymbol_name (yysymbol_kind_t yysymbol)
}]])[
#endif
-# ifdef YYPRINT
+#ifdef YYPRINT
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
(internal) symbol number NUM (which must be that of a token). */
static const ]b4_int_type_for([b4_toknum])[ yytoknum[] =
{
]b4_toknum[
};
-# endif
+#endif
#define YYPACT_NINF (]b4_pact_ninf[)
@@ -1405,10 +1405,10 @@ yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
switch (yycount)
{
-# define YYCASE_(N, S) \
+#define YYCASE_(N, S) \
case N: \
yyformat = S; \
- break
+ break
default: /* Avoid compiler warnings. */
YYCASE_(0, YY_("syntax error"));
YYCASE_(1, YY_("syntax error, unexpected %s"));
@@ -1416,7 +1416,7 @@ yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or
%s"));
-# undef YYCASE_
+#undef YYCASE_
}
/* Compute error message size. Don't count the "%s"s, but reserve
@@ -1698,7 +1698,7 @@ yysetstate:
YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs);]b4_locations_if([
YYSTACK_RELOCATE (yyls_alloc, yyls);])[
-# undef YYSTACK_RELOCATE
+# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
}
diff --git a/src/parse-gram.c b/src/parse-gram.c
index f4f1c708..63842113 100644
--- a/src/parse-gram.c
+++ b/src/parse-gram.c
@@ -689,7 +689,7 @@ yysymbol_name (yysymbol_kind_t yysymbol)
}
#endif
-# ifdef YYPRINT
+#ifdef YYPRINT
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
(internal) symbol number NUM (which must be that of a token). */
static const yytype_int16 yytoknum[] =
@@ -702,7 +702,7 @@ static const yytype_int16 yytoknum[] =
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
315
};
-# endif
+#endif
#define YYPACT_NINF (-80)
@@ -977,8 +977,8 @@ do { \
This macro was not mandated originally: define only if we know
we won't break user code: when these are the locations we know. */
-#ifndef YY_LOCATION_PRINT
-# if defined GRAM_LTYPE_IS_TRIVIAL && GRAM_LTYPE_IS_TRIVIAL
+# ifndef YY_LOCATION_PRINT
+# if defined GRAM_LTYPE_IS_TRIVIAL && GRAM_LTYPE_IS_TRIVIAL
/* Print *YYLOCP on YYO. Private, do not rely on its existence. */
@@ -1008,13 +1008,13 @@ yy_location_print_ (FILE *yyo, YYLTYPE const * const
yylocp)
return res;
}
-# define YY_LOCATION_PRINT(File, Loc) \
+# define YY_LOCATION_PRINT(File, Loc) \
yy_location_print_ (File, &(Loc))
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
-#endif
+# else
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
+# endif /* !defined YY_LOCATION_PRINT */
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
@@ -1906,7 +1906,7 @@ yysetstate:
YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
YYSTACK_RELOCATE (yyls_alloc, yyls);
-# undef YYSTACK_RELOCATE
+# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- style: c: fix a few minor issues about indentation of cpp directives,
Akim Demaille <=