mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
package: various fixes for syntax-check
* cfg.mk: Disable checks where needed (e.g., we do want to check the behavior with tabs). (sc_at_parser_check): Remove. Unfortunately sincea11c144609we no longer use the './' prefix to run programs in the current directory. That was so that we could run Java programs like the other, although they are no run with the `./` prefix (see967a59d2c0). As a consequence this sc check no longer makes sense. However, since now AT_PARSER_CHECK passes the `./` prefix itself, this sc-check was superfluous. * examples/c/reccalc/scan.l: Use memcpy, not strncpy. * src/ielr.c, src/reader.c: Obfuscate "lr(0)" so that the sc-check for "space before paren" does not fire. * tests/diagnostics.at: Avoid space-tab, use tab-tab.
This commit is contained in:
2
TODO
2
TODO
@@ -105,7 +105,7 @@ Rename states1 as path, length as pathlen.
|
|||||||
Introduce inline functions for things such as nullable[*rp - ntokens]
|
Introduce inline functions for things such as nullable[*rp - ntokens]
|
||||||
where we need to map from symbol number to nterm number.
|
where we need to map from symbol number to nterm number.
|
||||||
|
|
||||||
There are probably a significant part of the the relations management that
|
There are probably a significant part of the relations management that
|
||||||
should be migrated on top of a bitsetv.
|
should be migrated on top of a bitsetv.
|
||||||
|
|
||||||
*** closure
|
*** closure
|
||||||
|
|||||||
21
cfg.mk
21
cfg.mk
@@ -60,18 +60,6 @@ update-copyright-env = \
|
|||||||
## More syntax-checks. ##
|
## More syntax-checks. ##
|
||||||
## -------------------- ##
|
## -------------------- ##
|
||||||
|
|
||||||
# At least for Mac OS X's grep, the order between . and [ in "[^.[]"
|
|
||||||
# matters:
|
|
||||||
# $ LC_ALL=fr_FR grep -nE '[^[.]' /dev/null
|
|
||||||
# $ LC_ALL=C grep -nE '[^[.]' /dev/null
|
|
||||||
# grep: invalid collating element or class
|
|
||||||
# $ LC_ALL=fr_FR grep -nE '[^.[]' /dev/null
|
|
||||||
# $ LC_ALL=C grep -nE '[^.[]' /dev/null
|
|
||||||
sc_at_parser_check:
|
|
||||||
@prohibit='AT_PARSER_CHECK\(\[+[^.[]|AT_CHECK\(\[+\./' \
|
|
||||||
halt='use AT_PARSER_CHECK for and only for generated parsers' \
|
|
||||||
$(_sc_search_regexp)
|
|
||||||
|
|
||||||
# Indent only with spaces.
|
# Indent only with spaces.
|
||||||
# Taken from Coreutils.
|
# Taken from Coreutils.
|
||||||
sc_prohibit_tab_based_indentation:
|
sc_prohibit_tab_based_indentation:
|
||||||
@@ -156,11 +144,16 @@ sc_space_before_open_paren:
|
|||||||
## syntax-checks exceptions. ##
|
## syntax-checks exceptions. ##
|
||||||
## -------------------------- ##
|
## -------------------------- ##
|
||||||
|
|
||||||
|
# po-check: we use gnulib-po, so we don't need/want them in our POTFILE.
|
||||||
|
generated_files =
|
||||||
|
|
||||||
exclude = \
|
exclude = \
|
||||||
$(foreach a,$(1),$(eval $(subst $$,$$$$,exclude_file_name_regexp--sc_$(a))))
|
$(foreach a,$(1),$(eval $(subst $$,$$$$,exclude_file_name_regexp--sc_$(a))))
|
||||||
|
|
||||||
$(call exclude, \
|
$(call exclude, \
|
||||||
bindtextdomain=^lib/main.c$$ \
|
bindtextdomain=^lib/main.c$$ \
|
||||||
cast_of_argument_to_free=^src/muscle-tab.c$$ \
|
cast_of_argument_to_free=^src/muscle-tab.c$$ \
|
||||||
|
po_check=^po/POTFILES.in$$ \
|
||||||
preprocessor_indentation=^data/|^lib/|^src/parse-gram.[ch]$$ \
|
preprocessor_indentation=^data/|^lib/|^src/parse-gram.[ch]$$ \
|
||||||
program_name=^lib/main.c$$ \
|
program_name=^lib/main.c$$ \
|
||||||
prohibit_always-defined_macros=^data/skeletons/yacc.c$$ \
|
prohibit_always-defined_macros=^data/skeletons/yacc.c$$ \
|
||||||
@@ -169,8 +162,8 @@ $(call exclude,
|
|||||||
prohibit_doubled_word=^tests/named-refs.at$$ \
|
prohibit_doubled_word=^tests/named-refs.at$$ \
|
||||||
prohibit_magic_number_exit=^doc/bison.texi$$ \
|
prohibit_magic_number_exit=^doc/bison.texi$$ \
|
||||||
prohibit_magic_number_exit+=?|^tests/(conflicts|regression).at$$ \
|
prohibit_magic_number_exit+=?|^tests/(conflicts|regression).at$$ \
|
||||||
prohibit_strcmp=^doc/bison\.texi|tests/local\.at$$ \
|
prohibit_strcmp=^doc/bison\.texi|examples|tests/local\.at$$ \
|
||||||
prohibit_tab_based_indentation=install-icc.sh|\.(am|mk)$$|^\.git|Makefile$$ \
|
prohibit_tab_based_indentation=install-icc.sh|\.(am|mk)$$|^\.git|tests/input.at|Makefile$$ \
|
||||||
require_config_h=^(lib/yyerror|data/skeletons/(glr|yacc))\.c$$ \
|
require_config_h=^(lib/yyerror|data/skeletons/(glr|yacc))\.c$$ \
|
||||||
require_config_h_first=^(lib/yyerror|data/skeletons/(glr|yacc))\.c$$ \
|
require_config_h_first=^(lib/yyerror|data/skeletons/(glr|yacc))\.c$$ \
|
||||||
space_before_open_paren=^data/skeletons/ \
|
space_before_open_paren=^data/skeletons/ \
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ main (int argc, char const* argv[])
|
|||||||
{
|
{
|
||||||
/* Enable parse traces on option -p. */
|
/* Enable parse traces on option -p. */
|
||||||
for (int i = 1; i < argc; ++i)
|
for (int i = 1; i < argc; ++i)
|
||||||
if (!strcmp(argv[i], "-p"))
|
if (!strcmp (argv[i], "-p"))
|
||||||
yydebug = 1;
|
yydebug = 1;
|
||||||
return yyparse ();
|
return yyparse ();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
while (capacity < size + yyleng + 1); \
|
while (capacity < size + yyleng + 1); \
|
||||||
str = realloc (str, capacity); \
|
str = realloc (str, capacity); \
|
||||||
} \
|
} \
|
||||||
strncpy (str + size, yytext, yyleng); \
|
memcpy (str + size, yytext, yyleng); \
|
||||||
size += yyleng; \
|
size += yyleng; \
|
||||||
assert (size < capacity); \
|
assert (size < capacity); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ lr_type_get (void)
|
|||||||
{
|
{
|
||||||
char *type = muscle_percent_define_get ("lr.type");
|
char *type = muscle_percent_define_get ("lr.type");
|
||||||
LrType res;
|
LrType res;
|
||||||
if (STREQ (type, "lr(0)"))
|
if (STREQ (type, "lr""(0)"))
|
||||||
res = LR_TYPE__LR0;
|
res = LR_TYPE__LR0;
|
||||||
else if (STREQ (type, "lalr"))
|
else if (STREQ (type, "lalr"))
|
||||||
res = LR_TYPE__LALR;
|
res = LR_TYPE__LALR;
|
||||||
|
|||||||
@@ -763,7 +763,7 @@ prepare_percent_define_front_end_variables (void)
|
|||||||
{
|
{
|
||||||
static char const * const values[] =
|
static char const * const values[] =
|
||||||
{
|
{
|
||||||
"lr.type", "lr(0)", "lalr", "ielr", "canonical-lr", NULL,
|
"lr.type", "lr""(0)", "lalr", "ielr", "canonical-lr", NULL,
|
||||||
"lr.default-reduction", "most", "consistent", "accepting", NULL,
|
"lr.default-reduction", "most", "consistent", "accepting", NULL,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -223,13 +223,13 @@ input.y: <warning>warning:</warning> fix-its can be applied. Rerun with option
|
|||||||
|
|
||||||
AT_TEST([[Locations from M4]],
|
AT_TEST([[Locations from M4]],
|
||||||
[[%define api.prefix {sun}
|
[[%define api.prefix {sun}
|
||||||
%define api.prefix {🌞}
|
%define api.prefix {🌞}
|
||||||
%%
|
%%
|
||||||
exp:;
|
exp:;
|
||||||
]],
|
]],
|
||||||
[1],
|
[1],
|
||||||
[[input.y:10.1-35: <error>error:</error> %define variable 'api.prefix' redefined
|
[[input.y:10.1-35: <error>error:</error> %define variable 'api.prefix' redefined
|
||||||
10 | <error>%define api.prefix {🌞}</error>
|
10 | <error>%define api.prefix {🌞}</error>
|
||||||
| <error>^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</error>
|
| <error>^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</error>
|
||||||
input.y:9.1-37: previous definition
|
input.y:9.1-37: previous definition
|
||||||
9 | <note>%define api.prefix {sun}</note>
|
9 | <note>%define api.prefix {sun}</note>
|
||||||
|
|||||||
Reference in New Issue
Block a user