mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
Add i18n support to the GLR skeleton. Partially fix the C++
skeleton; a C++ expert needs to finish this. Remove debugging msgids; there's little point to having them translated, since they can be understood only by someone who can read the (English-language) source code. Generate runtime-po/bison-runtime.pot automatically, so that we don't have to worry about garbage getting in that file. We'll make sure after the next official release that old msgids don't get lost. See <http://lists.gnu.org/archive/html/bison-patches/2005-07/msg00119.html>. * runtime-po/Makefile.in.in, runtime-po/bison-runtime.pot: Remove. Now auto-generated. * PACKAGING: Don't claim that Gawk, GCC, Perl use this method yet. Fix typos in explanations of the runtime file. * bootstrap: Change gettext keyword from YYI18N to YY_. Use standard Makefile.in.in in runtime-po, since we'll arrange for backward-compatible bison-runtime.po files in a different way. * data/glr.c (YY_): New macro, from yacc.c. (yyuserAction, yyreportAmbiguity, yyreportSyntaxError, yyparse): Translate messages intended for users. (yyreportSyntaxError): Change "virtual memory" to "memory" to match the wording in the other skeletons. We don't know that the memory is virtual. * data/lalr1.cc (YY_): Renamed from _. All uses changed. Use same method that yacc.c uses. Don't translate debugging messages. (yy::yyreport_syntax_error): Put in a FIXME for the i18n stuff; it doesn't work (yet), and requires C++ expertise to fix. * data/yacc.c (YY_): Renamed from YY18N. All uses changed. Move defn to a more logical place, to be consistent with other skeletons. Don't translate debugging messages. Don't assume line numbers fit in unsigned int; use unsigned long fmts. * doc/bison.texinfo: Mention <libintl.h>. Change glibc cross reference to gettext cross reference. Add indexing terms. Mention YYENABLE_NLS. * runtime-po/POTFILES.in: Add data/glr.c, data/lalr1.cc.
This commit is contained in:
39
ChangeLog
39
ChangeLog
@@ -1,5 +1,44 @@
|
|||||||
2005-07-18 Paul Eggert <eggert@cs.ucla.edu>
|
2005-07-18 Paul Eggert <eggert@cs.ucla.edu>
|
||||||
|
|
||||||
|
Add i18n support to the GLR skeleton. Partially fix the C++
|
||||||
|
skeleton; a C++ expert needs to finish this. Remove debugging
|
||||||
|
msgids; there's little point to having them translated, since they
|
||||||
|
can be understood only by someone who can read the
|
||||||
|
(English-language) source code.
|
||||||
|
|
||||||
|
Generate runtime-po/bison-runtime.pot automatically, so that we
|
||||||
|
don't have to worry about garbage getting in that file. We'll
|
||||||
|
make sure after the next official release that old msgids don't
|
||||||
|
get lost. See
|
||||||
|
<http://lists.gnu.org/archive/html/bison-patches/2005-07/msg00119.html>.
|
||||||
|
|
||||||
|
* runtime-po/Makefile.in.in, runtime-po/bison-runtime.pot: Remove.
|
||||||
|
Now auto-generated.
|
||||||
|
* PACKAGING: Don't claim that Gawk, GCC, Perl use this method yet.
|
||||||
|
Fix typos in explanations of the runtime file.
|
||||||
|
* bootstrap: Change gettext keyword from YYI18N to YY_.
|
||||||
|
Use standard Makefile.in.in in runtime-po, since we'll arrange
|
||||||
|
for backward-compatible bison-runtime.po files in a different way.
|
||||||
|
* data/glr.c (YY_): New macro, from yacc.c.
|
||||||
|
(yyuserAction, yyreportAmbiguity, yyreportSyntaxError, yyparse):
|
||||||
|
Translate messages intended for users.
|
||||||
|
(yyreportSyntaxError): Change "virtual memory" to "memory" to match
|
||||||
|
the wording in the other skeletons. We don't know that the memory
|
||||||
|
is virtual.
|
||||||
|
* data/lalr1.cc (YY_): Renamed from _. All uses changed.
|
||||||
|
Use same method that yacc.c uses.
|
||||||
|
Don't translate debugging messages.
|
||||||
|
(yy::yyreport_syntax_error): Put in a FIXME for the i18n stuff;
|
||||||
|
it doesn't work (yet), and requires C++ expertise to fix.
|
||||||
|
* data/yacc.c (YY_): Renamed from YY18N. All uses changed.
|
||||||
|
Move defn to a more logical place, to be consistent with other
|
||||||
|
skeletons.
|
||||||
|
Don't translate debugging messages.
|
||||||
|
Don't assume line numbers fit in unsigned int; use unsigned long fmts.
|
||||||
|
* doc/bison.texinfo: Mention <libintl.h>. Change glibc cross reference
|
||||||
|
to gettext cross reference. Add indexing terms. Mention YYENABLE_NLS.
|
||||||
|
* runtime-po/POTFILES.in: Add data/glr.c, data/lalr1.cc.
|
||||||
|
|
||||||
Fix yyerror / yylex test glitches noted by twlevo@xs4all.nl.
|
Fix yyerror / yylex test glitches noted by twlevo@xs4all.nl.
|
||||||
* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Have yyerror return
|
* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Have yyerror return
|
||||||
void, not int.
|
void, not int.
|
||||||
|
|||||||
10
PACKAGING
10
PACKAGING
@@ -17,8 +17,8 @@ be split into two packages:
|
|||||||
|
|
||||||
The 'bison-runtime' binary package is much smaller than the 'bison'
|
The 'bison-runtime' binary package is much smaller than the 'bison'
|
||||||
binary package. It should be included in any distribution that
|
binary package. It should be included in any distribution that
|
||||||
contains programs that use the diagnostics contained in
|
contains localized programs that use the diagnostics contained in
|
||||||
Bison-generated parsers, e.g., Gawk, GCC, Perl.
|
Bison-generated parsers.
|
||||||
|
|
||||||
If you want to install both packages at the same time, you simply do
|
If you want to install both packages at the same time, you simply do
|
||||||
at the toplevel directory:
|
at the toplevel directory:
|
||||||
@@ -27,12 +27,12 @@ at the toplevel directory:
|
|||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
|
|
||||||
After installation, the files
|
After installation, the file
|
||||||
|
|
||||||
$prefix/share/locale/*/LC_MESSAGES/bison-runtime.mo
|
$prefix/share/locale/*/LC_MESSAGES/bison-runtime.mo
|
||||||
|
|
||||||
belong to the bison-runtime package; all other installed files belong
|
belongs to the bison-runtime package; all other installed files belong
|
||||||
to in the bison package.
|
to the bison package.
|
||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
|||||||
@@ -246,11 +246,11 @@ sed '/^MSGID_BUGS_ADDRESS *=/s/=.*/= bug-bison@gnu.org/' po/Makevars.template >p
|
|||||||
sed '
|
sed '
|
||||||
s/^\(DOMAIN\) *=.*/\1 = bison-runtime/
|
s/^\(DOMAIN\) *=.*/\1 = bison-runtime/
|
||||||
s/^\(subdir\) *=.*/\1 = runtime-po/
|
s/^\(subdir\) *=.*/\1 = runtime-po/
|
||||||
s/^\(XGETTEXT_OPTIONS\) *=.*/\1 = --keyword=YYI18N/
|
s/^\(XGETTEXT_OPTIONS\) *=.*/\1 = --keyword=YY_/
|
||||||
' <po/Makevars >runtime-po/Makevars
|
' <po/Makevars >runtime-po/Makevars
|
||||||
|
|
||||||
# Copy identical files from po to runtime-po.
|
# Copy identical files from po to runtime-po.
|
||||||
(cd po && cp -p *-quot *.header *.sed *.sin ../runtime-po)
|
(cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
|
||||||
|
|
||||||
# if src/parse-gram.[ch] are out of date, rebuild them.
|
# if src/parse-gram.[ch] are out of date, rebuild them.
|
||||||
parse_gram_y=`find src/parse-gram.y \
|
parse_gram_y=`find src/parse-gram.y \
|
||||||
|
|||||||
@@ -403,7 +403,7 @@ b4_location_if([ (void) yylocationp;
|
|||||||
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
|
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
|
||||||
|
|
||||||
]b4_location_if([ YY_LOCATION_PRINT (yyoutput, *yylocationp);
|
]b4_location_if([ YY_LOCATION_PRINT (yyoutput, *yylocationp);
|
||||||
fprintf (yyoutput, ": ");
|
YYFPRINTF (yyoutput, ": ");
|
||||||
])dnl
|
])dnl
|
||||||
[
|
[
|
||||||
# ifdef YYPRINT
|
# ifdef YYPRINT
|
||||||
|
|||||||
28
data/glr.c
28
data/glr.c
@@ -218,6 +218,18 @@ b4_syncline([@oline@], [@ofile@])
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <setjmp.h>
|
#include <setjmp.h>
|
||||||
|
|
||||||
|
#ifndef YY_
|
||||||
|
# if YYENABLE_NLS
|
||||||
|
# if ENABLE_NLS
|
||||||
|
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
|
||||||
|
# define YY_(msgid) dgettext ("bison-runtime", msgid)
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# ifndef YY_
|
||||||
|
# define YY_(msgid) msgid
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef YYFREE
|
#ifndef YYFREE
|
||||||
# define YYFREE free
|
# define YYFREE free
|
||||||
#endif
|
#endif
|
||||||
@@ -771,7 +783,7 @@ yyuserAction (yyRuleNum yyn, int yyrhslen, yyGLRStackItem* yyvsp,
|
|||||||
# define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
|
# define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
|
||||||
# undef YYBACKUP
|
# undef YYBACKUP
|
||||||
# define YYBACKUP(Token, Value) \
|
# define YYBACKUP(Token, Value) \
|
||||||
return yyerror (]b4_yyerror_args["syntax error: cannot back up"), \
|
return yyerror (]b4_yyerror_args[YY_("syntax error: cannot back up")), \
|
||||||
yyerrok, yyerr
|
yyerrok, yyerr
|
||||||
|
|
||||||
yylow = 1;
|
yylow = 1;
|
||||||
@@ -1524,7 +1536,7 @@ yyreportAmbiguity (yySemanticOption* yyx0, yySemanticOption* yyx1,
|
|||||||
yyreportTree (yyx1, 2);
|
yyreportTree (yyx1, 2);
|
||||||
YYFPRINTF (stderr, "\n");
|
YYFPRINTF (stderr, "\n");
|
||||||
#endif
|
#endif
|
||||||
yyFail (yystack][]b4_pure_args[, "ambiguity detected");
|
yyFail (yystack][]b4_pure_args[, YY_("ambiguity detected"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1774,8 +1786,8 @@ yyreportSyntaxError (yyGLRStack* yystack,
|
|||||||
yyprefix = yyor;
|
yyprefix = yyor;
|
||||||
}
|
}
|
||||||
|
|
||||||
yyf = yyformat;
|
yyf = YY_(yyformat);
|
||||||
yysize1 = yysize + (yyfmt - yyformat);
|
yysize1 = yysize + strlen (yyf);
|
||||||
yysize_overflow |= yysize1 < yysize;
|
yysize_overflow |= yysize1 < yysize;
|
||||||
yysize = yysize1;
|
yysize = yysize1;
|
||||||
|
|
||||||
@@ -1803,11 +1815,11 @@ yyreportSyntaxError (yyGLRStack* yystack,
|
|||||||
YYFREE (yymsg);
|
YYFREE (yymsg);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
yyerror (]b4_lyyerror_args["syntax error; also virtual memory exhausted");
|
yyerror (]b4_lyyerror_args[YY_("syntax error; also memory exhausted"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif /* YYERROR_VERBOSE */
|
#endif /* YYERROR_VERBOSE */
|
||||||
yyerror (]b4_lyyerror_args["syntax error");
|
yyerror (]b4_lyyerror_args[YY_("syntax error"));
|
||||||
yynerrs += 1;
|
yynerrs += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2068,7 +2080,7 @@ b4_syncline([@oline@], [@ofile@])])dnl
|
|||||||
{
|
{
|
||||||
yyundeleteLastStack (&yystack);
|
yyundeleteLastStack (&yystack);
|
||||||
if (yystack.yytops.yysize == 0)
|
if (yystack.yytops.yysize == 0)
|
||||||
yyFail (&yystack][]b4_lpure_args[, "syntax error");
|
yyFail (&yystack][]b4_lpure_args[, YY_("syntax error"));
|
||||||
YYCHK1 (yyresolveStack (&yystack]b4_user_args[));
|
YYCHK1 (yyresolveStack (&yystack]b4_user_args[));
|
||||||
YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
|
YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
|
||||||
]b4_location_if([[ yystack.yyerror_range[1].yystate.yyloc = *yyllocp;]])[
|
]b4_location_if([[ yystack.yyerror_range[1].yystate.yyloc = *yyllocp;]])[
|
||||||
@@ -2098,7 +2110,7 @@ b4_syncline([@oline@], [@ofile@])])dnl
|
|||||||
goto yyreturn;
|
goto yyreturn;
|
||||||
|
|
||||||
yyoverflowlab:
|
yyoverflowlab:
|
||||||
yyerror (]b4_lyyerror_args["parser stack overflow");
|
yyerror (]b4_lyyerror_args[YY_("parser stack overflow"));
|
||||||
yyresult = 2;
|
yyresult = 2;
|
||||||
/* Fall through. */
|
/* Fall through. */
|
||||||
|
|
||||||
|
|||||||
@@ -417,9 +417,16 @@ m4_if(b4_defines_flag, 0, [],
|
|||||||
[
|
[
|
||||||
#include @output_header_name@])[
|
#include @output_header_name@])[
|
||||||
|
|
||||||
/* INFRINGES ON USER NAME SPACE */
|
#ifndef YY_
|
||||||
#ifndef _
|
# if YYENABLE_NLS
|
||||||
# define _(msgid) msgid
|
# if ENABLE_NLS
|
||||||
|
# include <libintl.h> /* FIXME: INFRINGES ON USER NAME SPACE */
|
||||||
|
# define YY_(msgid) dgettext ("bison-runtime", msgid)
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# ifndef YY_
|
||||||
|
# define YY_(msgid) msgid
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* A pseudo ostream that takes yydebug_ into account. */
|
/* A pseudo ostream that takes yydebug_ into account. */
|
||||||
@@ -551,7 +558,7 @@ yy::]b4_parser_class_name[::parse ()
|
|||||||
{
|
{
|
||||||
int yyresult_;
|
int yyresult_;
|
||||||
|
|
||||||
YYCDEBUG << _("Starting parse") << std::endl;
|
YYCDEBUG << "Starting parse" << std::endl;
|
||||||
|
|
||||||
yynerrs_ = 0;
|
yynerrs_ = 0;
|
||||||
yyerrstatus_ = 0;
|
yyerrstatus_ = 0;
|
||||||
@@ -583,7 +590,7 @@ b4_syncline([@oline@], [@ofile@])])dnl
|
|||||||
/* New state. */
|
/* New state. */
|
||||||
yynewstate:
|
yynewstate:
|
||||||
yystate_stack_.push (yystate_);
|
yystate_stack_.push (yystate_);
|
||||||
YYCDEBUG << _("Entering state ") << yystate_ << std::endl;
|
YYCDEBUG << "Entering state " << yystate_ << std::endl;
|
||||||
goto yybackup;
|
goto yybackup;
|
||||||
|
|
||||||
/* Backup. */
|
/* Backup. */
|
||||||
@@ -602,12 +609,12 @@ yybackup:
|
|||||||
if (yylooka_ <= yyeof_)
|
if (yylooka_ <= yyeof_)
|
||||||
{
|
{
|
||||||
yylooka_ = yyilooka_ = yyeof_;
|
yylooka_ = yyilooka_ = yyeof_;
|
||||||
YYCDEBUG << _("Now at end of input.") << std::endl;
|
YYCDEBUG << "Now at end of input." << std::endl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
yyilooka_ = yytranslate_ (yylooka_);
|
yyilooka_ = yytranslate_ (yylooka_);
|
||||||
YY_SYMBOL_PRINT (_("Next token is"), yyilooka_, &yylval, &yylloc);
|
YY_SYMBOL_PRINT ("Next token is", yyilooka_, &yylval, &yylloc);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If the proper action on seeing token ILOOKA_ is to reduce or to
|
/* If the proper action on seeing token ILOOKA_ is to reduce or to
|
||||||
@@ -636,7 +643,7 @@ yybackup:
|
|||||||
goto yyacceptlab;
|
goto yyacceptlab;
|
||||||
|
|
||||||
/* Shift the look-ahead token. */
|
/* Shift the look-ahead token. */
|
||||||
YY_SYMBOL_PRINT (_("Shifting"), yyilooka_, &yylval, &yylloc);
|
YY_SYMBOL_PRINT ("Shifting", yyilooka_, &yylval, &yylloc);
|
||||||
|
|
||||||
/* Discard the token being shifted unless it is eof. */
|
/* Discard the token being shifted unless it is eof. */
|
||||||
if (yylooka_ != yyeof_)
|
if (yylooka_ != yyeof_)
|
||||||
@@ -734,7 +741,7 @@ yyerrlab:
|
|||||||
yypop_ ();
|
yypop_ ();
|
||||||
if (yystate_stack_.height () == 1)
|
if (yystate_stack_.height () == 1)
|
||||||
YYABORT;
|
YYABORT;
|
||||||
yydestruct_ (_("Error: popping"),
|
yydestruct_ ("Error: popping",
|
||||||
yystos_[yystate_stack_[0]],
|
yystos_[yystate_stack_[0]],
|
||||||
&yysemantic_stack_[0],
|
&yysemantic_stack_[0],
|
||||||
&yylocation_stack_[0]);
|
&yylocation_stack_[0]);
|
||||||
@@ -742,7 +749,7 @@ yyerrlab:
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
yydestruct_ (_("Error: discarding"), yyilooka_, &yylval, &yylloc);
|
yydestruct_ ("Error: discarding", yyilooka_, &yylval, &yylloc);
|
||||||
yylooka_ = yyempty_;
|
yylooka_ = yyempty_;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -793,7 +800,7 @@ yyerrlab1:
|
|||||||
YYABORT;
|
YYABORT;
|
||||||
|
|
||||||
yyerror_range_[0] = yylocation_stack_[0];
|
yyerror_range_[0] = yylocation_stack_[0];
|
||||||
yydestruct_ (_("Error: popping"),
|
yydestruct_ ("Error: popping",
|
||||||
yystos_[yystate_],
|
yystos_[yystate_],
|
||||||
&yysemantic_stack_[0], &yylocation_stack_[0]);
|
&yysemantic_stack_[0], &yylocation_stack_[0]);
|
||||||
yypop_ ();
|
yypop_ ();
|
||||||
@@ -812,7 +819,7 @@ yyerrlab1:
|
|||||||
yylocation_stack_.push (yyloc);
|
yylocation_stack_.push (yyloc);
|
||||||
|
|
||||||
/* Shift the error token. */
|
/* Shift the error token. */
|
||||||
YY_SYMBOL_PRINT (_("Shifting"), yystos_[yyn_],
|
YY_SYMBOL_PRINT ("Shifting", yystos_[yyn_],
|
||||||
&yysemantic_stack_[0], &yylocation_stack_[0]);
|
&yysemantic_stack_[0], &yylocation_stack_[0]);
|
||||||
|
|
||||||
yystate_ = yyn_;
|
yystate_ = yyn_;
|
||||||
@@ -830,14 +837,14 @@ yyabortlab:
|
|||||||
|
|
||||||
yyreturn:
|
yyreturn:
|
||||||
if (yylooka_ != yyeof_ && yylooka_ != yyempty_)
|
if (yylooka_ != yyeof_ && yylooka_ != yyempty_)
|
||||||
yydestruct_ (_("Error: discarding lookahead"), yyilooka_, &yylval, &yylloc);
|
yydestruct_ ("Error: discarding lookahead", yyilooka_, &yylval, &yylloc);
|
||||||
return yyresult_;
|
return yyresult_;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
yy::]b4_parser_class_name[::yylex_ ()
|
yy::]b4_parser_class_name[::yylex_ ()
|
||||||
{
|
{
|
||||||
YYCDEBUG << _("Reading a token: ");
|
YYCDEBUG << "Reading a token: ";
|
||||||
yylooka_ = ]b4_c_function_call([yylex], [int],
|
yylooka_ = ]b4_c_function_call([yylex], [int],
|
||||||
[[YYSTYPE*], [&yylval]][]dnl
|
[[YYSTYPE*], [&yylval]][]dnl
|
||||||
b4_location_if([, [[location*], [&yylloc]]])dnl
|
b4_location_if([, [[location*], [&yylloc]]])dnl
|
||||||
@@ -869,7 +876,15 @@ yy::]b4_parser_class_name[::yyreport_syntax_error_ ()
|
|||||||
if (yycheck_[x + yyn_] == x && x != yyterror_)
|
if (yycheck_[x + yyn_] == x && x != yyterror_)
|
||||||
++count;
|
++count;
|
||||||
|
|
||||||
message = _("syntax error, unexpected ");
|
// FIXME: This method of building the message is not compatible
|
||||||
|
// with internationalization. It should work like yacc.c does it.
|
||||||
|
// That is, first build a string that looks like this:
|
||||||
|
// "syntax error, unexpected %s or %s or %s"
|
||||||
|
// Then, invoke YY_ on this string.
|
||||||
|
// Finally, use the string as a format to output
|
||||||
|
// yyname_[yyilooka_], etc.
|
||||||
|
// Until this gets fixed, this message appears in English only.
|
||||||
|
message = "syntax error, unexpected ";
|
||||||
message += yyname_[yyilooka_];
|
message += yyname_[yyilooka_];
|
||||||
if (count < 5)
|
if (count < 5)
|
||||||
{
|
{
|
||||||
@@ -877,14 +892,14 @@ yy::]b4_parser_class_name[::yyreport_syntax_error_ ()
|
|||||||
for (int x = yyxbegin; x < yyxend; ++x)
|
for (int x = yyxbegin; x < yyxend; ++x)
|
||||||
if (yycheck_[x + yyn_] == x && x != yyterror_)
|
if (yycheck_[x + yyn_] == x && x != yyterror_)
|
||||||
{
|
{
|
||||||
message += (!count++) ? _(", expecting ") : _(" or ");
|
message += (!count++) ? ", expecting " : " or ";
|
||||||
message += yyname_[x];
|
message += yyname_[x];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
message = _("syntax error");
|
message = YY_("syntax error");
|
||||||
error (yylloc, message);
|
error (yylloc, message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1008,7 +1023,7 @@ yy::]b4_parser_class_name[::yyrline_[] =
|
|||||||
void
|
void
|
||||||
yy::]b4_parser_class_name[::yystack_print_ ()
|
yy::]b4_parser_class_name[::yystack_print_ ()
|
||||||
{
|
{
|
||||||
*yycdebug_ << _("Stack now");
|
*yycdebug_ << "Stack now";
|
||||||
for (state_stack_type::const_iterator i = yystate_stack_.begin ();
|
for (state_stack_type::const_iterator i = yystate_stack_.begin ();
|
||||||
i != yystate_stack_.end (); ++i)
|
i != yystate_stack_.end (); ++i)
|
||||||
*yycdebug_ << ' ' << *i;
|
*yycdebug_ << ' ' << *i;
|
||||||
@@ -1021,8 +1036,8 @@ yy::]b4_parser_class_name[::yyreduce_print_ (int yyrule)
|
|||||||
{
|
{
|
||||||
unsigned int yylno = yyrline_[yyrule];
|
unsigned int yylno = yyrline_[yyrule];
|
||||||
/* Print the symbols being reduced, and their result. */
|
/* Print the symbols being reduced, and their result. */
|
||||||
*yycdebug_ << _("Reducing stack by rule ") << yyn_ - 1
|
*yycdebug_ << "Reducing stack by rule " << yyn_ - 1
|
||||||
<< " (" << _("line") << ' ' << yylno << "), ";
|
<< " (line " << yylno << "), ";
|
||||||
for (]b4_int_type_for([b4_prhs])[ i = yyprhs_[yyn_];
|
for (]b4_int_type_for([b4_prhs])[ i = yyprhs_[yyn_];
|
||||||
0 <= yyrhs_[i]; ++i)
|
0 <= yyrhs_[i]; ++i)
|
||||||
*yycdebug_ << yyname_[yyrhs_[i]] << ' ';
|
*yycdebug_ << yyname_[yyrhs_[i]] << ' ';
|
||||||
|
|||||||
74
data/yacc.c
74
data/yacc.c
@@ -228,6 +228,18 @@ b4_syncline([@oline@], [@ofile@])[
|
|||||||
# define YYSIZE_T unsigned int
|
# define YYSIZE_T unsigned int
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef YY_
|
||||||
|
# if YYENABLE_NLS
|
||||||
|
# if ENABLE_NLS
|
||||||
|
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
|
||||||
|
# define YY_(msgid) dgettext ("bison-runtime", msgid)
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# ifndef YY_
|
||||||
|
# define YY_(msgid) msgid
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ! defined (yyoverflow) || YYERROR_VERBOSE
|
#if ! defined (yyoverflow) || YYERROR_VERBOSE
|
||||||
|
|
||||||
/* The parser invokes alloca or malloc; define the necessary symbols. */
|
/* The parser invokes alloca or malloc; define the necessary symbols. */
|
||||||
@@ -412,18 +424,6 @@ static const char *const yytname[] =
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef YYI18N
|
|
||||||
# if YYENABLE_NLS
|
|
||||||
# if ENABLE_NLS
|
|
||||||
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
|
|
||||||
# define YYI18N(msgid) dgettext ("bison-runtime", msgid)
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# ifndef YYI18N
|
|
||||||
# define YYI18N(msgid) msgid
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
# ifdef YYPRINT
|
# ifdef YYPRINT
|
||||||
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
|
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
|
||||||
token YYLEX-NUM. */
|
token YYLEX-NUM. */
|
||||||
@@ -525,7 +525,7 @@ do \
|
|||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
yyerror (]b4_yyerror_args[YYI18N ("syntax error: cannot back up")); \
|
yyerror (]b4_yyerror_args[YY_("syntax error: cannot back up")); \
|
||||||
YYERROR; \
|
YYERROR; \
|
||||||
} \
|
} \
|
||||||
while (0)
|
while (0)
|
||||||
@@ -619,7 +619,7 @@ do { \
|
|||||||
[[short int *bottom], [bottom]],
|
[[short int *bottom], [bottom]],
|
||||||
[[short int *top], [top]])[
|
[[short int *top], [top]])[
|
||||||
{
|
{
|
||||||
YYFPRINTF (stderr, YYI18N ("Stack now"));
|
YYFPRINTF (stderr, "Stack now");
|
||||||
for (/* Nothing. */; bottom <= top; ++bottom)
|
for (/* Nothing. */; bottom <= top; ++bottom)
|
||||||
YYFPRINTF (stderr, " %d", *bottom);
|
YYFPRINTF (stderr, " %d", *bottom);
|
||||||
YYFPRINTF (stderr, "\n");
|
YYFPRINTF (stderr, "\n");
|
||||||
@@ -640,8 +640,8 @@ do { \
|
|||||||
[[int yyrule], [yyrule]])[
|
[[int yyrule], [yyrule]])[
|
||||||
{
|
{
|
||||||
int yyi;
|
int yyi;
|
||||||
unsigned int yylno = yyrline[yyrule];
|
unsigned long int yylno = yyrline[yyrule];
|
||||||
YYFPRINTF (stderr, YYI18N ("Reducing stack by rule %d (line %u), "),
|
YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
|
||||||
yyrule - 1, yylno);
|
yyrule - 1, yylno);
|
||||||
/* Print the symbols being reduced, and their result. */
|
/* Print the symbols being reduced, and their result. */
|
||||||
for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
|
for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
|
||||||
@@ -911,7 +911,7 @@ m4_ifdef([b4_at_dollar_used], [[ yylsp[0] = yylloc;
|
|||||||
data in use in that stack, in bytes. This used to be a
|
data in use in that stack, in bytes. This used to be a
|
||||||
conditional around just the two extra args, but that might
|
conditional around just the two extra args, but that might
|
||||||
be undefined if yyoverflow is a macro. */
|
be undefined if yyoverflow is a macro. */
|
||||||
yyoverflow (YYI18N ("parser stack overflow"),
|
yyoverflow (YY_("parser stack overflow"),
|
||||||
&yyss1, yysize * sizeof (*yyssp),
|
&yyss1, yysize * sizeof (*yyssp),
|
||||||
&yyvs1, yysize * sizeof (*yyvsp),
|
&yyvs1, yysize * sizeof (*yyvsp),
|
||||||
]b4_location_if([ &yyls1, yysize * sizeof (*yylsp),])[
|
]b4_location_if([ &yyls1, yysize * sizeof (*yylsp),])[
|
||||||
@@ -951,14 +951,14 @@ m4_ifdef([b4_at_dollar_used], [[ yylsp[0] = yylloc;
|
|||||||
yyvsp = yyvs + yysize - 1;
|
yyvsp = yyvs + yysize - 1;
|
||||||
]b4_location_if([ yylsp = yyls + yysize - 1;])[
|
]b4_location_if([ yylsp = yyls + yysize - 1;])[
|
||||||
|
|
||||||
YYDPRINTF ((stderr, YYI18N ("Stack size increased to %lu\n"),
|
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
|
||||||
(unsigned long int) yystacksize));
|
(unsigned long int) yystacksize));
|
||||||
|
|
||||||
if (yyss + yystacksize - 1 <= yyssp)
|
if (yyss + yystacksize - 1 <= yyssp)
|
||||||
YYABORT;
|
YYABORT;
|
||||||
}
|
}
|
||||||
|
|
||||||
YYDPRINTF ((stderr, YYI18N ("Entering state %d\n"), yystate));
|
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
|
||||||
|
|
||||||
goto yybackup;
|
goto yybackup;
|
||||||
|
|
||||||
@@ -982,19 +982,19 @@ yybackup:
|
|||||||
/* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
|
/* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
|
||||||
if (yychar == YYEMPTY)
|
if (yychar == YYEMPTY)
|
||||||
{
|
{
|
||||||
YYDPRINTF ((stderr, YYI18N ("Reading a token: ")));
|
YYDPRINTF ((stderr, "Reading a token: "));
|
||||||
yychar = YYLEX;
|
yychar = YYLEX;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (yychar <= YYEOF)
|
if (yychar <= YYEOF)
|
||||||
{
|
{
|
||||||
yychar = yytoken = YYEOF;
|
yychar = yytoken = YYEOF;
|
||||||
YYDPRINTF ((stderr, YYI18N ("Now at end of input.\n")));
|
YYDPRINTF ((stderr, "Now at end of input.\n"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
yytoken = YYTRANSLATE (yychar);
|
yytoken = YYTRANSLATE (yychar);
|
||||||
YY_SYMBOL_PRINT (YYI18N ("Next token is"), yytoken, &yylval, &yylloc);
|
YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If the proper action on seeing token YYTOKEN is to reduce or to
|
/* If the proper action on seeing token YYTOKEN is to reduce or to
|
||||||
@@ -1015,7 +1015,7 @@ yybackup:
|
|||||||
YYACCEPT;
|
YYACCEPT;
|
||||||
|
|
||||||
/* Shift the look-ahead token. */
|
/* Shift the look-ahead token. */
|
||||||
YY_SYMBOL_PRINT (YYI18N ("Shifting"), yytoken, &yylval, &yylloc);
|
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
|
||||||
|
|
||||||
/* Discard the token being shifted unless it is eof. */
|
/* Discard the token being shifted unless it is eof. */
|
||||||
if (yychar != YYEOF)
|
if (yychar != YYEOF)
|
||||||
@@ -1123,11 +1123,11 @@ yyerrlab:
|
|||||||
#if 0
|
#if 0
|
||||||
/* This is so xgettext sees the translatable formats that are
|
/* This is so xgettext sees the translatable formats that are
|
||||||
constructed on the fly. */
|
constructed on the fly. */
|
||||||
YYI18N ("syntax error, unexpected %s");
|
YY_("syntax error, unexpected %s");
|
||||||
YYI18N ("syntax error, unexpected %s, expecting %s");
|
YY_("syntax error, unexpected %s, expecting %s");
|
||||||
YYI18N ("syntax error, unexpected %s, expecting %s or %s");
|
YY_("syntax error, unexpected %s, expecting %s or %s");
|
||||||
YYI18N ("syntax error, unexpected %s, expecting %s or %s or %s");
|
YY_("syntax error, unexpected %s, expecting %s or %s or %s");
|
||||||
YYI18N ("syntax error, unexpected %s, expecting %s or %s or %s or %s");
|
YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
|
||||||
#endif
|
#endif
|
||||||
char *yyfmt;
|
char *yyfmt;
|
||||||
char const *yyf;
|
char const *yyf;
|
||||||
@@ -1170,7 +1170,7 @@ yyerrlab:
|
|||||||
yyprefix = yyor;
|
yyprefix = yyor;
|
||||||
}
|
}
|
||||||
|
|
||||||
yyf = YYI18N (yyformat);
|
yyf = YY_(yyformat);
|
||||||
yysize1 = yysize + yystrlen (yyf);
|
yysize1 = yysize + yystrlen (yyf);
|
||||||
yysize_overflow |= yysize1 < yysize;
|
yysize_overflow |= yysize1 < yysize;
|
||||||
yysize = yysize1;
|
yysize = yysize1;
|
||||||
@@ -1201,11 +1201,11 @@ yyerrlab:
|
|||||||
YYSTACK_FREE (yymsg);
|
YYSTACK_FREE (yymsg);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
yyerror (]b4_yyerror_args[YYI18N ("syntax error; also memory exhausted"));
|
yyerror (]b4_yyerror_args[YY_("syntax error; also memory exhausted"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif /* YYERROR_VERBOSE */
|
#endif /* YYERROR_VERBOSE */
|
||||||
yyerror (]b4_yyerror_args[YYI18N ("syntax error"));
|
yyerror (]b4_yyerror_args[YY_("syntax error"));
|
||||||
}
|
}
|
||||||
|
|
||||||
]b4_location_if([[ yyerror_range[0] = yylloc;]])[
|
]b4_location_if([[ yyerror_range[0] = yylloc;]])[
|
||||||
@@ -1224,7 +1224,7 @@ yyerrlab:
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
yydestruct (YYI18N ("Error: discarding"), yytoken, &yylval]b4_location_if([, &yylloc])[);
|
yydestruct ("Error: discarding", yytoken, &yylval]b4_location_if([, &yylloc])[);
|
||||||
yychar = YYEMPTY;
|
yychar = YYEMPTY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1278,7 +1278,7 @@ yyerrlab1:
|
|||||||
YYABORT;
|
YYABORT;
|
||||||
|
|
||||||
]b4_location_if([[ yyerror_range[0] = *yylsp;]])[
|
]b4_location_if([[ yyerror_range[0] = *yylsp;]])[
|
||||||
yydestruct (YYI18N ("Error: popping"), yystos[yystate], yyvsp]b4_location_if([, yylsp])[);
|
yydestruct ("Error: popping", yystos[yystate], yyvsp]b4_location_if([, yylsp])[);
|
||||||
YYPOPSTACK;
|
YYPOPSTACK;
|
||||||
yystate = *yyssp;
|
yystate = *yyssp;
|
||||||
YY_STACK_PRINT (yyss, yyssp);
|
YY_STACK_PRINT (yyss, yyssp);
|
||||||
@@ -1296,7 +1296,7 @@ yyerrlab1:
|
|||||||
*++yylsp = yyloc;]])[
|
*++yylsp = yyloc;]])[
|
||||||
|
|
||||||
/* Shift the error token. */
|
/* Shift the error token. */
|
||||||
YY_SYMBOL_PRINT (YYI18N ("Shifting"), yystos[yyn], yyvsp, yylsp);
|
YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
|
||||||
|
|
||||||
yystate = yyn;
|
yystate = yyn;
|
||||||
goto yynewstate;
|
goto yynewstate;
|
||||||
@@ -1321,14 +1321,14 @@ yyabortlab:
|
|||||||
| yyoverflowlab -- parser overflow comes here. |
|
| yyoverflowlab -- parser overflow comes here. |
|
||||||
`----------------------------------------------*/
|
`----------------------------------------------*/
|
||||||
yyoverflowlab:
|
yyoverflowlab:
|
||||||
yyerror (]b4_yyerror_args[YYI18N ("parser stack overflow"));
|
yyerror (]b4_yyerror_args[YY_("parser stack overflow"));
|
||||||
yyresult = 2;
|
yyresult = 2;
|
||||||
/* Fall through. */
|
/* Fall through. */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
yyreturn:
|
yyreturn:
|
||||||
if (yychar != YYEOF && yychar != YYEMPTY)
|
if (yychar != YYEOF && yychar != YYEMPTY)
|
||||||
yydestruct (YYI18N ("Error: discarding lookahead"),
|
yydestruct ("Error: discarding lookahead",
|
||||||
yytoken, &yylval]b4_location_if([, &yylloc])[);
|
yytoken, &yylval]b4_location_if([, &yylloc])[);
|
||||||
if (yyssp != yyss)
|
if (yyssp != yyss)
|
||||||
for (;;)
|
for (;;)
|
||||||
@@ -1337,7 +1337,7 @@ yyreturn:
|
|||||||
YYPOPSTACK;
|
YYPOPSTACK;
|
||||||
if (yyssp == yyss)
|
if (yyssp == yyss)
|
||||||
break;
|
break;
|
||||||
yydestruct (YYI18N ("Error: popping"),
|
yydestruct ("Error: popping",
|
||||||
yystos[*yyssp], yyvsp]b4_location_if([, yylsp])[);
|
yystos[*yyssp], yyvsp]b4_location_if([, yylsp])[);
|
||||||
}
|
}
|
||||||
#ifndef yyoverflow
|
#ifndef yyoverflow
|
||||||
|
|||||||
@@ -1203,7 +1203,9 @@ In some cases the Bison parser file includes system headers, and in
|
|||||||
those cases your code should respect the identifiers reserved by those
|
those cases your code should respect the identifiers reserved by those
|
||||||
headers. On some non-@acronym{GNU} hosts, @code{<alloca.h>},
|
headers. On some non-@acronym{GNU} hosts, @code{<alloca.h>},
|
||||||
@code{<stddef.h>}, and @code{<stdlib.h>} are included as needed to
|
@code{<stddef.h>}, and @code{<stdlib.h>} are included as needed to
|
||||||
declare memory allocators and related types. Other system headers may
|
declare memory allocators and related types. @code{<libintl.h>} is
|
||||||
|
included if message translation is in use
|
||||||
|
(@pxref{Internationalization}). Other system headers may
|
||||||
be included if you define @code{YYDEBUG} to a nonzero value
|
be included if you define @code{YYDEBUG} to a nonzero value
|
||||||
(@pxref{Tracing, ,Tracing Your Parser}).
|
(@pxref{Tracing, ,Tracing Your Parser}).
|
||||||
|
|
||||||
@@ -4821,8 +4823,8 @@ A Bison-generated parser can print diagnostics, including error and
|
|||||||
tracing messages. By default, they appear in English. However, Bison
|
tracing messages. By default, they appear in English. However, Bison
|
||||||
also supports outputting diagnostics in the user's native language.
|
also supports outputting diagnostics in the user's native language.
|
||||||
To make this work, the user should set the usual environment
|
To make this work, the user should set the usual environment
|
||||||
variables. @xref{Using gettextized software, , User influence on
|
variables. @xref{Users, , The User's View, gettext, GNU
|
||||||
@code{gettext}, libc, The GNU C Library Reference Manual}. For
|
@code{gettext} utilities}. For
|
||||||
example, the shell command @samp{export LC_ALL=fr_CA.UTF-8} might set
|
example, the shell command @samp{export LC_ALL=fr_CA.UTF-8} might set
|
||||||
the user's locale to French Canadian using the @acronym{UTF}-8
|
the user's locale to French Canadian using the @acronym{UTF}-8
|
||||||
encoding. The exact set of available locales depends on the user's
|
encoding. The exact set of available locales depends on the user's
|
||||||
@@ -4835,6 +4837,7 @@ steps. Here we assume a package that uses @acronym{GNU} Autoconf and
|
|||||||
|
|
||||||
@enumerate
|
@enumerate
|
||||||
@item
|
@item
|
||||||
|
@cindex bison-i18n.m4
|
||||||
Into the directory containing the @acronym{GNU} Autoconf macros used
|
Into the directory containing the @acronym{GNU} Autoconf macros used
|
||||||
by the package---often called @file{m4}---copy the
|
by the package---often called @file{m4}---copy the
|
||||||
@file{bison-i18n.m4} file installed by Bison under
|
@file{bison-i18n.m4} file installed by Bison under
|
||||||
@@ -4846,11 +4849,16 @@ cp /usr/local/share/aclocal/bison-i18n.m4 m4/bison-i18n.m4
|
|||||||
@end example
|
@end example
|
||||||
|
|
||||||
@item
|
@item
|
||||||
|
@findex BISON_I18N
|
||||||
|
@vindex BISON_LOCALEDIR
|
||||||
|
@vindex YYENABLE_NLS
|
||||||
In the top-level @file{configure.ac}, after the @code{AM_GNU_GETTEXT}
|
In the top-level @file{configure.ac}, after the @code{AM_GNU_GETTEXT}
|
||||||
invocation, add an invocation of @code{BISON_I18N}. This macro is
|
invocation, add an invocation of @code{BISON_I18N}. This macro is
|
||||||
defined in the file @file{bison-i18n.m4} that you copied earlier. It
|
defined in the file @file{bison-i18n.m4} that you copied earlier. It
|
||||||
causes @samp{configure} to find the value of the
|
causes @samp{configure} to find the value of the
|
||||||
@code{BISON_LOCALEDIR} variable.
|
@code{BISON_LOCALEDIR} variable, and it defines the source-language
|
||||||
|
symbol @code{YYENABLE_NLS} to enable translations in the
|
||||||
|
Bison-generated parser.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
In the @code{main} function of your program, designate the directory
|
In the @code{main} function of your program, designate the directory
|
||||||
|
|||||||
@@ -1,356 +0,0 @@
|
|||||||
# Makefile for PO directory in any package using GNU gettext.
|
|
||||||
# Copyright (C) 1995-1997, 2000-2003 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
|
|
||||||
#
|
|
||||||
# This file can be copied and used freely without restrictions. It can
|
|
||||||
# be used in projects which are not available under the GNU General Public
|
|
||||||
# License but which still want to provide support for the GNU gettext
|
|
||||||
# functionality.
|
|
||||||
# Please note that the actual code of GNU gettext is covered by the GNU
|
|
||||||
# General Public License and is *not* in the public domain.
|
|
||||||
|
|
||||||
PACKAGE = @PACKAGE@
|
|
||||||
VERSION = @VERSION@
|
|
||||||
|
|
||||||
SHELL = /bin/sh
|
|
||||||
@SET_MAKE@
|
|
||||||
|
|
||||||
srcdir = @srcdir@
|
|
||||||
top_srcdir = @top_srcdir@
|
|
||||||
VPATH = @srcdir@
|
|
||||||
|
|
||||||
prefix = @prefix@
|
|
||||||
exec_prefix = @exec_prefix@
|
|
||||||
datadir = @datadir@
|
|
||||||
localedir = $(datadir)/locale
|
|
||||||
gettextsrcdir = $(datadir)/gettext/po
|
|
||||||
|
|
||||||
INSTALL = @INSTALL@
|
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
|
||||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
|
||||||
mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
|
|
||||||
|
|
||||||
GMSGFMT = @GMSGFMT@
|
|
||||||
MSGFMT = @MSGFMT@
|
|
||||||
XGETTEXT = @XGETTEXT@
|
|
||||||
MSGMERGE = msgmerge
|
|
||||||
MSGMERGE_UPDATE = @MSGMERGE@ --update
|
|
||||||
MSGINIT = msginit
|
|
||||||
MSGCONV = msgconv
|
|
||||||
MSGFILTER = msgfilter
|
|
||||||
|
|
||||||
POFILES = @POFILES@
|
|
||||||
GMOFILES = @GMOFILES@
|
|
||||||
UPDATEPOFILES = @UPDATEPOFILES@
|
|
||||||
DUMMYPOFILES = @DUMMYPOFILES@
|
|
||||||
DISTFILES.common = Makefile.in.in remove-potcdate.sin \
|
|
||||||
$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
|
|
||||||
DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \
|
|
||||||
$(POFILES) $(GMOFILES) \
|
|
||||||
$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
|
|
||||||
|
|
||||||
POTFILES = \
|
|
||||||
|
|
||||||
CATALOGS = @CATALOGS@
|
|
||||||
|
|
||||||
# Makevars gets inserted here. (Don't remove this line!)
|
|
||||||
|
|
||||||
.SUFFIXES:
|
|
||||||
.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update
|
|
||||||
|
|
||||||
.po.mo:
|
|
||||||
@echo "$(MSGFMT) -c -o $@ $<"; \
|
|
||||||
$(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
|
|
||||||
|
|
||||||
.po.gmo:
|
|
||||||
@lang=`echo $* | sed -e 's,.*/,,'`; \
|
|
||||||
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
|
||||||
echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
|
|
||||||
cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
|
|
||||||
|
|
||||||
.sin.sed:
|
|
||||||
sed -e '/^#/d' $< > t-$@
|
|
||||||
mv t-$@ $@
|
|
||||||
|
|
||||||
|
|
||||||
all: all-@USE_NLS@
|
|
||||||
|
|
||||||
all-yes: stamp-po
|
|
||||||
all-no:
|
|
||||||
|
|
||||||
# stamp-po is a timestamp denoting the last time at which the CATALOGS have
|
|
||||||
# been loosely updated. Its purpose is that when a developer or translator
|
|
||||||
# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
|
|
||||||
# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
|
|
||||||
# invocations of "make" will do nothing. This timestamp would not be necessary
|
|
||||||
# if updating the $(CATALOGS) would always touch them; however, the rule for
|
|
||||||
# $(POFILES) has been designed to not touch files that don't need to be
|
|
||||||
# changed.
|
|
||||||
stamp-po: $(srcdir)/$(DOMAIN).pot
|
|
||||||
test -z "$(CATALOGS)" || $(MAKE) $(CATALOGS)
|
|
||||||
@echo "touch stamp-po"
|
|
||||||
@echo timestamp > stamp-poT
|
|
||||||
@mv stamp-poT stamp-po
|
|
||||||
|
|
||||||
# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
|
|
||||||
# otherwise packages like GCC can not be built if only parts of the source
|
|
||||||
# have been downloaded.
|
|
||||||
|
|
||||||
# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
|
|
||||||
# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
|
|
||||||
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
|
|
||||||
$(XGETTEXT) -o $(DOMAIN).old.pot --no-location $(DOMAIN).pot && \
|
|
||||||
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
|
|
||||||
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
|
|
||||||
--files-from=$(srcdir)/POTFILES.in $(subdir)/$(DOMAIN).old.pot \
|
|
||||||
--copyright-holder='$(COPYRIGHT_HOLDER)' \
|
|
||||||
--msgid-bugs-address='$(MSGID_BUGS_ADDRESS)'
|
|
||||||
rm -f $(DOMAIN).old.pot
|
|
||||||
test ! -f $(DOMAIN).po || { \
|
|
||||||
if test -f $(srcdir)/$(DOMAIN).pot; then \
|
|
||||||
sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
|
|
||||||
sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
|
|
||||||
if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
|
|
||||||
rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
|
|
||||||
else \
|
|
||||||
rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
|
|
||||||
mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
|
|
||||||
fi; \
|
|
||||||
else \
|
|
||||||
mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
|
|
||||||
fi; \
|
|
||||||
}
|
|
||||||
|
|
||||||
# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
|
|
||||||
# every "make" invocation, only create it when it is missing.
|
|
||||||
# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
|
|
||||||
$(srcdir)/$(DOMAIN).pot:
|
|
||||||
$(MAKE) $(DOMAIN).pot-update
|
|
||||||
|
|
||||||
# This target rebuilds a PO file if $(DOMAIN).pot has changed.
|
|
||||||
# Note that a PO file is not touched if it doesn't need to be changed.
|
|
||||||
$(POFILES): $(srcdir)/$(DOMAIN).pot
|
|
||||||
@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
|
|
||||||
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
|
||||||
echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
|
|
||||||
cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
|
|
||||||
|
|
||||||
|
|
||||||
install: install-exec install-data
|
|
||||||
install-exec:
|
|
||||||
install-data: install-data-@USE_NLS@
|
|
||||||
if test "$(PACKAGE)" = "gettext-tools"; then \
|
|
||||||
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
|
|
||||||
for file in $(DISTFILES.common) Makevars.template; do \
|
|
||||||
$(INSTALL_DATA) $(srcdir)/$$file \
|
|
||||||
$(DESTDIR)$(gettextsrcdir)/$$file; \
|
|
||||||
done; \
|
|
||||||
for file in Makevars; do \
|
|
||||||
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
|
|
||||||
done; \
|
|
||||||
else \
|
|
||||||
: ; \
|
|
||||||
fi
|
|
||||||
install-data-no: all
|
|
||||||
install-data-yes: all
|
|
||||||
$(mkinstalldirs) $(DESTDIR)$(datadir)
|
|
||||||
@catalogs='$(CATALOGS)'; \
|
|
||||||
for cat in $$catalogs; do \
|
|
||||||
cat=`basename $$cat`; \
|
|
||||||
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
|
||||||
dir=$(localedir)/$$lang/LC_MESSAGES; \
|
|
||||||
$(mkinstalldirs) $(DESTDIR)$$dir; \
|
|
||||||
if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
|
|
||||||
$(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
|
|
||||||
echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
|
|
||||||
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
|
|
||||||
if test -n "$$lc"; then \
|
|
||||||
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
|
|
||||||
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
|
|
||||||
mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
|
||||||
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
||||||
(cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
|
|
||||||
for file in *; do \
|
|
||||||
if test -f $$file; then \
|
|
||||||
ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
|
|
||||||
fi; \
|
|
||||||
done); \
|
|
||||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
|
||||||
else \
|
|
||||||
if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
|
|
||||||
:; \
|
|
||||||
else \
|
|
||||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
||||||
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
|
||||||
ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
|
|
||||||
ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
|
|
||||||
cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
|
||||||
echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
done
|
|
||||||
|
|
||||||
install-strip: install
|
|
||||||
|
|
||||||
installdirs: installdirs-exec installdirs-data
|
|
||||||
installdirs-exec:
|
|
||||||
installdirs-data: installdirs-data-@USE_NLS@
|
|
||||||
if test "$(PACKAGE)" = "gettext-tools"; then \
|
|
||||||
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
|
|
||||||
else \
|
|
||||||
: ; \
|
|
||||||
fi
|
|
||||||
installdirs-data-no:
|
|
||||||
installdirs-data-yes:
|
|
||||||
$(mkinstalldirs) $(DESTDIR)$(datadir)
|
|
||||||
@catalogs='$(CATALOGS)'; \
|
|
||||||
for cat in $$catalogs; do \
|
|
||||||
cat=`basename $$cat`; \
|
|
||||||
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
|
||||||
dir=$(localedir)/$$lang/LC_MESSAGES; \
|
|
||||||
$(mkinstalldirs) $(DESTDIR)$$dir; \
|
|
||||||
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
|
|
||||||
if test -n "$$lc"; then \
|
|
||||||
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
|
|
||||||
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
|
|
||||||
mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
|
||||||
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
||||||
(cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
|
|
||||||
for file in *; do \
|
|
||||||
if test -f $$file; then \
|
|
||||||
ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
|
|
||||||
fi; \
|
|
||||||
done); \
|
|
||||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
|
||||||
else \
|
|
||||||
if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
|
|
||||||
:; \
|
|
||||||
else \
|
|
||||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
||||||
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
done
|
|
||||||
|
|
||||||
# Define this as empty until I found a useful application.
|
|
||||||
installcheck:
|
|
||||||
|
|
||||||
uninstall: uninstall-exec uninstall-data
|
|
||||||
uninstall-exec:
|
|
||||||
uninstall-data: uninstall-data-@USE_NLS@
|
|
||||||
if test "$(PACKAGE)" = "gettext-tools"; then \
|
|
||||||
for file in $(DISTFILES.common) Makevars.template; do \
|
|
||||||
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
|
|
||||||
done; \
|
|
||||||
else \
|
|
||||||
: ; \
|
|
||||||
fi
|
|
||||||
uninstall-data-no:
|
|
||||||
uninstall-data-yes:
|
|
||||||
catalogs='$(CATALOGS)'; \
|
|
||||||
for cat in $$catalogs; do \
|
|
||||||
cat=`basename $$cat`; \
|
|
||||||
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
|
||||||
for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
|
|
||||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
|
||||||
done; \
|
|
||||||
done
|
|
||||||
|
|
||||||
check: all
|
|
||||||
|
|
||||||
info dvi ps pdf html tags TAGS ctags CTAGS ID:
|
|
||||||
|
|
||||||
mostlyclean:
|
|
||||||
rm -f remove-potcdate.sed
|
|
||||||
rm -f stamp-poT
|
|
||||||
rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
|
|
||||||
rm -f *.old.pot
|
|
||||||
rm -fr *.o
|
|
||||||
|
|
||||||
clean: mostlyclean
|
|
||||||
|
|
||||||
distclean: clean
|
|
||||||
rm -f Makefile Makefile.in POTFILES *.mo
|
|
||||||
|
|
||||||
maintainer-clean: distclean
|
|
||||||
@echo "This command is intended for maintainers to use;"
|
|
||||||
@echo "it deletes files that may require special tools to rebuild."
|
|
||||||
rm -f stamp-po $(GMOFILES)
|
|
||||||
|
|
||||||
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
|
||||||
dist distdir:
|
|
||||||
$(MAKE) update-po
|
|
||||||
@$(MAKE) dist2
|
|
||||||
# This is a separate target because 'update-po' must be executed before.
|
|
||||||
dist2: $(DISTFILES)
|
|
||||||
dists="$(DISTFILES)"; \
|
|
||||||
if test "$(PACKAGE)" = "gettext-tools"; then \
|
|
||||||
dists="$$dists Makevars.template"; \
|
|
||||||
fi; \
|
|
||||||
if test -f $(srcdir)/ChangeLog; then \
|
|
||||||
dists="$$dists ChangeLog"; \
|
|
||||||
fi; \
|
|
||||||
for i in 0 1 2 3 4 5 6 7 8 9; do \
|
|
||||||
if test -f $(srcdir)/ChangeLog.$$i; then \
|
|
||||||
dists="$$dists ChangeLog.$$i"; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
|
|
||||||
for file in $$dists; do \
|
|
||||||
if test -f $$file; then \
|
|
||||||
cp -p $$file $(distdir); \
|
|
||||||
else \
|
|
||||||
cp -p $(srcdir)/$$file $(distdir); \
|
|
||||||
fi; \
|
|
||||||
done
|
|
||||||
|
|
||||||
update-po: Makefile
|
|
||||||
$(MAKE) $(DOMAIN).pot-update
|
|
||||||
test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
|
|
||||||
$(MAKE) update-gmo
|
|
||||||
|
|
||||||
# General rule for updating PO files.
|
|
||||||
|
|
||||||
.nop.po-update:
|
|
||||||
@lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
|
|
||||||
if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
|
|
||||||
tmpdir=`pwd`; \
|
|
||||||
echo "$$lang:"; \
|
|
||||||
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
|
||||||
echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
|
|
||||||
cd $(srcdir); \
|
|
||||||
if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
|
|
||||||
if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
|
|
||||||
rm -f $$tmpdir/$$lang.new.po; \
|
|
||||||
else \
|
|
||||||
if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
|
|
||||||
:; \
|
|
||||||
else \
|
|
||||||
echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
|
|
||||||
exit 1; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
|
||||||
else \
|
|
||||||
echo "msgmerge for $$lang.po failed!" 1>&2; \
|
|
||||||
rm -f $$tmpdir/$$lang.new.po; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
$(DUMMYPOFILES):
|
|
||||||
|
|
||||||
update-gmo: Makefile $(GMOFILES)
|
|
||||||
@:
|
|
||||||
|
|
||||||
Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@
|
|
||||||
cd $(top_builddir) \
|
|
||||||
&& CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
|
|
||||||
$(SHELL) ./config.status
|
|
||||||
|
|
||||||
force:
|
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make not to export all variables.
|
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
|
||||||
.NOEXPORT:
|
|
||||||
@@ -1 +1,3 @@
|
|||||||
|
data/glr.c
|
||||||
|
data/lalr1.cc
|
||||||
data/yacc.c
|
data/yacc.c
|
||||||
|
|||||||
@@ -1,105 +0,0 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
|
||||||
# Copyright (C) YEAR Free Software Foundation, Inc.
|
|
||||||
# This file is distributed under the same license as the PACKAGE package.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
||||||
#
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
|
||||||
"Report-Msgid-Bugs-To: bug-bison@gnu.org\n"
|
|
||||||
"POT-Creation-Date: 2005-06-27 00:48+0200\n"
|
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=CHARSET\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
|
|
||||||
#: data/yacc.c:520
|
|
||||||
msgid "syntax error: cannot back up"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:614
|
|
||||||
msgid "Stack now"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:636
|
|
||||||
#, c-format
|
|
||||||
msgid "Reducing stack by rule %d (line %u), "
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:905 data/yacc.c:1315
|
|
||||||
msgid "parser stack overflow"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:945
|
|
||||||
#, c-format
|
|
||||||
msgid "Stack size increased to %lu\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:952
|
|
||||||
#, c-format
|
|
||||||
msgid "Entering state %d\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:976
|
|
||||||
msgid "Reading a token: "
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:983
|
|
||||||
msgid "Now at end of input.\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:988
|
|
||||||
msgid "Next token is"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:1009 data/yacc.c:1290
|
|
||||||
msgid "Shifting"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:1117
|
|
||||||
#, c-format
|
|
||||||
msgid "syntax error, unexpected %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:1118
|
|
||||||
#, c-format
|
|
||||||
msgid "syntax error, unexpected %s, expecting %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:1119
|
|
||||||
#, c-format
|
|
||||||
msgid "syntax error, unexpected %s, expecting %s or %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:1120
|
|
||||||
#, c-format
|
|
||||||
msgid "syntax error, unexpected %s, expecting %s or %s or %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:1121
|
|
||||||
#, c-format
|
|
||||||
msgid "syntax error, unexpected %s, expecting %s or %s or %s or %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:1195
|
|
||||||
msgid "syntax error; also memory exhausted"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:1199
|
|
||||||
msgid "syntax error"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:1218
|
|
||||||
msgid "Error: discarding"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:1272 data/yacc.c:1331
|
|
||||||
msgid "Error: popping"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: data/yacc.c:1322
|
|
||||||
msgid "Error: discarding lookahead"
|
|
||||||
msgstr ""
|
|
||||||
Reference in New Issue
Block a user