mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
Initial check-in introducing experimental GLR parsing. See entry in
ChangeLog dated 2002-06-27 from Paul Hilfinger for details.
This commit is contained in:
121
ChangeLog
121
ChangeLog
@@ -1,4 +1,123 @@
|
||||
2002-06-27 Akim Demaille <akim@epita.fr>
|
||||
2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
|
||||
|
||||
Accumulated changelog for new GLR parsing features.
|
||||
|
||||
* src/conflicts.c (count_total_conflicts): Change name to
|
||||
conflicts_total_count.
|
||||
* src/conflicts.h: Ditto.
|
||||
* src/output.c (token_actions): Use the new name.
|
||||
(output_conflicts): Change conflp => conflict_list_heads, and
|
||||
confl => conflict_list for better readability.
|
||||
* data/glr.c: Use the new names.
|
||||
* NEWS: Add self to GLR announcement.
|
||||
|
||||
* src/reader.c (free_merger_functions): Cleanup: XFREE->free.
|
||||
|
||||
* doc/bison.texinfo (GLR Parsers): Make corrections suggested by
|
||||
Akim Demaille.
|
||||
|
||||
* data/bison.glr: Change name to glr.c
|
||||
* data/glr.c: Renamed from bison.glr.
|
||||
* data/Makefile.am: Add glr.c
|
||||
|
||||
* src/getargs.c:
|
||||
|
||||
* src/symlist.h: Add dprec and merger fields to symbol_list_s.
|
||||
* src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
|
||||
|
||||
Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
|
||||
|
||||
* data/bison.glr: Be sure to restore the
|
||||
current #line when returning to the skeleton contents after having
|
||||
exposed the input file's #line.
|
||||
|
||||
Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
|
||||
|
||||
* data/bison.glr: Bring up to date with changes to bison.simple.
|
||||
|
||||
Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
|
||||
|
||||
* data/bison.glr: Correct definitions that use b4_prefix.
|
||||
Various reformatting.
|
||||
(GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
|
||||
(yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
|
||||
yytokenp argument; now part of stack.
|
||||
(yychar): Define to behave as documented.
|
||||
(yyclearin): Ditto.
|
||||
|
||||
Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
|
||||
|
||||
* src/reader.h: Add declaration for free_merger_functions.
|
||||
|
||||
* src/reader.c (merge_functions): New variable.
|
||||
(get_merge_function): New function.
|
||||
(free_merger_functions): New function.
|
||||
(readgram): Check for %prec that is not followed by a symbol.
|
||||
Handle %dprec and %merge declarations.
|
||||
(packgram): Initialize dprec and merger fields in rules array.
|
||||
|
||||
* src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
|
||||
conflict_list_cnt, conflict_list_free): New variables.
|
||||
(table_grow): Also grow conflict_table.
|
||||
(prepare_rules): Output dprec and merger tables.
|
||||
(conflict_row): New function.
|
||||
(action_row): Output conflict lists for GLR parser. Don't use
|
||||
default reduction in conflicted states for GLR parser so that there
|
||||
are spaces for the conflict lists.
|
||||
(save_row): Also save conflict information.
|
||||
(token_actions): Allocate conflict list.
|
||||
(merger_output): New function.
|
||||
(pack_vector): Pack conflict table, too.
|
||||
(output_conflicts): New function to output yyconflp and yyconfl.
|
||||
(output_check): Allocate conflict_tos.
|
||||
(output_actions): Output conflict tables, also.
|
||||
(output_skeleton): Output b4_mergers definition.
|
||||
(prepare): Output b4_max_rhs_length definition.
|
||||
Use 'bison.glr' as default skeleton for GLR parsers.
|
||||
|
||||
* src/gram.c (glr_parser): New flag.
|
||||
(grammar_free): Call free_merger_functions.
|
||||
|
||||
* src/conflicts.c (count_rr_conflicts): Augment to optionally count
|
||||
all pairs of conflicting reductions, rather than just all tokens
|
||||
causing conflicts. Needed to size conflict tables.
|
||||
(conflicts_output): Modify call to count_rr_conflicts for new
|
||||
interface.
|
||||
(conflicts_print): Ditto.
|
||||
(count_total_conflicts): New function.
|
||||
|
||||
* src/reader.h (merger_list): New type.
|
||||
(merge_functions): New variable.
|
||||
|
||||
* src/lex.h (tok_dprec, tok_merge): New token types.
|
||||
|
||||
* src/gram.h (rule_s): Add dprec and merger fields.
|
||||
(glr_parser): New flag.
|
||||
|
||||
* src/conflicts.h (count_total_conflicts): New function.
|
||||
|
||||
* src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
|
||||
|
||||
* doc/bison.texinfo (Generalized LR Parsing): New section.
|
||||
(GLR Parsers): New section.
|
||||
(Language and Grammar): Mention GLR parsing.
|
||||
(Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
|
||||
Correct typo ("tge" -> "the").
|
||||
|
||||
* data/bison.glr: New skeleton for GLR parsing.
|
||||
|
||||
* tests/cxx-gram.at: New tests for GLR parsing.
|
||||
|
||||
* tests/testsuite.at: Include cxx-gram.at.
|
||||
|
||||
* tests/Makefile.am: Add cxx-gram.at.
|
||||
|
||||
* src/parse-gram.y:
|
||||
|
||||
* src/scan-gram.l: Add %dprec, %glr-parser, %merge.
|
||||
|
||||
* src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
|
||||
2002-06-27 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* src/options.h, src/options.c: Remove.
|
||||
* src/getargs.c (short_options, long_options): New.
|
||||
|
||||
8
NEWS
8
NEWS
@@ -3,6 +3,14 @@ Bison News
|
||||
|
||||
Changes in version 1.49b:
|
||||
|
||||
* GLR parsing
|
||||
The declaration
|
||||
%glr-parser
|
||||
causes Bison to produce a Generalized LR (GLR) parser, capable of handling
|
||||
almost any context-free grammar, ambiguous or not. The new declarations
|
||||
%dprec and %merge on grammar rules allow parse-time resolution of
|
||||
ambiguities. Contributed by Paul Hilfinger.
|
||||
|
||||
* Output Directory
|
||||
When not in Yacc compatibility mode, when the output file was not
|
||||
specified, runnning `bison foo/bar.y' created `foo/bar.c'. It
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
## 02111-1307 USA
|
||||
|
||||
dist_pkgdata_DATA = yacc.c lalr1.cc
|
||||
dist_pkgdata_DATA = yacc.c lalr1.cc glr.c
|
||||
|
||||
m4sugardir = $(pkgdatadir)/m4sugar
|
||||
dist_m4sugar_DATA = m4sugar/m4sugar.m4 m4sugar/version.m4
|
||||
|
||||
@@ -282,6 +282,7 @@ The Bison Parser Algorithm
|
||||
* Parser States:: The parser is a finite-state-machine with stack.
|
||||
* Reduce/Reduce:: When two rules are applicable in the same situation.
|
||||
* Mystery Conflicts:: Reduce/reduce conflicts that look unjustified.
|
||||
* Generalized LR Parsing:: Parsing arbitrary context-free grammars.
|
||||
* Stack Overflow:: What happens when stack gets full. How to avoid it.
|
||||
|
||||
Operator Precedence
|
||||
@@ -388,6 +389,7 @@ use Bison or Yacc, we suggest you start by reading this chapter carefully.
|
||||
a semantic value (the value of an integer,
|
||||
the name of an identifier, etc.).
|
||||
* Semantic Actions:: Each rule can have an action containing C code.
|
||||
* GLR Parsers:: Writing parsers for general context-free languages
|
||||
* Locations Overview:: Tracking Locations.
|
||||
* Bison Parser:: What are Bison's input and output,
|
||||
how is the output used?
|
||||
@@ -418,8 +420,12 @@ specify the language Algol 60. Any grammar expressed in BNF is a
|
||||
context-free grammar. The input to Bison is essentially machine-readable
|
||||
BNF.
|
||||
|
||||
Not all context-free languages can be handled by Bison, only those
|
||||
that are LALR(1). In brief, this means that it must be possible to
|
||||
@cindex LALR(1) grammars
|
||||
@cindex LR(1) grammars
|
||||
There are various important subclasses of context-free grammar. Although it
|
||||
can handle almost all context-free grammars, Bison is optimized for what
|
||||
are called LALR(1) grammars.
|
||||
In brief, in these grammars, it must be possible to
|
||||
tell how to parse any portion of an input string with just a single
|
||||
token of look-ahead. Strictly speaking, that is a description of an
|
||||
LR(1) grammar, and LALR(1) involves additional restrictions that are
|
||||
@@ -427,6 +433,24 @@ hard to explain simply; but it is rare in actual practice to find an
|
||||
LR(1) grammar that fails to be LALR(1). @xref{Mystery Conflicts, ,
|
||||
Mysterious Reduce/Reduce Conflicts}, for more information on this.
|
||||
|
||||
@cindex GLR parsing
|
||||
@cindex generalized LR (GLR) parsing
|
||||
@cindex ambiguous grammars
|
||||
@cindex non-deterministic parsing
|
||||
Parsers for LALR(1) grammars are @dfn{deterministic}, meaning roughly that
|
||||
the next grammar rule to apply at any point in the input is uniquely
|
||||
determined by the preceding input and a fixed, finite portion (called
|
||||
a @dfn{look-ahead}) of the remaining input.
|
||||
A context-free grammar can be @dfn{ambiguous}, meaning that
|
||||
there are multiple ways to apply the grammar rules to get the some inputs.
|
||||
Even unambiguous grammars can be @dfn{non-deterministic}, meaning that no
|
||||
fixed look-ahead always suffices to determine the next grammar rule to apply.
|
||||
With the proper declarations, Bison is also able to parse these more general
|
||||
context-free grammars, using a technique known as GLR parsing (for
|
||||
Generalized LR). Bison's GLR parsers are able to handle any context-free
|
||||
grammar for which the number of possible parses of any given string
|
||||
is finite.
|
||||
|
||||
@cindex symbols (abstract)
|
||||
@cindex token
|
||||
@cindex syntactic grouping
|
||||
@@ -632,6 +656,180 @@ expr: expr '+' expr @{ $$ = $1 + $3; @}
|
||||
The action says how to produce the semantic value of the sum expression
|
||||
from the values of the two subexpressions.
|
||||
|
||||
@node GLR Parsers
|
||||
@section Writing GLR Parsers
|
||||
@cindex GLR parsing
|
||||
@cindex generalized LR (GLR) parsing
|
||||
@findex %glr-parser
|
||||
@cindex conflicts
|
||||
@cindex shift/reduce conflicts
|
||||
|
||||
In some grammars, there will be cases where Bison's standard LALR(1)
|
||||
parsing algorithm cannot decide whether to apply a certain grammar rule
|
||||
at a given point. That is, it may not be able to decide (on the basis
|
||||
of the input read so far) which of two possible reductions (applications
|
||||
of a grammar rule) applies, or whether to apply a reduction or read more
|
||||
of the input and apply a reduction later in the input. These are known
|
||||
respectively as @dfn{reduce/reduce} conflicts (@pxref{Reduce/Reduce}),
|
||||
and @dfn{shift/reduce} conflicts (@pxref{Shift/Reduce}).
|
||||
|
||||
To use a grammar that is not easily modified to be LALR(1), a more
|
||||
general parsing algorithm is sometimes necessary. If you include
|
||||
@code{%glr-parser} among the Bison declarations in your file
|
||||
(@pxref{Grammar Outline}), the result will be a Generalized LR (GLR)
|
||||
parser. These parsers handle Bison grammars that contain no unresolved
|
||||
conflicts (i.e., after applying precedence declarations) identically to
|
||||
LALR(1) parsers. However, when faced with unresolved shift/reduce and
|
||||
reduce/reduce conflicts, GLR parsers use the simple expedient of doing
|
||||
both, effectively cloning the parser to follow both possibilities. Each
|
||||
of the resulting parsers can again split, so that at any given time,
|
||||
there can be any number of possible parses being explored. The parsers
|
||||
proceed in lockstep; that is, all of them consume (shift) a given input
|
||||
symbol before any of them proceed to the next. Each of the cloned
|
||||
parsers eventually meets one of two possible fates: either it runs into
|
||||
a parsing error, in which case it simply vanishes, or it merges with
|
||||
another parser, because the two of them have reduced the input to an
|
||||
identical set of symbols.
|
||||
|
||||
During the time that there are multiple parsers, semantic actions are
|
||||
recorded, but not performed. When a parser disappears, its recorded
|
||||
semantic actions disappear as well, and are never performed. When a
|
||||
reduction makes two parsers identical, causing them to merge, Bison
|
||||
records both sets of semantic actions. Whenever the last two parsers
|
||||
merge, reverting to the single-parser case, Bison resolves all the
|
||||
outstanding actions either by precedences given to the grammar rules
|
||||
involved, or by performing both actions, and then calling a designated
|
||||
user-defined function on the resulting values to produce an arbitrary
|
||||
merged result.
|
||||
|
||||
Let's consider an example, vastly simplified from C++.
|
||||
|
||||
@example
|
||||
%@{
|
||||
#define YYSTYPE const char*
|
||||
%@}
|
||||
|
||||
%token TYPENAME ID
|
||||
|
||||
%right '='
|
||||
%left '+'
|
||||
|
||||
%glr-parser
|
||||
|
||||
%%
|
||||
|
||||
prog :
|
||||
| prog stmt @{ printf ("\n"); @}
|
||||
;
|
||||
|
||||
stmt : expr ';' %dprec 1
|
||||
| decl %dprec 2
|
||||
;
|
||||
|
||||
expr : ID @{ printf ("%s ", $$); @}
|
||||
| TYPENAME '(' expr ')'
|
||||
@{ printf ("%s <cast> ", $1); @}
|
||||
| expr '+' expr @{ printf ("+ "); @}
|
||||
| expr '=' expr @{ printf ("= "); @}
|
||||
;
|
||||
|
||||
decl : TYPENAME declarator ';'
|
||||
@{ printf ("%s <declare> ", $1); @}
|
||||
| TYPENAME declarator '=' expr ';'
|
||||
@{ printf ("%s <init-declare> ", $1); @}
|
||||
;
|
||||
|
||||
declarator : ID @{ printf ("\"%s\" ", $1); @}
|
||||
| '(' declarator ')'
|
||||
;
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
This models a problematic part of the C++ grammar---the ambiguity between
|
||||
certain declarations and statements. For example,
|
||||
|
||||
@example
|
||||
T (x) = y+z;
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
parses as either an @code{expr} or a @code{stmt}
|
||||
(assuming that @samp{T} is recognized as a TYPENAME and @samp{x} as an ID).
|
||||
Bison detects this as a reduce/reduce conflict between the rules
|
||||
@code{expr : ID} and @code{declarator : ID}, which it cannot resolve at the
|
||||
time it encounters @code{x} in the example above. The two @code{%dprec}
|
||||
declarations, however, give precedence to interpreting the example as a
|
||||
@code{decl}, which implies that @code{x} is a declarator.
|
||||
The parser therefore prints
|
||||
|
||||
@example
|
||||
"x" y z + T <init-declare>
|
||||
@end example
|
||||
|
||||
Consider a different input string for this parser:
|
||||
|
||||
@example
|
||||
T (x) + y;
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
Here, there is no ambiguity (this cannot be parsed as a declaration).
|
||||
However, at the time the Bison parser encounters @code{x}, it does not
|
||||
have enough information to resolve the reduce/reduce conflict (again,
|
||||
between @code{x} as an @code{expr} or a @code{declarator}). In this
|
||||
case, no precedence declaration is used. Instead, the parser splits
|
||||
into two, one assuming that @code{x} is an @code{expr}, and the other
|
||||
assuming @code{x} is a @code{declarator}. The second of these parsers
|
||||
then vanishes when it sees @code{+}, and the parser prints
|
||||
|
||||
@example
|
||||
x T <cast> y +
|
||||
@end example
|
||||
|
||||
Suppose that instead of resolving the ambiguity, you wanted to see all
|
||||
the possibilities. For this purpose, we must @dfn{merge} the semantic
|
||||
actions of the two possible parsers, rather than choosing one over the
|
||||
other. To do so, you could change the declaration of @code{stmt} as
|
||||
follows:
|
||||
|
||||
@example
|
||||
stmt : expr ';' %merge <stmtMerge>
|
||||
| decl %merge <stmtMerge>
|
||||
;
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
|
||||
and define the @code{stmtMerge} function as:
|
||||
|
||||
@example
|
||||
static YYSTYPE stmtMerge (YYSTYPE x0, YYSTYPE x1)
|
||||
@{
|
||||
printf ("<OR> ");
|
||||
return "";
|
||||
@}
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
with an accompanying forward declaration
|
||||
in the C declarations at the beginning of the file:
|
||||
|
||||
@example
|
||||
%@{
|
||||
#define YYSTYPE const char*
|
||||
static YYSTYPE stmtMerge (YYSTYPE x0, YYSTYPE x1);
|
||||
%@}
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
With these declarations, the resulting parser will parse the first example
|
||||
as both an @code{expr} and a @code{decl}, and print
|
||||
|
||||
@example
|
||||
"x" y z + T <init-declare> x T <cast> y z + = <OR>
|
||||
@end example
|
||||
|
||||
|
||||
@node Locations Overview
|
||||
@section Locations
|
||||
@cindex location
|
||||
@@ -2913,7 +3111,7 @@ the location of the grouping (the result of the computation). The second one
|
||||
is an array holding locations of all right hand side elements of the rule
|
||||
being matched. The last one is the size of the right hand side rule.
|
||||
|
||||
By default, it is defined this way:
|
||||
By default, it is defined this way for simple LALR(1) parsers:
|
||||
|
||||
@example
|
||||
@group
|
||||
@@ -2925,6 +3123,19 @@ By default, it is defined this way:
|
||||
@end group
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
and like this for GLR parsers:
|
||||
|
||||
@example
|
||||
@group
|
||||
#define YYLLOC_DEFAULT(Current, Rhs, N) \
|
||||
Current.first_line = YYRHSLOC(Rhs,1).first_line; \
|
||||
Current.first_column = YYRHSLOC(Rhs,1).first_column; \
|
||||
Current.last_line = YYRHSLOC(Rhs,N).last_line; \
|
||||
Current.last_column = YYRHSLOC(Rhs,N).last_column;
|
||||
@end group
|
||||
@end example
|
||||
|
||||
When defining @code{YYLLOC_DEFAULT}, you should consider that:
|
||||
|
||||
@itemize @bullet
|
||||
@@ -3890,6 +4101,7 @@ Return immediately from @code{yyparse}, indicating success.
|
||||
@findex YYBACKUP
|
||||
Unshift a token. This macro is allowed only for rules that reduce
|
||||
a single value, and only when there is no look-ahead token.
|
||||
It is also disallowed in GLR parsers.
|
||||
It installs a look-ahead token with token type @var{token} and
|
||||
semantic value @var{value}; then it discards the value that was
|
||||
going to be reduced by this rule.
|
||||
@@ -4030,6 +4242,7 @@ This kind of parser is known in the literature as a bottom-up parser.
|
||||
* Parser States:: The parser is a finite-state-machine with stack.
|
||||
* Reduce/Reduce:: When two rules are applicable in the same situation.
|
||||
* Mystery Conflicts:: Reduce/reduce conflicts that look unjustified.
|
||||
* Generalized LR Parsing:: Parsing arbitrary context-free grammars.
|
||||
* Stack Overflow:: What happens when stack gets full. How to avoid it.
|
||||
@end menu
|
||||
|
||||
@@ -4624,6 +4837,82 @@ return_spec:
|
||||
;
|
||||
@end example
|
||||
|
||||
@node Generalized LR Parsing
|
||||
@section Generalized LR (GLR) Parsing
|
||||
@cindex GLR parsing
|
||||
@cindex generalized LR (GLR) parsing
|
||||
@cindex ambiguous grammars
|
||||
@cindex non-deterministic parsing
|
||||
|
||||
Bison produces @emph{deterministic} parsers that choose uniquely
|
||||
when to reduce and which reduction to apply
|
||||
based on a summary of the preceding input and on one extra token of lookahead.
|
||||
As a result, normal Bison handles a proper subset of the family of
|
||||
context-free languages.
|
||||
Ambiguous grammars, since they have strings with more than one possible
|
||||
sequence of reductions cannot have deterministic parsers in this sense.
|
||||
The same is true of languages that require more than one symbol of
|
||||
lookahead, since the parser lacks the information necessary to make a
|
||||
decision at the point it must be made in a shift-reduce parser.
|
||||
Finally, as previously mentioned (@pxref{Mystery Conflicts}),
|
||||
there are languages where Bison's particular choice of how to
|
||||
summarize the input seen so far loses necessary information.
|
||||
|
||||
When you use the @samp{%glr-parser} declaration in your grammar file,
|
||||
Bison generates a parser that uses a different algorithm, called
|
||||
Generalized LR (or GLR). A Bison GLR parser uses the same basic
|
||||
algorithm for parsing as an ordinary Bison parser, but behaves
|
||||
differently in cases where there is a shift-reduce conflict that has not
|
||||
been resolved by precedence rules (@pxref{Precedence}) or a
|
||||
reduce-reduce conflict. When a GLR parser encounters such a situation, it
|
||||
effectively @emph{splits} into a several parsers, one for each possible
|
||||
shift or reduction. These parsers then proceed as usual, consuming
|
||||
tokens in lock-step. Some of the stacks may encounter other conflicts
|
||||
and split further, with the result that instead of a sequence of states,
|
||||
a Bison GLR parsing stack is what is in effect a tree of states.
|
||||
|
||||
In effect, each stack represents a guess as to what the proper parse
|
||||
is. Additional input may indicate that a guess was wrong, in which case
|
||||
the appropriate stack silently disappears. Otherwise, the semantics
|
||||
actions generated in each stack are saved, rather than being executed
|
||||
immediately. When a stack disappears, its saved semantic actions never
|
||||
get executed. When a reduction causes two stacks to become equivalent,
|
||||
their sets of semantic actions are both saved with the state that
|
||||
results from the reduction. We say that two stacks are equivalent
|
||||
when they both represent the same sequence of states,
|
||||
and each pair of corresponding states represents a
|
||||
grammar symbol that produces the same segment of the input token
|
||||
stream.
|
||||
|
||||
Whenever the parser makes a transition from having multiple
|
||||
states to having one, it reverts to the normal LALR(1) parsing
|
||||
algorithm, after resolving and executing the saved-up actions.
|
||||
At this transition, some of the states on the stack will have semantic
|
||||
values that are sets (actually multisets) of possible actions. The
|
||||
parser tries to pick one of the actions by first finding one whose rule
|
||||
has the highest dynamic precedence, as set by the @samp{%dprec}
|
||||
declaration. Otherwise, if the alternative actions are not ordered by
|
||||
precedence, but there the same merging function is declared for both
|
||||
rules by the @samp{%merge} declaration,
|
||||
Bison resolves and evaluates both and then calls the merge function on
|
||||
the result. Otherwise, it reports an ambiguity.
|
||||
|
||||
It is possible to use a data structure for the GLR parsing tree that
|
||||
permits the processing of any LALR(1) grammar in linear time (in the
|
||||
size of the input), any unambiguous (not necessarily LALR(1)) grammar in
|
||||
quadratic worst-case time, and any general (possibly ambiguous)
|
||||
context-free grammar in cubic worst-case time. However, Bison currently
|
||||
uses a simpler data structure that requires time proportional to the
|
||||
length of the input times the maximum number of stacks required for any
|
||||
prefix of the input. Thus, really ambiguous or non-deterministic
|
||||
grammars can require exponential time and space to process. Such badly
|
||||
behaving examples, however, are not generally of practical interest.
|
||||
Usually, non-determinism in a grammar is local---the parser is ``in
|
||||
doubt'' only for a few tokens at a time. Therefore, the current data
|
||||
structure should generally be adequate. On LALR(1) portions of a
|
||||
grammar, in particular, it is only slightly slower than with the default
|
||||
Bison parser.
|
||||
|
||||
@node Stack Overflow
|
||||
@section Stack Overflow, and How to Avoid It
|
||||
@cindex stack overflow
|
||||
@@ -5912,10 +6201,17 @@ Equip the parser for debugging. @xref{Decl Summary}.
|
||||
Bison declaration to create a header file meant for the scanner.
|
||||
@xref{Decl Summary}.
|
||||
|
||||
@item %dprec
|
||||
Bison declaration to assign a precedence to a rule that is used at parse
|
||||
time to resolve reduce/reduce conflicts. @xref{GLR Parsers}.
|
||||
|
||||
@item %file-prefix="@var{prefix}"
|
||||
Bison declaration to set tge prefix of the output files. @xref{Decl
|
||||
Bison declaration to set the prefix of the output files. @xref{Decl
|
||||
Summary}.
|
||||
|
||||
@item %glr-parser
|
||||
Bison declaration to produce a GLR parser. @xref{GLR Parsers}.
|
||||
|
||||
@c @item %source-extension
|
||||
@c Bison declaration to specify the generated parser output file extension.
|
||||
@c @xref{Decl Summary}.
|
||||
@@ -5928,6 +6224,12 @@ Summary}.
|
||||
Bison declaration to assign left associativity to token(s).
|
||||
@xref{Precedence Decl, ,Operator Precedence}.
|
||||
|
||||
@item %merge
|
||||
Bison declaration to assign a merging function to a rule. If there is a
|
||||
reduce/reduce conflict with a rule having the same merging function, the
|
||||
function is applied to the two semantic values to get a single result.
|
||||
@xref{GLR Parsers}.
|
||||
|
||||
@item %name-prefix="@var{prefix}"
|
||||
Bison declaration to rename the external symbols. @xref{Decl Summary}.
|
||||
|
||||
@@ -6040,6 +6342,13 @@ machine. In the case of the parser, the input is the language being
|
||||
parsed, and the states correspond to various stages in the grammar
|
||||
rules. @xref{Algorithm, ,The Bison Parser Algorithm }.
|
||||
|
||||
@item Generalized LR (GLR)
|
||||
A parsing algorithm that can handle all context-free grammars, including those
|
||||
that are not LALR(1). It resolves situations that Bison's usual LALR(1)
|
||||
algorithm cannot by effectively splitting off multiple parsers, trying all
|
||||
possible parsers, and discarding those that fail in the light of additional
|
||||
right context. @xref{Generalized LR Parsing, ,Generalized LR Parsing}.
|
||||
|
||||
@item Grouping
|
||||
A language construct that is (in general) grammatically divisible;
|
||||
for example, `expression' or `declaration' in C.
|
||||
|
||||
102
po/de.po
102
po/de.po
@@ -6,7 +6,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: bison 1.35\n"
|
||||
"POT-Creation-Date: 2002-06-27 14:17+0200\n"
|
||||
"POT-Creation-Date: 2002-06-27 17:56-0700\n"
|
||||
"PO-Revision-Date: 2002-04-26 11:58:57+0200\n"
|
||||
"Last-Translator: Michael Piefel <piefel@informatik.hu-berlin.de>\n"
|
||||
"Language-Team: German <de@li.org>\n"
|
||||
@@ -47,49 +47,49 @@ msgstr "Konflikt in Zustand %d zwischen Regel %d and Token %s wurde %s.\n"
|
||||
msgid " Conflict between rule %d and token %s resolved as an error"
|
||||
msgstr "Konflikt in Zustand %d zwischen Regel %d and Token %s wurde %s.\n"
|
||||
|
||||
#: src/conflicts.c:375
|
||||
#: src/conflicts.c:378
|
||||
#, c-format
|
||||
msgid "%d shift/reduce conflict"
|
||||
msgid_plural "%d shift/reduce conflicts"
|
||||
msgstr[0] "%d Schiebe/Reduziere-Konflikt"
|
||||
msgstr[1] "%d Schiebe/Reduziere-Konflikte"
|
||||
|
||||
#: src/conflicts.c:382
|
||||
#: src/conflicts.c:385
|
||||
msgid "and"
|
||||
msgstr "und"
|
||||
|
||||
#: src/conflicts.c:388
|
||||
#: src/conflicts.c:391
|
||||
#, c-format
|
||||
msgid "%d reduce/reduce conflict"
|
||||
msgid_plural "%d reduce/reduce conflicts"
|
||||
msgstr[0] "%d Reduziere/Reduziere-Konflikt"
|
||||
msgstr[1] "%d Reduziere/Reduziere-Konflikte"
|
||||
|
||||
#: src/conflicts.c:413
|
||||
#: src/conflicts.c:416
|
||||
#, c-format
|
||||
msgid "State %d contains "
|
||||
msgstr "Zustand %d enthält "
|
||||
|
||||
#: src/conflicts.c:460
|
||||
#: src/conflicts.c:487
|
||||
msgid "conflicts: "
|
||||
msgstr "Konflikte: "
|
||||
|
||||
#: src/conflicts.c:462
|
||||
#: src/conflicts.c:489
|
||||
#, c-format
|
||||
msgid " %d shift/reduce"
|
||||
msgstr " %d Schiebe/Reduziere"
|
||||
|
||||
#: src/conflicts.c:466
|
||||
#: src/conflicts.c:493
|
||||
#, c-format
|
||||
msgid " %d reduce/reduce"
|
||||
msgstr " %d Reduziere/Reduziere"
|
||||
|
||||
#: src/conflicts.c:471
|
||||
#: src/conflicts.c:498
|
||||
#, c-format
|
||||
msgid "%s contains "
|
||||
msgstr "%s enthält "
|
||||
|
||||
#: src/conflicts.c:478
|
||||
#: src/conflicts.c:505
|
||||
#, c-format
|
||||
msgid "expected %d shift/reduce conflict\n"
|
||||
msgid_plural "expected %d shift/reduce conflicts\n"
|
||||
@@ -105,16 +105,16 @@ msgstr "kann Datei »%s« nicht öffnen"
|
||||
msgid "cannot close file"
|
||||
msgstr "kann Datei nicht schließen"
|
||||
|
||||
#: src/getargs.c:99
|
||||
#: src/getargs.c:100
|
||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
||||
msgstr "GNU bison generiert Parser für LALR(1)-Grammatiken.\n"
|
||||
|
||||
#: src/getargs.c:103
|
||||
#: src/getargs.c:104
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION]... FILE\n"
|
||||
msgstr "Aufruf: %s [OPTION]... DATEI\n"
|
||||
|
||||
#: src/getargs.c:107
|
||||
#: src/getargs.c:108
|
||||
msgid ""
|
||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
||||
@@ -124,7 +124,7 @@ msgstr ""
|
||||
"für die äquivalente kurze Option erforderlich. Ähnlich für optionale "
|
||||
"Argumente.\n"
|
||||
|
||||
#: src/getargs.c:113
|
||||
#: src/getargs.c:114
|
||||
msgid ""
|
||||
"Operation modes:\n"
|
||||
" -h, --help display this help and exit\n"
|
||||
@@ -136,7 +136,7 @@ msgstr ""
|
||||
" -v, --version Versionsinformation anzeigen und beenden.\n"
|
||||
" -y, --yacc POSIX' yacc emulieren\n"
|
||||
|
||||
#: src/getargs.c:120
|
||||
#: src/getargs.c:121
|
||||
msgid ""
|
||||
"Parser:\n"
|
||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
||||
@@ -158,7 +158,7 @@ msgstr ""
|
||||
" -k, --token-table einer Tabellen der Token-Namen mit "
|
||||
"einschließen\n"
|
||||
|
||||
#: src/getargs.c:132
|
||||
#: src/getargs.c:133
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Output:\n"
|
||||
@@ -178,7 +178,7 @@ msgstr ""
|
||||
" -g, --graph auch eine VCG-Beschreibung des Automaten "
|
||||
"herstellen\n"
|
||||
|
||||
#: src/getargs.c:143
|
||||
#: src/getargs.c:144
|
||||
msgid ""
|
||||
"THINGS is a list of comma separated words that can include:\n"
|
||||
" `state' describe the states\n"
|
||||
@@ -189,28 +189,28 @@ msgid ""
|
||||
" `none' disable the report\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:154
|
||||
#: src/getargs.c:155
|
||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
||||
msgstr ""
|
||||
"Berichten Sie Fehler (auf Englisch, mit LC_ALL=C) an <bug-bison@gnu.org>.\n"
|
||||
|
||||
#: src/getargs.c:168
|
||||
#: src/getargs.c:169
|
||||
#, c-format
|
||||
msgid "bison (GNU Bison) %s"
|
||||
msgstr "bison (GNU Bison) %s"
|
||||
|
||||
#: src/getargs.c:170
|
||||
#: src/getargs.c:171
|
||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:174
|
||||
#: src/getargs.c:175
|
||||
#, fuzzy, c-format
|
||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
||||
msgstr ""
|
||||
"Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002\n"
|
||||
"Free Software Foundation, Inc.\n"
|
||||
|
||||
#: src/getargs.c:176
|
||||
#: src/getargs.c:177
|
||||
msgid ""
|
||||
"This is free software; see the source for copying conditions. There is NO\n"
|
||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
||||
@@ -219,17 +219,17 @@ msgstr ""
|
||||
"gibt keine Garantie; auch nicht für VERKAUFBARKEIT oder FÜR SPEZIELLE "
|
||||
"ZWECKE.\n"
|
||||
|
||||
#: src/getargs.c:333
|
||||
#: src/getargs.c:334
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information.\n"
|
||||
msgstr "»%s --help« gibt weitere Informationen.\n"
|
||||
|
||||
#: src/getargs.c:340
|
||||
#: src/getargs.c:341
|
||||
#, c-format
|
||||
msgid "%s: no grammar file given\n"
|
||||
msgstr "%s: keine Grammatik-Datei angegeben\n"
|
||||
|
||||
#: src/getargs.c:344
|
||||
#: src/getargs.c:345
|
||||
#, c-format
|
||||
msgid "%s: extra arguments ignored after `%s'\n"
|
||||
msgstr "%s: zusätzliche Argumente nach »%s« werden ignoriert\n"
|
||||
@@ -317,34 +317,64 @@ msgstr " auf der linken Seite:"
|
||||
msgid " on right:"
|
||||
msgstr " auf der rechten Seite:"
|
||||
|
||||
#: src/reader.c:52
|
||||
#: src/reader.c:53
|
||||
#, c-format
|
||||
msgid "multiple %s declarations"
|
||||
msgstr "mehr als eine %s-Deklaration"
|
||||
|
||||
#: src/reader.c:202
|
||||
#: src/reader.c:139
|
||||
#, c-format
|
||||
msgid "result type clash on merge function %s: `%s' vs. `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:257
|
||||
#, c-format
|
||||
msgid "rule given for %s, which is a token"
|
||||
msgstr "Regel für %s vorhanden, welches aber ein Token ist"
|
||||
|
||||
#: src/reader.c:227
|
||||
#: src/reader.c:282
|
||||
#, c-format
|
||||
msgid "type clash (`%s' `%s') on default action"
|
||||
msgstr "Typkonflikt (»%s« »%s«) bei Default-Aktion"
|
||||
|
||||
#: src/reader.c:235
|
||||
#: src/reader.c:290
|
||||
msgid "empty rule for typed nonterminal, and no action"
|
||||
msgstr "leere Regel für Nicht-Terminal mit Typ und keine Aktion"
|
||||
|
||||
#: src/reader.c:306
|
||||
#: src/reader.c:361
|
||||
msgid "two @prec's in a row"
|
||||
msgstr "zwei @prec-Anweisungen nacheinander"
|
||||
|
||||
#: src/reader.c:447
|
||||
#: src/reader.c:371
|
||||
#, c-format
|
||||
msgid "%%dprec affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:373
|
||||
#, c-format
|
||||
msgid "%%dprec must be followed by positive number"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:375
|
||||
#, c-format
|
||||
msgid "only one %%dprec allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:386
|
||||
#, c-format
|
||||
msgid "%%merge affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:388
|
||||
#, c-format
|
||||
msgid "only one %%merge allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:531
|
||||
msgid "no rules in the input grammar"
|
||||
msgstr "Eingabegrammatik enthält keine Regeln"
|
||||
|
||||
#: src/reader.c:479
|
||||
#: src/reader.c:563
|
||||
#, c-format
|
||||
msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
||||
msgstr "zu viele Symbole (Token plus Nicht-Terminale); Maximum %d"
|
||||
@@ -407,22 +437,22 @@ msgstr[1] "%d nutzlose Regeln"
|
||||
msgid "Start symbol %s does not derive any sentence"
|
||||
msgstr "es lassen sich keine Sätze vom Startsymbol %s ableiten"
|
||||
|
||||
#: scan-gram.l:556
|
||||
#: scan-gram.l:559
|
||||
#, c-format
|
||||
msgid "$$ of `%s' has no declared type"
|
||||
msgstr "$$ von »%s« hat keinen deklarierten Typ"
|
||||
|
||||
#: scan-gram.l:573 scan-gram.l:660
|
||||
#: scan-gram.l:576 scan-gram.l:663
|
||||
#, fuzzy, c-format
|
||||
msgid "invalid value: %s%d"
|
||||
msgstr "unzulässiger @-Wert"
|
||||
|
||||
#: scan-gram.l:580
|
||||
#: scan-gram.l:583
|
||||
#, c-format
|
||||
msgid "$%d of `%s' has no declared type"
|
||||
msgstr "$%d von »%s« hat keinen deklarierten Typ"
|
||||
|
||||
#: scan-gram.l:591 scan-gram.l:608 scan-gram.l:667 scan-gram.l:684
|
||||
#: scan-gram.l:594 scan-gram.l:611 scan-gram.l:670 scan-gram.l:687
|
||||
#, c-format
|
||||
msgid "%s is invalid"
|
||||
msgstr "%s ist unzulässig"
|
||||
|
||||
102
po/es.po
102
po/es.po
@@ -29,7 +29,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: GNU bison 1.35\n"
|
||||
"POT-Creation-Date: 2002-06-27 14:17+0200\n"
|
||||
"POT-Creation-Date: 2002-06-27 17:56-0700\n"
|
||||
"PO-Revision-Date: 2002-04-03 10:19+0200\n"
|
||||
"Last-Translator: Nicolás García-Pedrajas <ngarcia-pedrajas@acm.org>\n"
|
||||
"Language-Team: Spanish <es@li.org>\n"
|
||||
@@ -83,30 +83,30 @@ msgstr ""
|
||||
"El conflicto en el estado %d entre la regla %d y el terminal %s se resuelve "
|
||||
"como %s.\n"
|
||||
|
||||
#: src/conflicts.c:375
|
||||
#: src/conflicts.c:378
|
||||
#, c-format
|
||||
msgid "%d shift/reduce conflict"
|
||||
msgid_plural "%d shift/reduce conflicts"
|
||||
msgstr[0] "%d conflicto desplazamiento/reducción"
|
||||
msgstr[1] "%d conflictos desplazamiento/reducción"
|
||||
|
||||
#: src/conflicts.c:382
|
||||
#: src/conflicts.c:385
|
||||
msgid "and"
|
||||
msgstr "y"
|
||||
|
||||
#: src/conflicts.c:388
|
||||
#: src/conflicts.c:391
|
||||
#, c-format
|
||||
msgid "%d reduce/reduce conflict"
|
||||
msgid_plural "%d reduce/reduce conflicts"
|
||||
msgstr[0] " %d conflicto reducción/reducción"
|
||||
msgstr[1] " %d conflictos reducción/reducción"
|
||||
|
||||
#: src/conflicts.c:413
|
||||
#: src/conflicts.c:416
|
||||
#, c-format
|
||||
msgid "State %d contains "
|
||||
msgstr "El estado %d contiene"
|
||||
|
||||
#: src/conflicts.c:460
|
||||
#: src/conflicts.c:487
|
||||
msgid "conflicts: "
|
||||
msgstr "conflictos: "
|
||||
|
||||
@@ -122,7 +122,7 @@ msgstr "conflictos: "
|
||||
# ok
|
||||
# ngp
|
||||
#
|
||||
#: src/conflicts.c:462
|
||||
#: src/conflicts.c:489
|
||||
#, c-format
|
||||
msgid " %d shift/reduce"
|
||||
msgstr " %d desplazamiento(s)/reducción(ones)"
|
||||
@@ -139,17 +139,17 @@ msgstr " %d desplazamiento(s)/reducci
|
||||
#
|
||||
# ok
|
||||
# ngp
|
||||
#: src/conflicts.c:466
|
||||
#: src/conflicts.c:493
|
||||
#, c-format
|
||||
msgid " %d reduce/reduce"
|
||||
msgstr " %d reducción(ones)/reducción(ones)"
|
||||
|
||||
#: src/conflicts.c:471
|
||||
#: src/conflicts.c:498
|
||||
#, c-format
|
||||
msgid "%s contains "
|
||||
msgstr "%s contiene "
|
||||
|
||||
#: src/conflicts.c:478
|
||||
#: src/conflicts.c:505
|
||||
#, c-format
|
||||
msgid "expected %d shift/reduce conflict\n"
|
||||
msgid_plural "expected %d shift/reduce conflicts\n"
|
||||
@@ -165,16 +165,16 @@ msgstr "no se puede abrir el fichero `%s'"
|
||||
msgid "cannot close file"
|
||||
msgstr "no se puede cerrar el fichero"
|
||||
|
||||
#: src/getargs.c:99
|
||||
#: src/getargs.c:100
|
||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
||||
msgstr "GNU bison genera analizadores para gramáticas LALR(1).\n"
|
||||
|
||||
#: src/getargs.c:103
|
||||
#: src/getargs.c:104
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION]... FILE\n"
|
||||
msgstr "Utilización: %s [OPCIÓN]... FICHERO\n"
|
||||
|
||||
#: src/getargs.c:107
|
||||
#: src/getargs.c:108
|
||||
msgid ""
|
||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
||||
@@ -184,7 +184,7 @@ msgstr ""
|
||||
"para la opción corta equivalente también. De igual forma para los argumentos "
|
||||
"opcionales.\n"
|
||||
|
||||
#: src/getargs.c:113
|
||||
#: src/getargs.c:114
|
||||
msgid ""
|
||||
"Operation modes:\n"
|
||||
" -h, --help display this help and exit\n"
|
||||
@@ -196,7 +196,7 @@ msgstr ""
|
||||
" -V, --version informa de la versión y termina\n"
|
||||
" -y, --yacc emula POSIX yacc\n"
|
||||
|
||||
#: src/getargs.c:120
|
||||
#: src/getargs.c:121
|
||||
msgid ""
|
||||
"Parser:\n"
|
||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
||||
@@ -216,7 +216,7 @@ msgstr ""
|
||||
" -n, --no-parser solamente genera las tablas\n"
|
||||
" --k, --token-table incluye una tabla de nombres de terminales\n"
|
||||
|
||||
#: src/getargs.c:132
|
||||
#: src/getargs.c:133
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Output:\n"
|
||||
@@ -237,7 +237,7 @@ msgstr ""
|
||||
" -g, --graph también produce una descripción en VCG del "
|
||||
"automaton\n"
|
||||
|
||||
#: src/getargs.c:143
|
||||
#: src/getargs.c:144
|
||||
msgid ""
|
||||
"THINGS is a list of comma separated words that can include:\n"
|
||||
" `state' describe the states\n"
|
||||
@@ -248,27 +248,27 @@ msgid ""
|
||||
" `none' disable the report\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:154
|
||||
#: src/getargs.c:155
|
||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
||||
msgstr "Informe de los errores a <bug-bison@gnu.org>.\n"
|
||||
|
||||
#: src/getargs.c:168
|
||||
#: src/getargs.c:169
|
||||
#, c-format
|
||||
msgid "bison (GNU Bison) %s"
|
||||
msgstr "bison (GNU bison) %s"
|
||||
|
||||
#: src/getargs.c:170
|
||||
#: src/getargs.c:171
|
||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:174
|
||||
#: src/getargs.c:175
|
||||
#, fuzzy, c-format
|
||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
||||
msgstr ""
|
||||
"Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002\n"
|
||||
"Free Software Foundation, Inc.\n"
|
||||
|
||||
#: src/getargs.c:176
|
||||
#: src/getargs.c:177
|
||||
msgid ""
|
||||
"This is free software; see the source for copying conditions. There is NO\n"
|
||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
||||
@@ -278,20 +278,20 @@ msgstr ""
|
||||
"NINGUNA garantía; ni siquiera para COMERCIALIZACIÓN o ADAPTACIÓN PARA UN\n"
|
||||
"USO PARTICULAR\n"
|
||||
|
||||
#: src/getargs.c:333
|
||||
#: src/getargs.c:334
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information.\n"
|
||||
msgstr "Pruebe `%s --help' para más información.\n"
|
||||
|
||||
# Me parece menos "computadora" decir "ningún fichero de gramática" - cll
|
||||
#
|
||||
#: src/getargs.c:340
|
||||
#: src/getargs.c:341
|
||||
#, c-format
|
||||
msgid "%s: no grammar file given\n"
|
||||
msgstr "%s: no se ha especificado ningún fichero de gramática\n"
|
||||
|
||||
# Ignorar es no saber, to ignore es no hacer caso, que no es lo mismo. sv
|
||||
#: src/getargs.c:344
|
||||
#: src/getargs.c:345
|
||||
#, c-format
|
||||
msgid "%s: extra arguments ignored after `%s'\n"
|
||||
msgstr "%s: los argumentos extra después de '%s' no se tendrán en cuenta\n"
|
||||
@@ -379,34 +379,64 @@ msgstr " en la izquierda:"
|
||||
msgid " on right:"
|
||||
msgstr " en la derecha:"
|
||||
|
||||
#: src/reader.c:52
|
||||
#: src/reader.c:53
|
||||
#, c-format
|
||||
msgid "multiple %s declarations"
|
||||
msgstr "múltiples declaraciones de %s"
|
||||
|
||||
#: src/reader.c:202
|
||||
#: src/reader.c:139
|
||||
#, c-format
|
||||
msgid "result type clash on merge function %s: `%s' vs. `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:257
|
||||
#, c-format
|
||||
msgid "rule given for %s, which is a token"
|
||||
msgstr "se ha dado una regla para %s, que es un terminal"
|
||||
|
||||
#: src/reader.c:227
|
||||
#: src/reader.c:282
|
||||
#, c-format
|
||||
msgid "type clash (`%s' `%s') on default action"
|
||||
msgstr "los tipos (`%s' `%s') no concuerdan en la acción por defecto"
|
||||
|
||||
#: src/reader.c:235
|
||||
#: src/reader.c:290
|
||||
msgid "empty rule for typed nonterminal, and no action"
|
||||
msgstr "regla vacía para un no terminal con tipo y no hay ninguna acción"
|
||||
|
||||
#: src/reader.c:306
|
||||
#: src/reader.c:361
|
||||
msgid "two @prec's in a row"
|
||||
msgstr "dos @prec en una línea"
|
||||
|
||||
#: src/reader.c:447
|
||||
#: src/reader.c:371
|
||||
#, c-format
|
||||
msgid "%%dprec affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:373
|
||||
#, c-format
|
||||
msgid "%%dprec must be followed by positive number"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:375
|
||||
#, c-format
|
||||
msgid "only one %%dprec allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:386
|
||||
#, c-format
|
||||
msgid "%%merge affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:388
|
||||
#, c-format
|
||||
msgid "only one %%merge allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:531
|
||||
msgid "no rules in the input grammar"
|
||||
msgstr "no hay reglas en la gramática de entrada"
|
||||
|
||||
#: src/reader.c:479
|
||||
#: src/reader.c:563
|
||||
#, c-format
|
||||
msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
||||
msgstr "demasiados símbolos (terminales y no terminales); máximo %d"
|
||||
@@ -469,22 +499,22 @@ msgstr[1] "%d reglas sin uso"
|
||||
msgid "Start symbol %s does not derive any sentence"
|
||||
msgstr "El símbolo de inicio (axioma) %s no deriva ninguna sentencia"
|
||||
|
||||
#: scan-gram.l:556
|
||||
#: scan-gram.l:559
|
||||
#, c-format
|
||||
msgid "$$ of `%s' has no declared type"
|
||||
msgstr "$$ de `%s' no tiene tipo declarado"
|
||||
|
||||
#: scan-gram.l:573 scan-gram.l:660
|
||||
#: scan-gram.l:576 scan-gram.l:663
|
||||
#, fuzzy, c-format
|
||||
msgid "invalid value: %s%d"
|
||||
msgstr "valor @ no válido"
|
||||
|
||||
#: scan-gram.l:580
|
||||
#: scan-gram.l:583
|
||||
#, c-format
|
||||
msgid "$%d of `%s' has no declared type"
|
||||
msgstr "$%d de `%s' no tiene tipo declarado"
|
||||
|
||||
#: scan-gram.l:591 scan-gram.l:608 scan-gram.l:667 scan-gram.l:684
|
||||
#: scan-gram.l:594 scan-gram.l:611 scan-gram.l:670 scan-gram.l:687
|
||||
#, c-format
|
||||
msgid "%s is invalid"
|
||||
msgstr "%s no es válido"
|
||||
|
||||
102
po/et.po
102
po/et.po
@@ -5,7 +5,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: bison 1.33b\n"
|
||||
"POT-Creation-Date: 2002-06-27 14:17+0200\n"
|
||||
"POT-Creation-Date: 2002-06-27 17:56-0700\n"
|
||||
"PO-Revision-Date: 2002-03-05 16:27+0200\n"
|
||||
"Last-Translator: Toomas Soome <tsoome@ut.ee>\n"
|
||||
"Language-Team: Estonian <et@li.org>\n"
|
||||
@@ -46,49 +46,49 @@ msgstr "Konflikt olekus %d reegli %d ja m
|
||||
msgid " Conflict between rule %d and token %s resolved as an error"
|
||||
msgstr "Konflikt olekus %d reegli %d ja märgi %s vahel lahendatud, kui %s.\n"
|
||||
|
||||
#: src/conflicts.c:375
|
||||
#: src/conflicts.c:378
|
||||
#, c-format
|
||||
msgid "%d shift/reduce conflict"
|
||||
msgid_plural "%d shift/reduce conflicts"
|
||||
msgstr[0] "%d nihutamine/redutseerimine konflikt"
|
||||
msgstr[1] "%d nihutamine/redutseerimine konflikti"
|
||||
|
||||
#: src/conflicts.c:382
|
||||
#: src/conflicts.c:385
|
||||
msgid "and"
|
||||
msgstr "ja"
|
||||
|
||||
#: src/conflicts.c:388
|
||||
#: src/conflicts.c:391
|
||||
#, c-format
|
||||
msgid "%d reduce/reduce conflict"
|
||||
msgid_plural "%d reduce/reduce conflicts"
|
||||
msgstr[0] "%d redutseerimine/redutseerimine konflikt"
|
||||
msgstr[1] "%d redutseerimine/redutseerimine konflikti"
|
||||
|
||||
#: src/conflicts.c:413
|
||||
#: src/conflicts.c:416
|
||||
#, c-format
|
||||
msgid "State %d contains "
|
||||
msgstr "Olek %d sisaldab "
|
||||
|
||||
#: src/conflicts.c:460
|
||||
#: src/conflicts.c:487
|
||||
msgid "conflicts: "
|
||||
msgstr "konfliktid: "
|
||||
|
||||
#: src/conflicts.c:462
|
||||
#: src/conflicts.c:489
|
||||
#, c-format
|
||||
msgid " %d shift/reduce"
|
||||
msgstr " %d nihutamine/redutseerimine"
|
||||
|
||||
#: src/conflicts.c:466
|
||||
#: src/conflicts.c:493
|
||||
#, c-format
|
||||
msgid " %d reduce/reduce"
|
||||
msgstr " %d redutseerimine/redutseerimine"
|
||||
|
||||
#: src/conflicts.c:471
|
||||
#: src/conflicts.c:498
|
||||
#, c-format
|
||||
msgid "%s contains "
|
||||
msgstr "%s sisaldab "
|
||||
|
||||
#: src/conflicts.c:478
|
||||
#: src/conflicts.c:505
|
||||
#, c-format
|
||||
msgid "expected %d shift/reduce conflict\n"
|
||||
msgid_plural "expected %d shift/reduce conflicts\n"
|
||||
@@ -104,16 +104,16 @@ msgstr "faili `%s' ei saa avada"
|
||||
msgid "cannot close file"
|
||||
msgstr "faili ei õnnestu sulgeda"
|
||||
|
||||
#: src/getargs.c:99
|
||||
#: src/getargs.c:100
|
||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
||||
msgstr "GNU bison genereerib parsereid LALR(1) grammatikatele.\n"
|
||||
|
||||
#: src/getargs.c:103
|
||||
#: src/getargs.c:104
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION]... FILE\n"
|
||||
msgstr "Kasuta: %s [VÕTI]...FAIL\n"
|
||||
|
||||
#: src/getargs.c:107
|
||||
#: src/getargs.c:108
|
||||
msgid ""
|
||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
||||
@@ -121,7 +121,7 @@ msgstr ""
|
||||
"Kui pikk võti näitab, et argument on kohustuslik, siis on see kohustuslik \n"
|
||||
"ka lühikese võtme korral. Sama ka vabalt valitavate võtmete korral.\n"
|
||||
|
||||
#: src/getargs.c:113
|
||||
#: src/getargs.c:114
|
||||
msgid ""
|
||||
"Operation modes:\n"
|
||||
" -h, --help display this help and exit\n"
|
||||
@@ -133,7 +133,7 @@ msgstr ""
|
||||
" -V, --version esita versiooniinfo ja lõpeta töö\n"
|
||||
" -y, --yacc emuleeri POSIX yacc\n"
|
||||
|
||||
#: src/getargs.c:120
|
||||
#: src/getargs.c:121
|
||||
msgid ""
|
||||
"Parser:\n"
|
||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
||||
@@ -153,7 +153,7 @@ msgstr ""
|
||||
" -n, --no-parser genereeri ainult tabelid\n"
|
||||
" -k, --token-table lisa ka sümbolite nimede tabel\n"
|
||||
|
||||
#: src/getargs.c:132
|
||||
#: src/getargs.c:133
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Output:\n"
|
||||
@@ -172,7 +172,7 @@ msgstr ""
|
||||
" -o, --output-file=FAIL jäta väljund FAILi\n"
|
||||
" -g, --graph loo automaadi kirjeldus VCG graafina\n"
|
||||
|
||||
#: src/getargs.c:143
|
||||
#: src/getargs.c:144
|
||||
msgid ""
|
||||
"THINGS is a list of comma separated words that can include:\n"
|
||||
" `state' describe the states\n"
|
||||
@@ -183,27 +183,27 @@ msgid ""
|
||||
" `none' disable the report\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:154
|
||||
#: src/getargs.c:155
|
||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
||||
msgstr "Teatage palun vigadest aadressil <bug-bison@gnu.org>.\n"
|
||||
|
||||
#: src/getargs.c:168
|
||||
#: src/getargs.c:169
|
||||
#, c-format
|
||||
msgid "bison (GNU Bison) %s"
|
||||
msgstr "bison (GNU Bison) %s"
|
||||
|
||||
#: src/getargs.c:170
|
||||
#: src/getargs.c:171
|
||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:174
|
||||
#: src/getargs.c:175
|
||||
#, fuzzy, c-format
|
||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
||||
msgstr ""
|
||||
"Autoriõigus 1984, 1986, 1989, 1992, 2000, 2001, 2002\n"
|
||||
"Free Software Foundation, Inc.\n"
|
||||
|
||||
#: src/getargs.c:176
|
||||
#: src/getargs.c:177
|
||||
msgid ""
|
||||
"This is free software; see the source for copying conditions. There is NO\n"
|
||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
||||
@@ -211,17 +211,17 @@ msgstr ""
|
||||
"See on vaba tarkvara; kopeerimistingimused leiate lähtetekstidest. Garantii\n"
|
||||
"PUUDUB; ka müügiks või mingil eesmärgil kasutamiseks.\n"
|
||||
|
||||
#: src/getargs.c:333
|
||||
#: src/getargs.c:334
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information.\n"
|
||||
msgstr "Lisainfo saamiseks proovige `%s --help'.\n"
|
||||
|
||||
#: src/getargs.c:340
|
||||
#: src/getargs.c:341
|
||||
#, c-format
|
||||
msgid "%s: no grammar file given\n"
|
||||
msgstr "%s: puudub grammatikafail\n"
|
||||
|
||||
#: src/getargs.c:344
|
||||
#: src/getargs.c:345
|
||||
#, c-format
|
||||
msgid "%s: extra arguments ignored after `%s'\n"
|
||||
msgstr "%s: ignoreerin lisaargumente peale `%s'\n"
|
||||
@@ -309,34 +309,64 @@ msgstr " vasakul:"
|
||||
msgid " on right:"
|
||||
msgstr " paremal:"
|
||||
|
||||
#: src/reader.c:52
|
||||
#: src/reader.c:53
|
||||
#, c-format
|
||||
msgid "multiple %s declarations"
|
||||
msgstr "korduvad %s deklaratsioonid"
|
||||
|
||||
#: src/reader.c:202
|
||||
#: src/reader.c:139
|
||||
#, c-format
|
||||
msgid "result type clash on merge function %s: `%s' vs. `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:257
|
||||
#, c-format
|
||||
msgid "rule given for %s, which is a token"
|
||||
msgstr "%s jaoks on antud reegel, aga see on märk"
|
||||
|
||||
#: src/reader.c:227
|
||||
#: src/reader.c:282
|
||||
#, c-format
|
||||
msgid "type clash (`%s' `%s') on default action"
|
||||
msgstr "vaikimisi tegevuse tüübikonflikt (`%s' `%s')"
|
||||
|
||||
#: src/reader.c:235
|
||||
#: src/reader.c:290
|
||||
msgid "empty rule for typed nonterminal, and no action"
|
||||
msgstr "tüübiga mitteterminalil on tühi reegel ja puudub tegevus"
|
||||
|
||||
#: src/reader.c:306
|
||||
#: src/reader.c:361
|
||||
msgid "two @prec's in a row"
|
||||
msgstr "kaks @prec ühel real"
|
||||
|
||||
#: src/reader.c:447
|
||||
#: src/reader.c:371
|
||||
#, c-format
|
||||
msgid "%%dprec affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:373
|
||||
#, c-format
|
||||
msgid "%%dprec must be followed by positive number"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:375
|
||||
#, c-format
|
||||
msgid "only one %%dprec allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:386
|
||||
#, c-format
|
||||
msgid "%%merge affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:388
|
||||
#, c-format
|
||||
msgid "only one %%merge allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:531
|
||||
msgid "no rules in the input grammar"
|
||||
msgstr "sisendgrammatikas pole reegleid"
|
||||
|
||||
#: src/reader.c:479
|
||||
#: src/reader.c:563
|
||||
#, c-format
|
||||
msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
||||
msgstr "liiga palju sümboleid (märgid ja mitteterminalid); maksimaalne on %d"
|
||||
@@ -399,22 +429,22 @@ msgstr[1] "%d kasutamata reeglit"
|
||||
msgid "Start symbol %s does not derive any sentence"
|
||||
msgstr "Stardisümbolist %s ei tuletata ühtegi lauset"
|
||||
|
||||
#: scan-gram.l:556
|
||||
#: scan-gram.l:559
|
||||
#, c-format
|
||||
msgid "$$ of `%s' has no declared type"
|
||||
msgstr "`%s' $$ ei oma deklareeritud tüüpi"
|
||||
|
||||
#: scan-gram.l:573 scan-gram.l:660
|
||||
#: scan-gram.l:576 scan-gram.l:663
|
||||
#, fuzzy, c-format
|
||||
msgid "invalid value: %s%d"
|
||||
msgstr "vigane @ väärtus"
|
||||
|
||||
#: scan-gram.l:580
|
||||
#: scan-gram.l:583
|
||||
#, c-format
|
||||
msgid "$%d of `%s' has no declared type"
|
||||
msgstr "$%d `%s' ei oma deklareeritud tüüpi"
|
||||
|
||||
#: scan-gram.l:591 scan-gram.l:608 scan-gram.l:667 scan-gram.l:684
|
||||
#: scan-gram.l:594 scan-gram.l:611 scan-gram.l:670 scan-gram.l:687
|
||||
#, c-format
|
||||
msgid "%s is invalid"
|
||||
msgstr "%s on vigane"
|
||||
|
||||
102
po/fr.po
102
po/fr.po
@@ -6,7 +6,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: GNU bison 1.34a\n"
|
||||
"POT-Creation-Date: 2002-06-27 14:17+0200\n"
|
||||
"POT-Creation-Date: 2002-06-27 17:56-0700\n"
|
||||
"PO-Revision-Date: 2002-03-21 15:00-0500\n"
|
||||
"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
|
||||
"Language-Team: French <traduc@traduc.org>\n"
|
||||
@@ -50,49 +50,49 @@ msgid " Conflict between rule %d and token %s resolved as an error"
|
||||
msgstr ""
|
||||
"Conflit à l'état %d entre la règle %d et le terminal %s résolu par %s.\n"
|
||||
|
||||
#: src/conflicts.c:375
|
||||
#: src/conflicts.c:378
|
||||
#, c-format
|
||||
msgid "%d shift/reduce conflict"
|
||||
msgid_plural "%d shift/reduce conflicts"
|
||||
msgstr[0] "%d conflit par décalage/réduction"
|
||||
msgstr[1] "%d conflits par décalage/réduction"
|
||||
|
||||
#: src/conflicts.c:382
|
||||
#: src/conflicts.c:385
|
||||
msgid "and"
|
||||
msgstr "et"
|
||||
|
||||
#: src/conflicts.c:388
|
||||
#: src/conflicts.c:391
|
||||
#, c-format
|
||||
msgid "%d reduce/reduce conflict"
|
||||
msgid_plural "%d reduce/reduce conflicts"
|
||||
msgstr[0] "%d conflit par réduction/réduction"
|
||||
msgstr[1] "%d conflits par réduction/réduction"
|
||||
|
||||
#: src/conflicts.c:413
|
||||
#: src/conflicts.c:416
|
||||
#, c-format
|
||||
msgid "State %d contains "
|
||||
msgstr "L'état %d contient "
|
||||
|
||||
#: src/conflicts.c:460
|
||||
#: src/conflicts.c:487
|
||||
msgid "conflicts: "
|
||||
msgstr "conflits: "
|
||||
|
||||
#: src/conflicts.c:462
|
||||
#: src/conflicts.c:489
|
||||
#, c-format
|
||||
msgid " %d shift/reduce"
|
||||
msgstr " %d décalage/réduction"
|
||||
|
||||
#: src/conflicts.c:466
|
||||
#: src/conflicts.c:493
|
||||
#, c-format
|
||||
msgid " %d reduce/reduce"
|
||||
msgstr " %d réduction/réduction"
|
||||
|
||||
#: src/conflicts.c:471
|
||||
#: src/conflicts.c:498
|
||||
#, c-format
|
||||
msgid "%s contains "
|
||||
msgstr "%s contient "
|
||||
|
||||
#: src/conflicts.c:478
|
||||
#: src/conflicts.c:505
|
||||
#, c-format
|
||||
msgid "expected %d shift/reduce conflict\n"
|
||||
msgid_plural "expected %d shift/reduce conflicts\n"
|
||||
@@ -108,16 +108,16 @@ msgstr "ne peut ouvrir le fichier
|
||||
msgid "cannot close file"
|
||||
msgstr "ne peut fermer le fichier"
|
||||
|
||||
#: src/getargs.c:99
|
||||
#: src/getargs.c:100
|
||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
||||
msgstr "GNU bison génère des analyseurs pour les grammaires de type LALR(1).\n"
|
||||
|
||||
#: src/getargs.c:103
|
||||
#: src/getargs.c:104
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION]... FILE\n"
|
||||
msgstr "Usage: %s [OPTION]... FICHIER\n"
|
||||
|
||||
#: src/getargs.c:107
|
||||
#: src/getargs.c:108
|
||||
msgid ""
|
||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
||||
@@ -126,7 +126,7 @@ msgstr ""
|
||||
"il est alors obligatoire également pour une option de forme courte.\n"
|
||||
"Il en est de même pour les arguments optionnels.\n"
|
||||
|
||||
#: src/getargs.c:113
|
||||
#: src/getargs.c:114
|
||||
msgid ""
|
||||
"Operation modes:\n"
|
||||
" -h, --help display this help and exit\n"
|
||||
@@ -138,7 +138,7 @@ msgstr ""
|
||||
" -V, --version afficher le nom et la version du logiciel\n"
|
||||
" -y, --yacc émuler yacc en mode POSIX\n"
|
||||
|
||||
#: src/getargs.c:120
|
||||
#: src/getargs.c:121
|
||||
msgid ""
|
||||
"Parser:\n"
|
||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
||||
@@ -160,7 +160,7 @@ msgstr ""
|
||||
" -r, --raw compter les jetons à partir de 3\n"
|
||||
" -k, --token-table inclure la table des noms de jetons\n"
|
||||
|
||||
#: src/getargs.c:132
|
||||
#: src/getargs.c:133
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Output:\n"
|
||||
@@ -180,7 +180,7 @@ msgstr ""
|
||||
" -g, --graph produire aussi la description du graphe VCG de "
|
||||
"l'automate\n"
|
||||
|
||||
#: src/getargs.c:143
|
||||
#: src/getargs.c:144
|
||||
msgid ""
|
||||
"THINGS is a list of comma separated words that can include:\n"
|
||||
" `state' describe the states\n"
|
||||
@@ -191,27 +191,27 @@ msgid ""
|
||||
" `none' disable the report\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:154
|
||||
#: src/getargs.c:155
|
||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
||||
msgstr "Rapporter toutes anomalies à <bug-bison@gnu.org>.\n"
|
||||
|
||||
#: src/getargs.c:168
|
||||
#: src/getargs.c:169
|
||||
#, c-format
|
||||
msgid "bison (GNU Bison) %s"
|
||||
msgstr "bison (GNU Bison) %s"
|
||||
|
||||
#: src/getargs.c:170
|
||||
#: src/getargs.c:171
|
||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:174
|
||||
#: src/getargs.c:175
|
||||
#, fuzzy, c-format
|
||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
||||
msgstr ""
|
||||
"Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002 Free Software Foundation, "
|
||||
"Inc.\n"
|
||||
|
||||
#: src/getargs.c:176
|
||||
#: src/getargs.c:177
|
||||
msgid ""
|
||||
"This is free software; see the source for copying conditions. There is NO\n"
|
||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
||||
@@ -220,17 +220,17 @@ msgstr ""
|
||||
"reproduction. AUCUNE garantie n'est donnée; tant pour des raisons\n"
|
||||
"COMMERCIALES que pour RÉPONDRE À UN BESOIN PARTICULIER.\n"
|
||||
|
||||
#: src/getargs.c:333
|
||||
#: src/getargs.c:334
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information.\n"
|
||||
msgstr "Pour en savoir davantage, faites: « %s --help ».\n"
|
||||
|
||||
#: src/getargs.c:340
|
||||
#: src/getargs.c:341
|
||||
#, c-format
|
||||
msgid "%s: no grammar file given\n"
|
||||
msgstr "%s: grammaire manquante\n"
|
||||
|
||||
#: src/getargs.c:344
|
||||
#: src/getargs.c:345
|
||||
#, c-format
|
||||
msgid "%s: extra arguments ignored after `%s'\n"
|
||||
msgstr "%s: arguments supplémentaires ignorés après « %s »\n"
|
||||
@@ -318,34 +318,64 @@ msgstr "
|
||||
msgid " on right:"
|
||||
msgstr " à droite:"
|
||||
|
||||
#: src/reader.c:52
|
||||
#: src/reader.c:53
|
||||
#, c-format
|
||||
msgid "multiple %s declarations"
|
||||
msgstr "multiples déclarations %s"
|
||||
|
||||
#: src/reader.c:202
|
||||
#: src/reader.c:139
|
||||
#, c-format
|
||||
msgid "result type clash on merge function %s: `%s' vs. `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:257
|
||||
#, c-format
|
||||
msgid "rule given for %s, which is a token"
|
||||
msgstr "la règle pour %s, qui est un terminal"
|
||||
|
||||
#: src/reader.c:227
|
||||
#: src/reader.c:282
|
||||
#, c-format
|
||||
msgid "type clash (`%s' `%s') on default action"
|
||||
msgstr "conflit de type (« %s » « %s ») pour l'action par défaut"
|
||||
|
||||
#: src/reader.c:235
|
||||
#: src/reader.c:290
|
||||
msgid "empty rule for typed nonterminal, and no action"
|
||||
msgstr "règle vide pour une catégorie typée et aucune action"
|
||||
|
||||
#: src/reader.c:306
|
||||
#: src/reader.c:361
|
||||
msgid "two @prec's in a row"
|
||||
msgstr "deux @prec de suite"
|
||||
|
||||
#: src/reader.c:447
|
||||
#: src/reader.c:371
|
||||
#, c-format
|
||||
msgid "%%dprec affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:373
|
||||
#, c-format
|
||||
msgid "%%dprec must be followed by positive number"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:375
|
||||
#, c-format
|
||||
msgid "only one %%dprec allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:386
|
||||
#, c-format
|
||||
msgid "%%merge affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:388
|
||||
#, c-format
|
||||
msgid "only one %%merge allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:531
|
||||
msgid "no rules in the input grammar"
|
||||
msgstr "la grammaire n'a pas de règles"
|
||||
|
||||
#: src/reader.c:479
|
||||
#: src/reader.c:563
|
||||
#, c-format
|
||||
msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
||||
msgstr "trop de symboles (jeton plus non terminaux); maximum %d"
|
||||
@@ -408,22 +438,22 @@ msgstr[1] "%d r
|
||||
msgid "Start symbol %s does not derive any sentence"
|
||||
msgstr "Aucune phrase ne peut être dérivée du symbole de départ %s"
|
||||
|
||||
#: scan-gram.l:556
|
||||
#: scan-gram.l:559
|
||||
#, c-format
|
||||
msgid "$$ of `%s' has no declared type"
|
||||
msgstr "$$ de « %s » n'a pas son type déclaré"
|
||||
|
||||
#: scan-gram.l:573 scan-gram.l:660
|
||||
#: scan-gram.l:576 scan-gram.l:663
|
||||
#, fuzzy, c-format
|
||||
msgid "invalid value: %s%d"
|
||||
msgstr "valeur @ invalide"
|
||||
|
||||
#: scan-gram.l:580
|
||||
#: scan-gram.l:583
|
||||
#, c-format
|
||||
msgid "$%d of `%s' has no declared type"
|
||||
msgstr "$%d de « %s » n'a pas de type déclaré"
|
||||
|
||||
#: scan-gram.l:591 scan-gram.l:608 scan-gram.l:667 scan-gram.l:684
|
||||
#: scan-gram.l:594 scan-gram.l:611 scan-gram.l:670 scan-gram.l:687
|
||||
#, c-format
|
||||
msgid "%s is invalid"
|
||||
msgstr "%s n'est pas valide"
|
||||
|
||||
102
po/hr.po
102
po/hr.po
@@ -7,7 +7,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: bison 1.34a\n"
|
||||
"POT-Creation-Date: 2002-06-27 14:17+0200\n"
|
||||
"POT-Creation-Date: 2002-06-27 17:56-0700\n"
|
||||
"PO-Revision-Date: 2002-04-10 22:20+01\n"
|
||||
"Last-Translator: Denis Lackovic <delacko@fly.srk.fer.hr>\n"
|
||||
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
|
||||
@@ -48,49 +48,49 @@ msgstr "Konflikt u stanju %d izme
|
||||
msgid " Conflict between rule %d and token %s resolved as an error"
|
||||
msgstr "Konflikt u stanju %d izmeðu pravila %d i znaka %s razrije¹en kao %s.\n"
|
||||
|
||||
#: src/conflicts.c:375
|
||||
#: src/conflicts.c:378
|
||||
#, c-format
|
||||
msgid "%d shift/reduce conflict"
|
||||
msgid_plural "%d shift/reduce conflicts"
|
||||
msgstr[0] "%d pomakni/reduciraj konflikat"
|
||||
msgstr[1] "%d pomakni/reduciraj konflikata"
|
||||
|
||||
#: src/conflicts.c:382
|
||||
#: src/conflicts.c:385
|
||||
msgid "and"
|
||||
msgstr "i"
|
||||
|
||||
#: src/conflicts.c:388
|
||||
#: src/conflicts.c:391
|
||||
#, c-format
|
||||
msgid "%d reduce/reduce conflict"
|
||||
msgid_plural "%d reduce/reduce conflicts"
|
||||
msgstr[0] "%d reduciraj/reduciraj konflikt"
|
||||
msgstr[1] "%d reduciraj/reduciraj konflikata"
|
||||
|
||||
#: src/conflicts.c:413
|
||||
#: src/conflicts.c:416
|
||||
#, c-format
|
||||
msgid "State %d contains "
|
||||
msgstr "Stanje %d sadr¾i"
|
||||
|
||||
#: src/conflicts.c:460
|
||||
#: src/conflicts.c:487
|
||||
msgid "conflicts: "
|
||||
msgstr "konflikt:"
|
||||
|
||||
#: src/conflicts.c:462
|
||||
#: src/conflicts.c:489
|
||||
#, c-format
|
||||
msgid " %d shift/reduce"
|
||||
msgstr " %d pomakni/reduciraj"
|
||||
|
||||
#: src/conflicts.c:466
|
||||
#: src/conflicts.c:493
|
||||
#, c-format
|
||||
msgid " %d reduce/reduce"
|
||||
msgstr " %d reduviraj/reduciraj"
|
||||
|
||||
#: src/conflicts.c:471
|
||||
#: src/conflicts.c:498
|
||||
#, c-format
|
||||
msgid "%s contains "
|
||||
msgstr "%s sadr¾i"
|
||||
|
||||
#: src/conflicts.c:478
|
||||
#: src/conflicts.c:505
|
||||
#, c-format
|
||||
msgid "expected %d shift/reduce conflict\n"
|
||||
msgid_plural "expected %d shift/reduce conflicts\n"
|
||||
@@ -106,16 +106,16 @@ msgstr "ne mogu otvoriti datoteku `%s'"
|
||||
msgid "cannot close file"
|
||||
msgstr "ne mogu zatvoriti datoteku"
|
||||
|
||||
#: src/getargs.c:99
|
||||
#: src/getargs.c:100
|
||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
||||
msgstr "GNU bison generira parsere za LALR(1) gramatike.\n"
|
||||
|
||||
#: src/getargs.c:103
|
||||
#: src/getargs.c:104
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION]... FILE\n"
|
||||
msgstr "Kori¹tenje: %s [OPCIJA]... DATOTEKA\n"
|
||||
|
||||
#: src/getargs.c:107
|
||||
#: src/getargs.c:108
|
||||
msgid ""
|
||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
||||
@@ -123,7 +123,7 @@ msgstr ""
|
||||
"Ako duga opcija ka¾e da je argument obavezan, tada je on obavezan\n"
|
||||
"i za ekvivalentnu kratku opciju. Slièno je i za opcionalne argumente.\n"
|
||||
|
||||
#: src/getargs.c:113
|
||||
#: src/getargs.c:114
|
||||
msgid ""
|
||||
"Operation modes:\n"
|
||||
" -h, --help display this help and exit\n"
|
||||
@@ -135,7 +135,7 @@ msgstr ""
|
||||
" -V, --version prika¾i verziju i izaði\n"
|
||||
" -y, --yacc emuliraj POSIX yacc\n"
|
||||
|
||||
#: src/getargs.c:120
|
||||
#: src/getargs.c:121
|
||||
msgid ""
|
||||
"Parser:\n"
|
||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
||||
@@ -155,7 +155,7 @@ msgstr ""
|
||||
" -n, --no-parser generiraj samo tablice\n"
|
||||
" -k, --token-table ukljuèi tablicu imena znakova\n"
|
||||
|
||||
#: src/getargs.c:132
|
||||
#: src/getargs.c:133
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Output:\n"
|
||||
@@ -174,7 +174,7 @@ msgstr ""
|
||||
" -o, --output=DATOTEKA ispi¹i izlaz u DATOTEKU\n"
|
||||
" -g, --graph takoðer proizvedi VCG opis automata\n"
|
||||
|
||||
#: src/getargs.c:143
|
||||
#: src/getargs.c:144
|
||||
msgid ""
|
||||
"THINGS is a list of comma separated words that can include:\n"
|
||||
" `state' describe the states\n"
|
||||
@@ -185,27 +185,27 @@ msgid ""
|
||||
" `none' disable the report\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:154
|
||||
#: src/getargs.c:155
|
||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
||||
msgstr "Izvjesti o bugovima na <bug-bison@gnu.org>.\n"
|
||||
|
||||
#: src/getargs.c:168
|
||||
#: src/getargs.c:169
|
||||
#, c-format
|
||||
msgid "bison (GNU Bison) %s"
|
||||
msgstr "bison (GNU Bison) %s"
|
||||
|
||||
#: src/getargs.c:170
|
||||
#: src/getargs.c:171
|
||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:174
|
||||
#: src/getargs.c:175
|
||||
#, fuzzy, c-format
|
||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
||||
msgstr ""
|
||||
"Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002\n"
|
||||
"Free Software Foundation, Inc.\n"
|
||||
|
||||
#: src/getargs.c:176
|
||||
#: src/getargs.c:177
|
||||
msgid ""
|
||||
"This is free software; see the source for copying conditions. There is NO\n"
|
||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
||||
@@ -214,17 +214,17 @@ msgstr ""
|
||||
"kopiranja. NEMA\n"
|
||||
"garancije; èak ni tvrdnje o ISPLATIVOSTI ili POGODNOSTI ZA NEKU SVRHU.\n"
|
||||
|
||||
#: src/getargs.c:333
|
||||
#: src/getargs.c:334
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information.\n"
|
||||
msgstr "Poku¹aj `%s --help' za vi¹e informacija.\n"
|
||||
|
||||
#: src/getargs.c:340
|
||||
#: src/getargs.c:341
|
||||
#, c-format
|
||||
msgid "%s: no grammar file given\n"
|
||||
msgstr "%s: nije data datoteka sa gramatikom\n"
|
||||
|
||||
#: src/getargs.c:344
|
||||
#: src/getargs.c:345
|
||||
#, c-format
|
||||
msgid "%s: extra arguments ignored after `%s'\n"
|
||||
msgstr "%s: dodatni argumenti se ignoriraju nakon `%s'\n"
|
||||
@@ -312,34 +312,64 @@ msgstr "s lijeva:"
|
||||
msgid " on right:"
|
||||
msgstr "s desna:"
|
||||
|
||||
#: src/reader.c:52
|
||||
#: src/reader.c:53
|
||||
#, c-format
|
||||
msgid "multiple %s declarations"
|
||||
msgstr "vi¹estruke %s deklaracije"
|
||||
|
||||
#: src/reader.c:202
|
||||
#: src/reader.c:139
|
||||
#, c-format
|
||||
msgid "result type clash on merge function %s: `%s' vs. `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:257
|
||||
#, c-format
|
||||
msgid "rule given for %s, which is a token"
|
||||
msgstr "pravilo dato za %s, a to je znak"
|
||||
|
||||
#: src/reader.c:227
|
||||
#: src/reader.c:282
|
||||
#, c-format
|
||||
msgid "type clash (`%s' `%s') on default action"
|
||||
msgstr "sudar tipova (`%s' `%s') na deaultnoj akciji"
|
||||
|
||||
#: src/reader.c:235
|
||||
#: src/reader.c:290
|
||||
msgid "empty rule for typed nonterminal, and no action"
|
||||
msgstr "prazno pravilo za nezavr¹ni znak, i nema akcije"
|
||||
|
||||
#: src/reader.c:306
|
||||
#: src/reader.c:361
|
||||
msgid "two @prec's in a row"
|
||||
msgstr "dva @prec's u retku"
|
||||
|
||||
#: src/reader.c:447
|
||||
#: src/reader.c:371
|
||||
#, c-format
|
||||
msgid "%%dprec affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:373
|
||||
#, c-format
|
||||
msgid "%%dprec must be followed by positive number"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:375
|
||||
#, c-format
|
||||
msgid "only one %%dprec allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:386
|
||||
#, c-format
|
||||
msgid "%%merge affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:388
|
||||
#, c-format
|
||||
msgid "only one %%merge allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:531
|
||||
msgid "no rules in the input grammar"
|
||||
msgstr "nema pravila u ulaznoj gramatici"
|
||||
|
||||
#: src/reader.c:479
|
||||
#: src/reader.c:563
|
||||
#, c-format
|
||||
msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
||||
msgstr "previ¹e simbola (znakovi plus nezavr¹ni znakovi); maksimalno %d"
|
||||
@@ -402,22 +432,22 @@ msgstr[1] "%d beskorisnih pravila"
|
||||
msgid "Start symbol %s does not derive any sentence"
|
||||
msgstr "Poèetni simbol %s ne daje niti jednu reèenicu"
|
||||
|
||||
#: scan-gram.l:556
|
||||
#: scan-gram.l:559
|
||||
#, c-format
|
||||
msgid "$$ of `%s' has no declared type"
|
||||
msgstr "$$ od `%s' nema deklarirani tip"
|
||||
|
||||
#: scan-gram.l:573 scan-gram.l:660
|
||||
#: scan-gram.l:576 scan-gram.l:663
|
||||
#, fuzzy, c-format
|
||||
msgid "invalid value: %s%d"
|
||||
msgstr "nedozvoljena @ vrijednost"
|
||||
|
||||
#: scan-gram.l:580
|
||||
#: scan-gram.l:583
|
||||
#, c-format
|
||||
msgid "$%d of `%s' has no declared type"
|
||||
msgstr "$%d od `%s' nema deklarirani tip"
|
||||
|
||||
#: scan-gram.l:591 scan-gram.l:608 scan-gram.l:667 scan-gram.l:684
|
||||
#: scan-gram.l:594 scan-gram.l:611 scan-gram.l:670 scan-gram.l:687
|
||||
#, c-format
|
||||
msgid "%s is invalid"
|
||||
msgstr "%s je nedozvoljeno"
|
||||
|
||||
102
po/it.po
102
po/it.po
@@ -5,7 +5,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: bison 1.31\n"
|
||||
"POT-Creation-Date: 2002-06-27 14:17+0200\n"
|
||||
"POT-Creation-Date: 2002-06-27 17:56-0700\n"
|
||||
"PO-Revision-Date: 2002-01-18 12:40 CET\n"
|
||||
"Last-Translator: Paolo Bonzini <bonzini@gnu.org>\n"
|
||||
"Language-Team: Italian <it@li.org>\n"
|
||||
@@ -49,49 +49,49 @@ msgid " Conflict between rule %d and token %s resolved as an error"
|
||||
msgstr ""
|
||||
"Conflitto nello stato %d tra la regola %d e il token %s risolto come %s.\n"
|
||||
|
||||
#: src/conflicts.c:375
|
||||
#: src/conflicts.c:378
|
||||
#, c-format
|
||||
msgid "%d shift/reduce conflict"
|
||||
msgid_plural "%d shift/reduce conflicts"
|
||||
msgstr[0] "%d conflitto shift/riduzione"
|
||||
msgstr[1] "%d conflitti shift/riduzione"
|
||||
|
||||
#: src/conflicts.c:382
|
||||
#: src/conflicts.c:385
|
||||
msgid "and"
|
||||
msgstr "e"
|
||||
|
||||
#: src/conflicts.c:388
|
||||
#: src/conflicts.c:391
|
||||
#, c-format
|
||||
msgid "%d reduce/reduce conflict"
|
||||
msgid_plural "%d reduce/reduce conflicts"
|
||||
msgstr[0] "%d conflitto riduzione/riduzione"
|
||||
msgstr[1] "%d conflitti riduzione/riduzione"
|
||||
|
||||
#: src/conflicts.c:413
|
||||
#: src/conflicts.c:416
|
||||
#, c-format
|
||||
msgid "State %d contains "
|
||||
msgstr "Lo stato %d contiene"
|
||||
|
||||
#: src/conflicts.c:460
|
||||
#: src/conflicts.c:487
|
||||
msgid "conflicts: "
|
||||
msgstr "conflitti: "
|
||||
|
||||
#: src/conflicts.c:462
|
||||
#: src/conflicts.c:489
|
||||
#, c-format
|
||||
msgid " %d shift/reduce"
|
||||
msgstr " %d shift/riduzione"
|
||||
|
||||
#: src/conflicts.c:466
|
||||
#: src/conflicts.c:493
|
||||
#, c-format
|
||||
msgid " %d reduce/reduce"
|
||||
msgstr " %d riduzione/riduzione"
|
||||
|
||||
#: src/conflicts.c:471
|
||||
#: src/conflicts.c:498
|
||||
#, c-format
|
||||
msgid "%s contains "
|
||||
msgstr "%s contiene "
|
||||
|
||||
#: src/conflicts.c:478
|
||||
#: src/conflicts.c:505
|
||||
#, c-format
|
||||
msgid "expected %d shift/reduce conflict\n"
|
||||
msgid_plural "expected %d shift/reduce conflicts\n"
|
||||
@@ -107,16 +107,16 @@ msgstr "impossibile aprire il file `%s'"
|
||||
msgid "cannot close file"
|
||||
msgstr "impossibile chiudere il file `%s'"
|
||||
|
||||
#: src/getargs.c:99
|
||||
#: src/getargs.c:100
|
||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
||||
msgstr "GNU bison genera parser per grammatiche LALR(1).\n"
|
||||
|
||||
#: src/getargs.c:103
|
||||
#: src/getargs.c:104
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION]... FILE\n"
|
||||
msgstr "Utilizzo: %s [OPZIONE]... FILE\n"
|
||||
|
||||
#: src/getargs.c:107
|
||||
#: src/getargs.c:108
|
||||
msgid ""
|
||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
||||
@@ -125,7 +125,7 @@ msgstr ""
|
||||
"è obbligatorio anche per l'equivalente opzione corta. Analogamente per\n"
|
||||
"gli argomenti opzionali.\n"
|
||||
|
||||
#: src/getargs.c:113
|
||||
#: src/getargs.c:114
|
||||
msgid ""
|
||||
"Operation modes:\n"
|
||||
" -h, --help display this help and exit\n"
|
||||
@@ -137,7 +137,7 @@ msgstr ""
|
||||
" -V, --version mostra informazioni sulla versione ed esce\n"
|
||||
" -y, --yacc emula il comportamento di POSIX yacc\n"
|
||||
|
||||
#: src/getargs.c:120
|
||||
#: src/getargs.c:121
|
||||
msgid ""
|
||||
"Parser:\n"
|
||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
||||
@@ -156,7 +156,7 @@ msgstr ""
|
||||
" -n, --no-parser genera le sole tabelle\n"
|
||||
" -k, --token-table include una tabella di nomi dei token\n"
|
||||
|
||||
#: src/getargs.c:132
|
||||
#: src/getargs.c:133
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Output:\n"
|
||||
@@ -175,7 +175,7 @@ msgstr ""
|
||||
" -o, --output=FILE lascia l'output in FILE\n"
|
||||
" -g, --graph produce anche una descrizione VCG dell'automa\n"
|
||||
|
||||
#: src/getargs.c:143
|
||||
#: src/getargs.c:144
|
||||
msgid ""
|
||||
"THINGS is a list of comma separated words that can include:\n"
|
||||
" `state' describe the states\n"
|
||||
@@ -186,26 +186,26 @@ msgid ""
|
||||
" `none' disable the report\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:154
|
||||
#: src/getargs.c:155
|
||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
||||
msgstr "Segnalare eventuali bug a <bug-bison@gnu.org>.\n"
|
||||
|
||||
#: src/getargs.c:168
|
||||
#: src/getargs.c:169
|
||||
#, c-format
|
||||
msgid "bison (GNU Bison) %s"
|
||||
msgstr "bison (GNU Bison) %s"
|
||||
|
||||
#: src/getargs.c:170
|
||||
#: src/getargs.c:171
|
||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:174
|
||||
#: src/getargs.c:175
|
||||
#, fuzzy, c-format
|
||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
||||
msgstr ""
|
||||
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
|
||||
|
||||
#: src/getargs.c:176
|
||||
#: src/getargs.c:177
|
||||
msgid ""
|
||||
"This is free software; see the source for copying conditions. There is NO\n"
|
||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
||||
@@ -214,17 +214,17 @@ msgstr ""
|
||||
"sottoposta la copia. NON c'è ALCUNA garanzia, neanche di\n"
|
||||
"COMMERCIABILITA` o di ADEGUATEZZA AD UN PARTICOLARE SCOPO.\n"
|
||||
|
||||
#: src/getargs.c:333
|
||||
#: src/getargs.c:334
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information.\n"
|
||||
msgstr "Provare `%s --help' per ulteriori informazioni.\n"
|
||||
|
||||
#: src/getargs.c:340
|
||||
#: src/getargs.c:341
|
||||
#, c-format
|
||||
msgid "%s: no grammar file given\n"
|
||||
msgstr "%s: nessun file grammatica specificato\n"
|
||||
|
||||
#: src/getargs.c:344
|
||||
#: src/getargs.c:345
|
||||
#, c-format
|
||||
msgid "%s: extra arguments ignored after `%s'\n"
|
||||
msgstr "%s: ignorati gli argomenti successivi a `%s'\n"
|
||||
@@ -312,34 +312,64 @@ msgstr " nel primo membro:"
|
||||
msgid " on right:"
|
||||
msgstr " nel secondo membro:"
|
||||
|
||||
#: src/reader.c:52
|
||||
#: src/reader.c:53
|
||||
#, c-format
|
||||
msgid "multiple %s declarations"
|
||||
msgstr "dichiarazioni multiple per %s"
|
||||
|
||||
#: src/reader.c:202
|
||||
#: src/reader.c:139
|
||||
#, c-format
|
||||
msgid "result type clash on merge function %s: `%s' vs. `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:257
|
||||
#, c-format
|
||||
msgid "rule given for %s, which is a token"
|
||||
msgstr "fornita una regola per il token %s"
|
||||
|
||||
#: src/reader.c:227
|
||||
#: src/reader.c:282
|
||||
#, c-format
|
||||
msgid "type clash (`%s' `%s') on default action"
|
||||
msgstr "conflitto di tipo (`%s' e `%s') nell'azione di default"
|
||||
|
||||
#: src/reader.c:235
|
||||
#: src/reader.c:290
|
||||
msgid "empty rule for typed nonterminal, and no action"
|
||||
msgstr "regola vuota e nessuna azione per un nonterminale con tipo"
|
||||
|
||||
#: src/reader.c:306
|
||||
#: src/reader.c:361
|
||||
msgid "two @prec's in a row"
|
||||
msgstr "due @prec di seguito"
|
||||
|
||||
#: src/reader.c:447
|
||||
#: src/reader.c:371
|
||||
#, c-format
|
||||
msgid "%%dprec affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:373
|
||||
#, c-format
|
||||
msgid "%%dprec must be followed by positive number"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:375
|
||||
#, c-format
|
||||
msgid "only one %%dprec allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:386
|
||||
#, c-format
|
||||
msgid "%%merge affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:388
|
||||
#, c-format
|
||||
msgid "only one %%merge allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:531
|
||||
msgid "no rules in the input grammar"
|
||||
msgstr "nessuna regola nella grammatica di input"
|
||||
|
||||
#: src/reader.c:479
|
||||
#: src/reader.c:563
|
||||
#, c-format
|
||||
msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
||||
msgstr "troppi simboli (token e nonterminali); il massimo è %d"
|
||||
@@ -402,22 +432,22 @@ msgstr[1] "%d regole inutili"
|
||||
msgid "Start symbol %s does not derive any sentence"
|
||||
msgstr "dal simbolo iniziale %s non deriva alcuna frase"
|
||||
|
||||
#: scan-gram.l:556
|
||||
#: scan-gram.l:559
|
||||
#, c-format
|
||||
msgid "$$ of `%s' has no declared type"
|
||||
msgstr "Manca una dichiarazione di tipo per $$ di `%s'"
|
||||
|
||||
#: scan-gram.l:573 scan-gram.l:660
|
||||
#: scan-gram.l:576 scan-gram.l:663
|
||||
#, c-format
|
||||
msgid "invalid value: %s%d"
|
||||
msgstr "valore non valido: %s%d"
|
||||
|
||||
#: scan-gram.l:580
|
||||
#: scan-gram.l:583
|
||||
#, c-format
|
||||
msgid "$%d of `%s' has no declared type"
|
||||
msgstr "Manca una dichiarazione di tipo per $%d di `%s'"
|
||||
|
||||
#: scan-gram.l:591 scan-gram.l:608 scan-gram.l:667 scan-gram.l:684
|
||||
#: scan-gram.l:594 scan-gram.l:611 scan-gram.l:670 scan-gram.l:687
|
||||
#, c-format
|
||||
msgid "%s is invalid"
|
||||
msgstr "%s non è valido"
|
||||
|
||||
102
po/ja.po
102
po/ja.po
@@ -5,7 +5,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: GNU bison 1.30f\n"
|
||||
"POT-Creation-Date: 2002-06-27 14:17+0200\n"
|
||||
"POT-Creation-Date: 2002-06-27 17:56-0700\n"
|
||||
"PO-Revision-Date: 2001-12-10 15:59+0900\n"
|
||||
"Last-Translator: Daisuke Yamashita <yamad@mb.infoweb.ne.jp>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
@@ -46,47 +46,47 @@ msgstr "
|
||||
msgid " Conflict between rule %d and token %s resolved as an error"
|
||||
msgstr "状態 %d の規則 %d とトークン %s の競合を%sとして解決。\n"
|
||||
|
||||
#: src/conflicts.c:375
|
||||
#: src/conflicts.c:378
|
||||
#, c-format
|
||||
msgid "%d shift/reduce conflict"
|
||||
msgid_plural "%d shift/reduce conflicts"
|
||||
msgstr[0] "%d シフト/還元衝突"
|
||||
|
||||
#: src/conflicts.c:382
|
||||
#: src/conflicts.c:385
|
||||
msgid "and"
|
||||
msgstr "および"
|
||||
|
||||
#: src/conflicts.c:388
|
||||
#: src/conflicts.c:391
|
||||
#, c-format
|
||||
msgid "%d reduce/reduce conflict"
|
||||
msgid_plural "%d reduce/reduce conflicts"
|
||||
msgstr[0] "%d 還元/還元衝突"
|
||||
|
||||
#: src/conflicts.c:413
|
||||
#: src/conflicts.c:416
|
||||
#, c-format
|
||||
msgid "State %d contains "
|
||||
msgstr "状態 %d が含むのは "
|
||||
|
||||
#: src/conflicts.c:460
|
||||
#: src/conflicts.c:487
|
||||
msgid "conflicts: "
|
||||
msgstr "衝突: "
|
||||
|
||||
#: src/conflicts.c:462
|
||||
#: src/conflicts.c:489
|
||||
#, c-format
|
||||
msgid " %d shift/reduce"
|
||||
msgstr " %d シフト/還元"
|
||||
|
||||
#: src/conflicts.c:466
|
||||
#: src/conflicts.c:493
|
||||
#, c-format
|
||||
msgid " %d reduce/reduce"
|
||||
msgstr " %d 還元/還元"
|
||||
|
||||
#: src/conflicts.c:471
|
||||
#: src/conflicts.c:498
|
||||
#, c-format
|
||||
msgid "%s contains "
|
||||
msgstr "%s の中身は"
|
||||
|
||||
#: src/conflicts.c:478
|
||||
#: src/conflicts.c:505
|
||||
#, c-format
|
||||
msgid "expected %d shift/reduce conflict\n"
|
||||
msgid_plural "expected %d shift/reduce conflicts\n"
|
||||
@@ -101,16 +101,16 @@ msgstr "
|
||||
msgid "cannot close file"
|
||||
msgstr "ファイルを閉じることができません"
|
||||
|
||||
#: src/getargs.c:99
|
||||
#: src/getargs.c:100
|
||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
||||
msgstr "GNU bison は LALR(1) 文法の構文解析器を生成します。\n"
|
||||
|
||||
#: src/getargs.c:103
|
||||
#: src/getargs.c:104
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION]... FILE\n"
|
||||
msgstr "使い方: %s [オプション]... ファイル\n"
|
||||
|
||||
#: src/getargs.c:107
|
||||
#: src/getargs.c:108
|
||||
msgid ""
|
||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
||||
@@ -118,7 +118,7 @@ msgstr ""
|
||||
"ロングオプションで必須の引数が示されていれば、同じ意味のショートオプション\n"
|
||||
"でも同様に必須の引数となります。必須でない選択的引数でも同様です。\n"
|
||||
|
||||
#: src/getargs.c:113
|
||||
#: src/getargs.c:114
|
||||
msgid ""
|
||||
"Operation modes:\n"
|
||||
" -h, --help display this help and exit\n"
|
||||
@@ -130,7 +130,7 @@ msgstr ""
|
||||
" -V, --version バージョン情報を表示して終了する\n"
|
||||
" -y, --yacc POSIX yacc をエミュレイトする\n"
|
||||
|
||||
#: src/getargs.c:120
|
||||
#: src/getargs.c:121
|
||||
msgid ""
|
||||
"Parser:\n"
|
||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
||||
@@ -150,7 +150,7 @@ msgstr ""
|
||||
" -n, --no-parser テーブルのみを生成する\n"
|
||||
" -k, --token-table トークン名のテーブルを含める\n"
|
||||
|
||||
#: src/getargs.c:132
|
||||
#: src/getargs.c:133
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Output:\n"
|
||||
@@ -169,7 +169,7 @@ msgstr ""
|
||||
" -o, --output=FILE 出力先を FILE とする\n"
|
||||
" -g, --graph オートマトンの VCG 記述子も作成する\n"
|
||||
|
||||
#: src/getargs.c:143
|
||||
#: src/getargs.c:144
|
||||
msgid ""
|
||||
"THINGS is a list of comma separated words that can include:\n"
|
||||
" `state' describe the states\n"
|
||||
@@ -180,26 +180,26 @@ msgid ""
|
||||
" `none' disable the report\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:154
|
||||
#: src/getargs.c:155
|
||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
||||
msgstr "バグレポートは <bug-bison@gnu.org> まで。\n"
|
||||
|
||||
#: src/getargs.c:168
|
||||
#: src/getargs.c:169
|
||||
#, c-format
|
||||
msgid "bison (GNU Bison) %s"
|
||||
msgstr "bison (GNU Bison) %s"
|
||||
|
||||
#: src/getargs.c:170
|
||||
#: src/getargs.c:171
|
||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:174
|
||||
#: src/getargs.c:175
|
||||
#, fuzzy, c-format
|
||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
||||
msgstr ""
|
||||
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
|
||||
|
||||
#: src/getargs.c:176
|
||||
#: src/getargs.c:177
|
||||
msgid ""
|
||||
"This is free software; see the source for copying conditions. There is NO\n"
|
||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
||||
@@ -210,17 +210,17 @@ msgstr ""
|
||||
"これはフリーソフトウェアです -- 複製についての条件はソースを見ましょう。\n"
|
||||
"一切の保証はありません -- 商業性や目的適合性についての保証すらありません。\n"
|
||||
|
||||
#: src/getargs.c:333
|
||||
#: src/getargs.c:334
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information.\n"
|
||||
msgstr "`%s --help' で詳細情報を参照してください\n"
|
||||
|
||||
#: src/getargs.c:340
|
||||
#: src/getargs.c:341
|
||||
#, c-format
|
||||
msgid "%s: no grammar file given\n"
|
||||
msgstr "%s: 文法ファイルが指定されていません\n"
|
||||
|
||||
#: src/getargs.c:344
|
||||
#: src/getargs.c:345
|
||||
#, c-format
|
||||
msgid "%s: extra arguments ignored after `%s'\n"
|
||||
msgstr "%s: `%s' の後ろの余分な引数は無視されました\n"
|
||||
@@ -308,34 +308,64 @@ msgstr "
|
||||
msgid " on right:"
|
||||
msgstr " 右辺:"
|
||||
|
||||
#: src/reader.c:52
|
||||
#: src/reader.c:53
|
||||
#, c-format
|
||||
msgid "multiple %s declarations"
|
||||
msgstr "%s が複数個宣言されました"
|
||||
|
||||
#: src/reader.c:202
|
||||
#: src/reader.c:139
|
||||
#, c-format
|
||||
msgid "result type clash on merge function %s: `%s' vs. `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:257
|
||||
#, c-format
|
||||
msgid "rule given for %s, which is a token"
|
||||
msgstr "%s に規則が与えられ、それはトークンとなります"
|
||||
|
||||
#: src/reader.c:227
|
||||
#: src/reader.c:282
|
||||
#, c-format
|
||||
msgid "type clash (`%s' `%s') on default action"
|
||||
msgstr "初期状態の動作では型 (`%s' `%s') が衝突します"
|
||||
|
||||
#: src/reader.c:235
|
||||
#: src/reader.c:290
|
||||
msgid "empty rule for typed nonterminal, and no action"
|
||||
msgstr "空の型付き非終端アイテム用規則であり、動作が起りません"
|
||||
|
||||
#: src/reader.c:306
|
||||
#: src/reader.c:361
|
||||
msgid "two @prec's in a row"
|
||||
msgstr "@prec のもの二つが同列になっています"
|
||||
|
||||
#: src/reader.c:447
|
||||
#: src/reader.c:371
|
||||
#, c-format
|
||||
msgid "%%dprec affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:373
|
||||
#, c-format
|
||||
msgid "%%dprec must be followed by positive number"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:375
|
||||
#, c-format
|
||||
msgid "only one %%dprec allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:386
|
||||
#, c-format
|
||||
msgid "%%merge affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:388
|
||||
#, c-format
|
||||
msgid "only one %%merge allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:531
|
||||
msgid "no rules in the input grammar"
|
||||
msgstr "入力した文法に規則が定義されていません"
|
||||
|
||||
#: src/reader.c:479
|
||||
#: src/reader.c:563
|
||||
#, c-format
|
||||
msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
||||
msgstr "シンボルが多すぎます (トークン + 非終端アイテム) -- 最大 %d"
|
||||
@@ -395,22 +425,22 @@ msgstr[0] "%d
|
||||
msgid "Start symbol %s does not derive any sentence"
|
||||
msgstr "開始シンボル %s はどの文にも由来しません"
|
||||
|
||||
#: scan-gram.l:556
|
||||
#: scan-gram.l:559
|
||||
#, c-format
|
||||
msgid "$$ of `%s' has no declared type"
|
||||
msgstr "`%s' の $$ に宣言のない型があります"
|
||||
|
||||
#: scan-gram.l:573 scan-gram.l:660
|
||||
#: scan-gram.l:576 scan-gram.l:663
|
||||
#, fuzzy, c-format
|
||||
msgid "invalid value: %s%d"
|
||||
msgstr "不適切な $ の値"
|
||||
|
||||
#: scan-gram.l:580
|
||||
#: scan-gram.l:583
|
||||
#, c-format
|
||||
msgid "$%d of `%s' has no declared type"
|
||||
msgstr "$%d 個の `%s' が宣言された型を持っていません"
|
||||
|
||||
#: scan-gram.l:591 scan-gram.l:608 scan-gram.l:667 scan-gram.l:684
|
||||
#: scan-gram.l:594 scan-gram.l:611 scan-gram.l:670 scan-gram.l:687
|
||||
#, c-format
|
||||
msgid "%s is invalid"
|
||||
msgstr "%s は不適切です"
|
||||
|
||||
102
po/nl.po
102
po/nl.po
@@ -6,7 +6,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: bison 1.34a\n"
|
||||
"POT-Creation-Date: 2002-06-27 14:17+0200\n"
|
||||
"POT-Creation-Date: 2002-06-27 17:56-0700\n"
|
||||
"PO-Revision-Date: 2002-03-20 12:54+0100\n"
|
||||
"Last-Translator: Tim Van Holder <tim.van.holder@pandora.be>\n"
|
||||
"Language-Team: Dutch <vertaling@nl.linux.org>\n"
|
||||
@@ -50,49 +50,49 @@ msgid " Conflict between rule %d and token %s resolved as an error"
|
||||
msgstr ""
|
||||
"Conflict in staat %d tussen regel %d en token %s opgelost als \"%s\".\n"
|
||||
|
||||
#: src/conflicts.c:375
|
||||
#: src/conflicts.c:378
|
||||
#, c-format
|
||||
msgid "%d shift/reduce conflict"
|
||||
msgid_plural "%d shift/reduce conflicts"
|
||||
msgstr[0] "%d shift/reductie conflict"
|
||||
msgstr[1] "%d shift/reductie conflicten"
|
||||
|
||||
#: src/conflicts.c:382
|
||||
#: src/conflicts.c:385
|
||||
msgid "and"
|
||||
msgstr "en"
|
||||
|
||||
#: src/conflicts.c:388
|
||||
#: src/conflicts.c:391
|
||||
#, c-format
|
||||
msgid "%d reduce/reduce conflict"
|
||||
msgid_plural "%d reduce/reduce conflicts"
|
||||
msgstr[0] "%d reductie/reductie conflict"
|
||||
msgstr[1] "%d reductie/reductie conflicten"
|
||||
|
||||
#: src/conflicts.c:413
|
||||
#: src/conflicts.c:416
|
||||
#, c-format
|
||||
msgid "State %d contains "
|
||||
msgstr "Staat %d bevat"
|
||||
|
||||
#: src/conflicts.c:460
|
||||
#: src/conflicts.c:487
|
||||
msgid "conflicts: "
|
||||
msgstr "conflicten: "
|
||||
|
||||
#: src/conflicts.c:462
|
||||
#: src/conflicts.c:489
|
||||
#, c-format
|
||||
msgid " %d shift/reduce"
|
||||
msgstr " %d vershuif/reductie"
|
||||
|
||||
#: src/conflicts.c:466
|
||||
#: src/conflicts.c:493
|
||||
#, c-format
|
||||
msgid " %d reduce/reduce"
|
||||
msgstr " %d reductie/reductie"
|
||||
|
||||
#: src/conflicts.c:471
|
||||
#: src/conflicts.c:498
|
||||
#, c-format
|
||||
msgid "%s contains "
|
||||
msgstr "%s bevat"
|
||||
|
||||
#: src/conflicts.c:478
|
||||
#: src/conflicts.c:505
|
||||
#, c-format
|
||||
msgid "expected %d shift/reduce conflict\n"
|
||||
msgid_plural "expected %d shift/reduce conflicts\n"
|
||||
@@ -109,16 +109,16 @@ msgid "cannot close file"
|
||||
msgstr "kan bestand niet sluiten"
|
||||
|
||||
# Dank U, Akim :-)
|
||||
#: src/getargs.c:99
|
||||
#: src/getargs.c:100
|
||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
||||
msgstr "GNU bison genereert parsers voor LALR(1) grammatica's.\n"
|
||||
|
||||
#: src/getargs.c:103
|
||||
#: src/getargs.c:104
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION]... FILE\n"
|
||||
msgstr "Gebruik: %s [OPTIE]... BESTAND\n"
|
||||
|
||||
#: src/getargs.c:107
|
||||
#: src/getargs.c:108
|
||||
msgid ""
|
||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
||||
@@ -128,7 +128,7 @@ msgstr ""
|
||||
"optionele argumenten geldt dezelfde regel.\n"
|
||||
|
||||
# Misschien beter 'een POSIX-compatibele yacc'?
|
||||
#: src/getargs.c:113
|
||||
#: src/getargs.c:114
|
||||
msgid ""
|
||||
"Operation modes:\n"
|
||||
" -h, --help display this help and exit\n"
|
||||
@@ -142,7 +142,7 @@ msgstr ""
|
||||
|
||||
# Correcte vervoeging van 'voorvoegen'?
|
||||
# Betere vertaling voor 'directives'?
|
||||
#: src/getargs.c:120
|
||||
#: src/getargs.c:121
|
||||
msgid ""
|
||||
"Parser:\n"
|
||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
||||
@@ -162,7 +162,7 @@ msgstr ""
|
||||
" -n, --no-parser genereer alleen de tabellen\n"
|
||||
" -k, --token-table genereer ook een tabel van tokennamen\n"
|
||||
|
||||
#: src/getargs.c:132
|
||||
#: src/getargs.c:133
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Output:\n"
|
||||
@@ -182,7 +182,7 @@ msgstr ""
|
||||
" -g, --graph genereer ook een VCG beschrijving van de "
|
||||
"automaat\n"
|
||||
|
||||
#: src/getargs.c:143
|
||||
#: src/getargs.c:144
|
||||
msgid ""
|
||||
"THINGS is a list of comma separated words that can include:\n"
|
||||
" `state' describe the states\n"
|
||||
@@ -193,29 +193,29 @@ msgid ""
|
||||
" `none' disable the report\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:154
|
||||
#: src/getargs.c:155
|
||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
||||
msgstr ""
|
||||
"Meld bugs aan <bug-bison@gnu.org>.\n"
|
||||
"Meld fouten in de vertaling aan <vertaling@nl.linux.org>.\n"
|
||||
|
||||
#: src/getargs.c:168
|
||||
#: src/getargs.c:169
|
||||
#, c-format
|
||||
msgid "bison (GNU Bison) %s"
|
||||
msgstr "bison (GNU Bison) %s"
|
||||
|
||||
#: src/getargs.c:170
|
||||
#: src/getargs.c:171
|
||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:174
|
||||
#: src/getargs.c:175
|
||||
#, fuzzy, c-format
|
||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
||||
msgstr ""
|
||||
"Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002\n"
|
||||
"Free Software Foundation, Inc.\n"
|
||||
|
||||
#: src/getargs.c:176
|
||||
#: src/getargs.c:177
|
||||
msgid ""
|
||||
"This is free software; see the source for copying conditions. There is NO\n"
|
||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
||||
@@ -224,17 +224,17 @@ msgstr ""
|
||||
"garantie; zelfs niet voor VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD\n"
|
||||
"DOEL.\n"
|
||||
|
||||
#: src/getargs.c:333
|
||||
#: src/getargs.c:334
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information.\n"
|
||||
msgstr "Probeer `%s --help' voor meer informatie.\n"
|
||||
|
||||
#: src/getargs.c:340
|
||||
#: src/getargs.c:341
|
||||
#, c-format
|
||||
msgid "%s: no grammar file given\n"
|
||||
msgstr "%s: geen grammaticabestand opgegeven\n"
|
||||
|
||||
#: src/getargs.c:344
|
||||
#: src/getargs.c:345
|
||||
#, c-format
|
||||
msgid "%s: extra arguments ignored after `%s'\n"
|
||||
msgstr "%s: extra argumenten na `%s' worden genegeerd\n"
|
||||
@@ -323,34 +323,64 @@ msgstr " links:"
|
||||
msgid " on right:"
|
||||
msgstr " rechts:"
|
||||
|
||||
#: src/reader.c:52
|
||||
#: src/reader.c:53
|
||||
#, c-format
|
||||
msgid "multiple %s declarations"
|
||||
msgstr "meerdere %s declaraties"
|
||||
|
||||
#: src/reader.c:202
|
||||
#: src/reader.c:139
|
||||
#, c-format
|
||||
msgid "result type clash on merge function %s: `%s' vs. `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:257
|
||||
#, c-format
|
||||
msgid "rule given for %s, which is a token"
|
||||
msgstr "regel opgegeven voor token (%s)"
|
||||
|
||||
#: src/reader.c:227
|
||||
#: src/reader.c:282
|
||||
#, c-format
|
||||
msgid "type clash (`%s' `%s') on default action"
|
||||
msgstr "type-conflict (`%s' `%s') bij standaardaktie"
|
||||
|
||||
#: src/reader.c:235
|
||||
#: src/reader.c:290
|
||||
msgid "empty rule for typed nonterminal, and no action"
|
||||
msgstr "lege regel voor niet-eindsymbool met type, en geen actie"
|
||||
|
||||
#: src/reader.c:306
|
||||
#: src/reader.c:361
|
||||
msgid "two @prec's in a row"
|
||||
msgstr "twee @prec's na elkaar"
|
||||
|
||||
#: src/reader.c:447
|
||||
#: src/reader.c:371
|
||||
#, c-format
|
||||
msgid "%%dprec affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:373
|
||||
#, c-format
|
||||
msgid "%%dprec must be followed by positive number"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:375
|
||||
#, c-format
|
||||
msgid "only one %%dprec allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:386
|
||||
#, c-format
|
||||
msgid "%%merge affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:388
|
||||
#, c-format
|
||||
msgid "only one %%merge allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:531
|
||||
msgid "no rules in the input grammar"
|
||||
msgstr "invoergrammatica bevat geen regels"
|
||||
|
||||
#: src/reader.c:479
|
||||
#: src/reader.c:563
|
||||
#, c-format
|
||||
msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
||||
msgstr "teveel symbolen (tokens plus niet-eindsymbolen); het maximum is %d"
|
||||
@@ -414,22 +444,22 @@ msgstr[1] "%d nutteloze regels"
|
||||
msgid "Start symbol %s does not derive any sentence"
|
||||
msgstr "Startsymbool %s wordt vanuit geen enkele zin bereikt"
|
||||
|
||||
#: scan-gram.l:556
|
||||
#: scan-gram.l:559
|
||||
#, c-format
|
||||
msgid "$$ of `%s' has no declared type"
|
||||
msgstr "$$ van `%s' heeft geen gedeclareerd type"
|
||||
|
||||
#: scan-gram.l:573 scan-gram.l:660
|
||||
#: scan-gram.l:576 scan-gram.l:663
|
||||
#, fuzzy, c-format
|
||||
msgid "invalid value: %s%d"
|
||||
msgstr "ongeldige @-waarde"
|
||||
|
||||
#: scan-gram.l:580
|
||||
#: scan-gram.l:583
|
||||
#, c-format
|
||||
msgid "$%d of `%s' has no declared type"
|
||||
msgstr "$%d van `%s' heeft geen gedeclareerd type"
|
||||
|
||||
#: scan-gram.l:591 scan-gram.l:608 scan-gram.l:667 scan-gram.l:684
|
||||
#: scan-gram.l:594 scan-gram.l:611 scan-gram.l:670 scan-gram.l:687
|
||||
#, c-format
|
||||
msgid "%s is invalid"
|
||||
msgstr "%s is ongeldig"
|
||||
|
||||
102
po/ru.po
102
po/ru.po
@@ -5,7 +5,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: bison 1.32\n"
|
||||
"POT-Creation-Date: 2002-06-27 14:17+0200\n"
|
||||
"POT-Creation-Date: 2002-06-27 17:56-0700\n"
|
||||
"PO-Revision-Date: 2002-01-25 12:19+0300\n"
|
||||
"Last-Translator: Dmitry S. Sivachenko <dima@Chg.RU>\n"
|
||||
"Language-Team: Russian <ru@li.org>\n"
|
||||
@@ -50,7 +50,7 @@ msgid " Conflict between rule %d and token %s resolved as an error"
|
||||
msgstr ""
|
||||
"ëÏÎÆÌÉËÔ × ÓÏÓÔÏÑÎÉÉ %d ÍÅÖÄÕ ÐÒÁ×ÉÌÏÍ %d É ÌÅËÓÅÍÏÊ %s ÒÁÚÒÅÛÅÎ ËÁË %s.\n"
|
||||
|
||||
#: src/conflicts.c:375
|
||||
#: src/conflicts.c:378
|
||||
#, c-format
|
||||
msgid "%d shift/reduce conflict"
|
||||
msgid_plural "%d shift/reduce conflicts"
|
||||
@@ -58,11 +58,11 @@ msgstr[0] "%d
|
||||
msgstr[1] "%d ËÏÎÆÌÉËÔÁ ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
|
||||
msgstr[2] "%d ËÏÎÆÌÉËÔÏ× ÓÄ×ÉÇÁ/×Ù×ÏÄÁ"
|
||||
|
||||
#: src/conflicts.c:382
|
||||
#: src/conflicts.c:385
|
||||
msgid "and"
|
||||
msgstr "É"
|
||||
|
||||
#: src/conflicts.c:388
|
||||
#: src/conflicts.c:391
|
||||
#, c-format
|
||||
msgid "%d reduce/reduce conflict"
|
||||
msgid_plural "%d reduce/reduce conflicts"
|
||||
@@ -70,31 +70,31 @@ msgstr[0] "%d
|
||||
msgstr[1] "%d ËÏÎÆÌÉËÔÁ ×Ù×ÏÄÁ/×Ù×ÏÄÁ"
|
||||
msgstr[2] "%d ËÏÎÆÌÉËÔÏ× ×Ù×ÏÄÁ/×Ù×ÏÄÁ"
|
||||
|
||||
#: src/conflicts.c:413
|
||||
#: src/conflicts.c:416
|
||||
#, c-format
|
||||
msgid "State %d contains "
|
||||
msgstr "óÏÓÔÏÑÎÉÅ %d ÓÏÄÅÒÖÉÔ "
|
||||
|
||||
#: src/conflicts.c:460
|
||||
#: src/conflicts.c:487
|
||||
msgid "conflicts: "
|
||||
msgstr "ËÏÎÆÌÉËÔÙ: "
|
||||
|
||||
#: src/conflicts.c:462
|
||||
#: src/conflicts.c:489
|
||||
#, c-format
|
||||
msgid " %d shift/reduce"
|
||||
msgstr " %d ÓÄ×ÉÇ/×Ù×ÏÄ"
|
||||
|
||||
#: src/conflicts.c:466
|
||||
#: src/conflicts.c:493
|
||||
#, c-format
|
||||
msgid " %d reduce/reduce"
|
||||
msgstr " %d ×Ù×ÏÄ/×Ù×ÏÄ"
|
||||
|
||||
#: src/conflicts.c:471
|
||||
#: src/conflicts.c:498
|
||||
#, c-format
|
||||
msgid "%s contains "
|
||||
msgstr "%s ÓÏÄÅÒÖÉÔ "
|
||||
|
||||
#: src/conflicts.c:478
|
||||
#: src/conflicts.c:505
|
||||
#, c-format
|
||||
msgid "expected %d shift/reduce conflict\n"
|
||||
msgid_plural "expected %d shift/reduce conflicts\n"
|
||||
@@ -111,16 +111,16 @@ msgstr "
|
||||
msgid "cannot close file"
|
||||
msgstr "ÎÅ ÕÄÁÅÔÓÑ ÚÁËÒÙÔØ ÆÁÊÌ"
|
||||
|
||||
#: src/getargs.c:99
|
||||
#: src/getargs.c:100
|
||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
||||
msgstr "GNU bison ÇÅÎÅÒÉÒÕÅÔ ÁÎÁÌÉÚÁÔÏÒÙ ÄÌÑ ÇÒÁÍÍÁÔÉË LALR(1).\n"
|
||||
|
||||
#: src/getargs.c:103
|
||||
#: src/getargs.c:104
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION]... FILE\n"
|
||||
msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþé]... æáêì\n"
|
||||
|
||||
#: src/getargs.c:107
|
||||
#: src/getargs.c:108
|
||||
msgid ""
|
||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
||||
@@ -129,7 +129,7 @@ msgstr ""
|
||||
"Ñ×ÌÑÅÔÓÑ ÏÂÑÚÁÔÅÌØÎÙÍ ÄÌÑ ËÏÒÏÔËÏÊ ÆÏÒÍÙ. ôÏ ÖÅ ËÁÓÁÅÔÓÑ ÎÅÏÂÑÚÁÔÅÌØÎÙÈ\n"
|
||||
"ÁÒÇÕÍÅÎÔÏ×.\n"
|
||||
|
||||
#: src/getargs.c:113
|
||||
#: src/getargs.c:114
|
||||
msgid ""
|
||||
"Operation modes:\n"
|
||||
" -h, --help display this help and exit\n"
|
||||
@@ -141,7 +141,7 @@ msgstr ""
|
||||
" -V, --version ×Ù×ÅÓÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ\n"
|
||||
" -y, --yacc ÜÍÕÌÉÒÏ×ÁÔØ POSIX yacc\n"
|
||||
|
||||
#: src/getargs.c:120
|
||||
#: src/getargs.c:121
|
||||
msgid ""
|
||||
"Parser:\n"
|
||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
||||
@@ -161,7 +161,7 @@ msgstr ""
|
||||
" -n, --no-parser ÇÅÎÅÒÉÒÏ×ÁÔØ ÔÏÌØËÏ ÔÁÂÌÉÃÙ\n"
|
||||
" -k, --token-table ×ËÌÀÞÉÔØ ÔÁÂÌÉÃÕ ÉÍÅÎ ÌÅËÓÅÍ\n"
|
||||
|
||||
#: src/getargs.c:132
|
||||
#: src/getargs.c:133
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Output:\n"
|
||||
@@ -181,7 +181,7 @@ msgstr ""
|
||||
" -g, --graph ÓÏÚÄÁÔØ ÔÁËÖÅ ÐÏÑÓÎÅÎÉÑ Ë Á×ÔÏÍÁÔÕ × ×ÉÄÅ \n"
|
||||
"VCG-ÇÒÁÆÁ\n"
|
||||
|
||||
#: src/getargs.c:143
|
||||
#: src/getargs.c:144
|
||||
msgid ""
|
||||
"THINGS is a list of comma separated words that can include:\n"
|
||||
" `state' describe the states\n"
|
||||
@@ -192,27 +192,27 @@ msgid ""
|
||||
" `none' disable the report\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:154
|
||||
#: src/getargs.c:155
|
||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
||||
msgstr "ïÛÉÂËÉ ÓÏÏÂÝÁÊÔÅ ÐÏ ÁÄÒÅÓÕ <bug-bison@gnu.org>.\n"
|
||||
|
||||
#: src/getargs.c:168
|
||||
#: src/getargs.c:169
|
||||
#, c-format
|
||||
msgid "bison (GNU Bison) %s"
|
||||
msgstr "bison (GNU Bison) %s"
|
||||
|
||||
#: src/getargs.c:170
|
||||
#: src/getargs.c:171
|
||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:174
|
||||
#: src/getargs.c:175
|
||||
#, fuzzy, c-format
|
||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
||||
msgstr ""
|
||||
"Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002\n"
|
||||
"Free Software Foundation, Inc.\n"
|
||||
|
||||
#: src/getargs.c:176
|
||||
#: src/getargs.c:177
|
||||
msgid ""
|
||||
"This is free software; see the source for copying conditions. There is NO\n"
|
||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
||||
@@ -223,17 +223,17 @@ msgstr ""
|
||||
"ðòéçïäîïóôé\n"
|
||||
"äìñ ïðòåäåìåîîïê ãåìé.\n"
|
||||
|
||||
#: src/getargs.c:333
|
||||
#: src/getargs.c:334
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information.\n"
|
||||
msgstr "éÓÐÏÌØÚÕÊÔÅ `%s --help' ÄÌÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ.\n"
|
||||
|
||||
#: src/getargs.c:340
|
||||
#: src/getargs.c:341
|
||||
#, c-format
|
||||
msgid "%s: no grammar file given\n"
|
||||
msgstr "%s: ÎÅ ÚÁÄÁÎ ÆÁÊÌ Ó ÇÒÁÍÍÁÔÉËÏÊ\n"
|
||||
|
||||
#: src/getargs.c:344
|
||||
#: src/getargs.c:345
|
||||
#, c-format
|
||||
msgid "%s: extra arguments ignored after `%s'\n"
|
||||
msgstr "%s: ÌÉÛÎÉÅ ÁÒÇÕÍÅÎÔÙ ÐÏÓÌÅ `%s' ÉÇÎÏÒÉÒÏ×ÁÎÙ\n"
|
||||
@@ -321,35 +321,65 @@ msgstr "
|
||||
msgid " on right:"
|
||||
msgstr " ÎÁÐÒÁ×Ï:"
|
||||
|
||||
#: src/reader.c:52
|
||||
#: src/reader.c:53
|
||||
#, c-format
|
||||
msgid "multiple %s declarations"
|
||||
msgstr "ÍÎÏÖÅÓÔ×ÅÎÎÏÅ ÏÐÉÓÁÎÉÅ %s"
|
||||
|
||||
#: src/reader.c:202
|
||||
#: src/reader.c:139
|
||||
#, c-format
|
||||
msgid "result type clash on merge function %s: `%s' vs. `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:257
|
||||
#, c-format
|
||||
msgid "rule given for %s, which is a token"
|
||||
msgstr "ÐÒÁ×ÉÌÏ ÚÁÄÁÎÏ ÄÌÑ %s, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ÌÅËÓÅÍÏÊ"
|
||||
|
||||
#: src/reader.c:227
|
||||
#: src/reader.c:282
|
||||
#, c-format
|
||||
msgid "type clash (`%s' `%s') on default action"
|
||||
msgstr "ËÏÎÆÌÉËÔ ÔÉÐÏ× (`%s' `%s') ÎÁ ÄÅÊÓÔ×ÉÉ ÐÏ ÕÍÏÌÞÁÎÉÀ"
|
||||
|
||||
#: src/reader.c:235
|
||||
#: src/reader.c:290
|
||||
msgid "empty rule for typed nonterminal, and no action"
|
||||
msgstr ""
|
||||
"ÐÕÓÔÏÅ ÐÒÁ×ÉÌÏ ÄÌÑ ÔÉÐÉÚÉÒÏ×ÁÎÎÏÇÏ ÎÅÔÅÒÍÉÎÁÌØÎÏÇÏ ÓÉÍ×ÏÌÁ, É ÎÅÔ ÄÅÊÓÔ×ÉÑ"
|
||||
|
||||
#: src/reader.c:306
|
||||
#: src/reader.c:361
|
||||
msgid "two @prec's in a row"
|
||||
msgstr "Ä×Á @prec ÐÏÄÒÑÄ"
|
||||
|
||||
#: src/reader.c:447
|
||||
#: src/reader.c:371
|
||||
#, c-format
|
||||
msgid "%%dprec affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:373
|
||||
#, c-format
|
||||
msgid "%%dprec must be followed by positive number"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:375
|
||||
#, c-format
|
||||
msgid "only one %%dprec allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:386
|
||||
#, c-format
|
||||
msgid "%%merge affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:388
|
||||
#, c-format
|
||||
msgid "only one %%merge allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:531
|
||||
msgid "no rules in the input grammar"
|
||||
msgstr "ÏÔÓÕÔÓÔ×ÕÀÔ ÐÒÁ×ÉÌÁ ×Ï ×ÈÏÄÎÏÊ ÇÒÁÍÍÁÔÉËÅ"
|
||||
|
||||
#: src/reader.c:479
|
||||
#: src/reader.c:563
|
||||
#, c-format
|
||||
msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
||||
msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÓÉÍ×ÏÌÏ× (ÌÅËÓÅÍÙ ÐÌÀÓ ÎÅÔÅÒÍÉÎÁÌÙ); ÍÁËÓÉÍÁÌØÎÏ %d"
|
||||
@@ -415,22 +445,22 @@ msgstr[2] "%d
|
||||
msgid "Start symbol %s does not derive any sentence"
|
||||
msgstr "îÁÞÁÌØÎÙÊ ÓÉÍ×ÏÌ %s ÎÅ ×Ù×ÏÄÉÔ ÎÉ ÏÄÎÏÇÏ ÐÒÅÄÌÏÖÅÎÉÑ"
|
||||
|
||||
#: scan-gram.l:556
|
||||
#: scan-gram.l:559
|
||||
#, c-format
|
||||
msgid "$$ of `%s' has no declared type"
|
||||
msgstr "$$ × `%s' ÎÅ ÉÍÅÅÔ ÏÐÉÓÁÎÎÏÇÏ ÔÉÐÁ"
|
||||
|
||||
#: scan-gram.l:573 scan-gram.l:660
|
||||
#: scan-gram.l:576 scan-gram.l:663
|
||||
#, fuzzy, c-format
|
||||
msgid "invalid value: %s%d"
|
||||
msgstr "ÎÅ×ÅÒÎÏÅ $ ÚÎÁÞÅÎÉÅ"
|
||||
|
||||
#: scan-gram.l:580
|
||||
#: scan-gram.l:583
|
||||
#, c-format
|
||||
msgid "$%d of `%s' has no declared type"
|
||||
msgstr "$%d ÉÚ `%s' ÎÅ ÉÍÅÅÔ ÏÐÉÓÁÎÎÏÇÏ ÔÉÐÁ"
|
||||
|
||||
#: scan-gram.l:591 scan-gram.l:608 scan-gram.l:667 scan-gram.l:684
|
||||
#: scan-gram.l:594 scan-gram.l:611 scan-gram.l:670 scan-gram.l:687
|
||||
#, c-format
|
||||
msgid "%s is invalid"
|
||||
msgstr "ÎÅ×ÅÒÎÙÊ ÚÎÁË %s"
|
||||
|
||||
102
po/sv.po
102
po/sv.po
@@ -5,7 +5,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: bison 1.33b\n"
|
||||
"POT-Creation-Date: 2002-06-27 14:17+0200\n"
|
||||
"POT-Creation-Date: 2002-06-27 17:56-0700\n"
|
||||
"PO-Revision-Date: 2002-03-05 10:18+0100\n"
|
||||
"Last-Translator: Göran Uddeborg <goeran@uddeborg.pp.se>\n"
|
||||
"Language-Team: Swedish <sv@li.org>\n"
|
||||
@@ -49,49 +49,49 @@ msgid " Conflict between rule %d and token %s resolved as an error"
|
||||
msgstr ""
|
||||
"Konflikt i tillstånd %d mellan regel %d och element %s, löstes med %s.\n"
|
||||
|
||||
#: src/conflicts.c:375
|
||||
#: src/conflicts.c:378
|
||||
#, c-format
|
||||
msgid "%d shift/reduce conflict"
|
||||
msgid_plural "%d shift/reduce conflicts"
|
||||
msgstr[0] "%d skifta/reducerakonflikt"
|
||||
msgstr[1] "%d skifta/reducerakonflikter"
|
||||
|
||||
#: src/conflicts.c:382
|
||||
#: src/conflicts.c:385
|
||||
msgid "and"
|
||||
msgstr "och"
|
||||
|
||||
#: src/conflicts.c:388
|
||||
#: src/conflicts.c:391
|
||||
#, c-format
|
||||
msgid "%d reduce/reduce conflict"
|
||||
msgid_plural "%d reduce/reduce conflicts"
|
||||
msgstr[0] "%d reducera/reducerakonflikt"
|
||||
msgstr[1] "%d reducera/reducerakonflikter"
|
||||
|
||||
#: src/conflicts.c:413
|
||||
#: src/conflicts.c:416
|
||||
#, c-format
|
||||
msgid "State %d contains "
|
||||
msgstr "Tillstånd %d innehåller "
|
||||
|
||||
#: src/conflicts.c:460
|
||||
#: src/conflicts.c:487
|
||||
msgid "conflicts: "
|
||||
msgstr "konflikter: "
|
||||
|
||||
#: src/conflicts.c:462
|
||||
#: src/conflicts.c:489
|
||||
#, c-format
|
||||
msgid " %d shift/reduce"
|
||||
msgstr " %d skifta/reducera"
|
||||
|
||||
#: src/conflicts.c:466
|
||||
#: src/conflicts.c:493
|
||||
#, c-format
|
||||
msgid " %d reduce/reduce"
|
||||
msgstr " %d reducera/reducera"
|
||||
|
||||
#: src/conflicts.c:471
|
||||
#: src/conflicts.c:498
|
||||
#, c-format
|
||||
msgid "%s contains "
|
||||
msgstr "%s innehåller "
|
||||
|
||||
#: src/conflicts.c:478
|
||||
#: src/conflicts.c:505
|
||||
#, c-format
|
||||
msgid "expected %d shift/reduce conflict\n"
|
||||
msgid_plural "expected %d shift/reduce conflicts\n"
|
||||
@@ -107,16 +107,16 @@ msgstr "kan inte
|
||||
msgid "cannot close file"
|
||||
msgstr "kan inte stänga fil"
|
||||
|
||||
#: src/getargs.c:99
|
||||
#: src/getargs.c:100
|
||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
||||
msgstr "GNU bison genererar parsrar för LALR(1)-grammatiker.\n"
|
||||
|
||||
#: src/getargs.c:103
|
||||
#: src/getargs.c:104
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION]... FILE\n"
|
||||
msgstr "Användning: %s [FLAGGA]... FIL\n"
|
||||
|
||||
#: src/getargs.c:107
|
||||
#: src/getargs.c:108
|
||||
msgid ""
|
||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
||||
@@ -125,7 +125,7 @@ msgstr ""
|
||||
"obligatoriskt för den motsvarande korta flaggan också. Motsvarande\n"
|
||||
"för valfria argument.\n"
|
||||
|
||||
#: src/getargs.c:113
|
||||
#: src/getargs.c:114
|
||||
msgid ""
|
||||
"Operation modes:\n"
|
||||
" -h, --help display this help and exit\n"
|
||||
@@ -137,7 +137,7 @@ msgstr ""
|
||||
" -V, --version visa versionsinformation och avsluta\n"
|
||||
" -y, --yacc emulera POSIX-yacc\n"
|
||||
|
||||
#: src/getargs.c:120
|
||||
#: src/getargs.c:121
|
||||
msgid ""
|
||||
"Parser:\n"
|
||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
||||
@@ -157,7 +157,7 @@ msgstr ""
|
||||
" -n, --no-parser generera endast tabellerna\n"
|
||||
" -k, --token-table inkludera en tabell över elementnamn\n"
|
||||
|
||||
#: src/getargs.c:132
|
||||
#: src/getargs.c:133
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Output:\n"
|
||||
@@ -176,7 +176,7 @@ msgstr ""
|
||||
" -o, --output=FIL lägg utdata i FIL\n"
|
||||
" -g, --graph skapa också en VCG-beskrivning av automaten\n"
|
||||
|
||||
#: src/getargs.c:143
|
||||
#: src/getargs.c:144
|
||||
msgid ""
|
||||
"THINGS is a list of comma separated words that can include:\n"
|
||||
" `state' describe the states\n"
|
||||
@@ -187,29 +187,29 @@ msgid ""
|
||||
" `none' disable the report\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:154
|
||||
#: src/getargs.c:155
|
||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
||||
msgstr ""
|
||||
"Rapportera fel till <bug-bison@gnu.org>.\n"
|
||||
"Rapportera synpunkter på översättningen till <sv@li.org>.\n"
|
||||
|
||||
#: src/getargs.c:168
|
||||
#: src/getargs.c:169
|
||||
#, c-format
|
||||
msgid "bison (GNU Bison) %s"
|
||||
msgstr "bison (GNU Bison) %s"
|
||||
|
||||
#: src/getargs.c:170
|
||||
#: src/getargs.c:171
|
||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:174
|
||||
#: src/getargs.c:175
|
||||
#, fuzzy, c-format
|
||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
||||
msgstr ""
|
||||
"Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002\n"
|
||||
"Free Software Foundation, Inc.\n"
|
||||
|
||||
#: src/getargs.c:176
|
||||
#: src/getargs.c:177
|
||||
msgid ""
|
||||
"This is free software; see the source for copying conditions. There is NO\n"
|
||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
||||
@@ -218,17 +218,17 @@ msgstr ""
|
||||
"finns INGEN garanti, inte ens för SÄLJBARHET eller LÄMPLIGHET FÖR ETT\n"
|
||||
"SPECIELLT ÄNDAMÅL.\n"
|
||||
|
||||
#: src/getargs.c:333
|
||||
#: src/getargs.c:334
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information.\n"
|
||||
msgstr "Försök med \"%s --help\" för mer information.\n"
|
||||
|
||||
#: src/getargs.c:340
|
||||
#: src/getargs.c:341
|
||||
#, c-format
|
||||
msgid "%s: no grammar file given\n"
|
||||
msgstr "%s: ingen grammatikfil angiven\n"
|
||||
|
||||
#: src/getargs.c:344
|
||||
#: src/getargs.c:345
|
||||
#, c-format
|
||||
msgid "%s: extra arguments ignored after `%s'\n"
|
||||
msgstr "%s: extra argument ignorerade efter \"%s\"\n"
|
||||
@@ -316,34 +316,64 @@ msgstr " till v
|
||||
msgid " on right:"
|
||||
msgstr " till höger:"
|
||||
|
||||
#: src/reader.c:52
|
||||
#: src/reader.c:53
|
||||
#, c-format
|
||||
msgid "multiple %s declarations"
|
||||
msgstr "flera %s-deklarationer"
|
||||
|
||||
#: src/reader.c:202
|
||||
#: src/reader.c:139
|
||||
#, c-format
|
||||
msgid "result type clash on merge function %s: `%s' vs. `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:257
|
||||
#, c-format
|
||||
msgid "rule given for %s, which is a token"
|
||||
msgstr "regel given för %s, som är ett element"
|
||||
|
||||
#: src/reader.c:227
|
||||
#: src/reader.c:282
|
||||
#, c-format
|
||||
msgid "type clash (`%s' `%s') on default action"
|
||||
msgstr "typkonflikt (\"%s\" \"%s\") för standardåtgärd"
|
||||
|
||||
#: src/reader.c:235
|
||||
#: src/reader.c:290
|
||||
msgid "empty rule for typed nonterminal, and no action"
|
||||
msgstr "tom regel för typad icketerminal, och ingen åtgärd"
|
||||
|
||||
#: src/reader.c:306
|
||||
#: src/reader.c:361
|
||||
msgid "two @prec's in a row"
|
||||
msgstr "två @prec i rad"
|
||||
|
||||
#: src/reader.c:447
|
||||
#: src/reader.c:371
|
||||
#, c-format
|
||||
msgid "%%dprec affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:373
|
||||
#, c-format
|
||||
msgid "%%dprec must be followed by positive number"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:375
|
||||
#, c-format
|
||||
msgid "only one %%dprec allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:386
|
||||
#, c-format
|
||||
msgid "%%merge affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:388
|
||||
#, c-format
|
||||
msgid "only one %%merge allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:531
|
||||
msgid "no rules in the input grammar"
|
||||
msgstr "inga regler i ingrammatiken"
|
||||
|
||||
#: src/reader.c:479
|
||||
#: src/reader.c:563
|
||||
#, c-format
|
||||
msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
||||
msgstr "för många symboler (element plus icketerminaler); max %d"
|
||||
@@ -406,22 +436,22 @@ msgstr[1] "%d oanv
|
||||
msgid "Start symbol %s does not derive any sentence"
|
||||
msgstr "Startsymbolen %s genererar inga meningar"
|
||||
|
||||
#: scan-gram.l:556
|
||||
#: scan-gram.l:559
|
||||
#, c-format
|
||||
msgid "$$ of `%s' has no declared type"
|
||||
msgstr "$$ för \"%s\" har ingen deklarerad typ"
|
||||
|
||||
#: scan-gram.l:573 scan-gram.l:660
|
||||
#: scan-gram.l:576 scan-gram.l:663
|
||||
#, fuzzy, c-format
|
||||
msgid "invalid value: %s%d"
|
||||
msgstr "felaktigt @-värde"
|
||||
|
||||
#: scan-gram.l:580
|
||||
#: scan-gram.l:583
|
||||
#, c-format
|
||||
msgid "$%d of `%s' has no declared type"
|
||||
msgstr "$%d för \"%s\" har ingen deklarerad typ"
|
||||
|
||||
#: scan-gram.l:591 scan-gram.l:608 scan-gram.l:667 scan-gram.l:684
|
||||
#: scan-gram.l:594 scan-gram.l:611 scan-gram.l:670 scan-gram.l:687
|
||||
#, c-format
|
||||
msgid "%s is invalid"
|
||||
msgstr "%s är felaktigt"
|
||||
|
||||
102
po/tr.po
102
po/tr.po
@@ -5,7 +5,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: bison 1.34\n"
|
||||
"POT-Creation-Date: 2002-06-27 14:17+0200\n"
|
||||
"POT-Creation-Date: 2002-06-27 17:56-0700\n"
|
||||
"PO-Revision-Date: 2002-03-14 11:03GMT +02:00\n"
|
||||
"Last-Translator: Altuð Bayram <altugbayram_2000@yahoo.com>\n"
|
||||
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
|
||||
@@ -53,49 +53,49 @@ msgstr ""
|
||||
"%d durumu içinde %d kuralý ve %s andaçý arasýndaki çeliþki %s olarak\n"
|
||||
"çözümlendi.\n"
|
||||
|
||||
#: src/conflicts.c:375
|
||||
#: src/conflicts.c:378
|
||||
#, c-format
|
||||
msgid "%d shift/reduce conflict"
|
||||
msgid_plural "%d shift/reduce conflicts"
|
||||
msgstr[0] "%d öteleme/indirgeme çeliþkisi"
|
||||
msgstr[1] "%d öteleme/indirgeme çeliþkisi"
|
||||
|
||||
#: src/conflicts.c:382
|
||||
#: src/conflicts.c:385
|
||||
msgid "and"
|
||||
msgstr "ve"
|
||||
|
||||
#: src/conflicts.c:388
|
||||
#: src/conflicts.c:391
|
||||
#, c-format
|
||||
msgid "%d reduce/reduce conflict"
|
||||
msgid_plural "%d reduce/reduce conflicts"
|
||||
msgstr[0] "%d indirgeme/indirgeme çeliþkisi"
|
||||
msgstr[1] "%d indirgeme/indirgeme çeliþkisi"
|
||||
|
||||
#: src/conflicts.c:413
|
||||
#: src/conflicts.c:416
|
||||
#, c-format
|
||||
msgid "State %d contains "
|
||||
msgstr "%d durumu içerir"
|
||||
|
||||
#: src/conflicts.c:460
|
||||
#: src/conflicts.c:487
|
||||
msgid "conflicts: "
|
||||
msgstr "çeliþkiler: "
|
||||
|
||||
#: src/conflicts.c:462
|
||||
#: src/conflicts.c:489
|
||||
#, c-format
|
||||
msgid " %d shift/reduce"
|
||||
msgstr " %d öteleme/indirgeme"
|
||||
|
||||
#: src/conflicts.c:466
|
||||
#: src/conflicts.c:493
|
||||
#, c-format
|
||||
msgid " %d reduce/reduce"
|
||||
msgstr " %d indirgeme/indirgeme"
|
||||
|
||||
#: src/conflicts.c:471
|
||||
#: src/conflicts.c:498
|
||||
#, c-format
|
||||
msgid "%s contains "
|
||||
msgstr "%s içerir"
|
||||
|
||||
#: src/conflicts.c:478
|
||||
#: src/conflicts.c:505
|
||||
#, c-format
|
||||
msgid "expected %d shift/reduce conflict\n"
|
||||
msgid_plural "expected %d shift/reduce conflicts\n"
|
||||
@@ -111,16 +111,16 @@ msgstr "`%s' dosyas
|
||||
msgid "cannot close file"
|
||||
msgstr "dosya kapatýlamýyor"
|
||||
|
||||
#: src/getargs.c:99
|
||||
#: src/getargs.c:100
|
||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
||||
msgstr "GNU bison LALR(1) gramerler için ayrýþtýrýcýlar üretir.\n"
|
||||
|
||||
#: src/getargs.c:103
|
||||
#: src/getargs.c:104
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTION]... FILE\n"
|
||||
msgstr "Kullaným: %s [SEÇENEK]... DOSYA\n"
|
||||
|
||||
#: src/getargs.c:107
|
||||
#: src/getargs.c:108
|
||||
msgid ""
|
||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
||||
@@ -130,7 +130,7 @@ msgstr ""
|
||||
"seçenek için de geçerlidir. Bu durum, seçimli argümanlar için de "
|
||||
"geçerlidir.\n"
|
||||
|
||||
#: src/getargs.c:113
|
||||
#: src/getargs.c:114
|
||||
msgid ""
|
||||
"Operation modes:\n"
|
||||
" -h, --help display this help and exit\n"
|
||||
@@ -142,7 +142,7 @@ msgstr ""
|
||||
" -V, --version sürüm bilgisini ver ve çýk\n"
|
||||
" -y, --yacc POSIX yacc öykünmesi\n"
|
||||
|
||||
#: src/getargs.c:120
|
||||
#: src/getargs.c:121
|
||||
msgid ""
|
||||
"Parser:\n"
|
||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
||||
@@ -162,7 +162,7 @@ msgstr ""
|
||||
" -n, --no-parser sadece tablolarý üret\n"
|
||||
" -k, --token-table andaç isimlerinin bir tablosunu içer\n"
|
||||
|
||||
#: src/getargs.c:132
|
||||
#: src/getargs.c:133
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Output:\n"
|
||||
@@ -181,7 +181,7 @@ msgstr ""
|
||||
" -o, --output=DOSYA çýktýyý dosyaya býrakýr\n"
|
||||
" -g, --graph otomatýn bir VCG grafik açýklamasýný da üretir\n"
|
||||
|
||||
#: src/getargs.c:143
|
||||
#: src/getargs.c:144
|
||||
msgid ""
|
||||
"THINGS is a list of comma separated words that can include:\n"
|
||||
" `state' describe the states\n"
|
||||
@@ -192,29 +192,29 @@ msgid ""
|
||||
" `none' disable the report\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:154
|
||||
#: src/getargs.c:155
|
||||
msgid "Report bugs to <bug-bison@gnu.org>.\n"
|
||||
msgstr ""
|
||||
"Hatalarý <bug-bison@gnu.org>'a,\n"
|
||||
"çeviri hatalarýný <gnu-tr-u12a@lists.sourceforge.net>'e bildir.\n"
|
||||
|
||||
#: src/getargs.c:168
|
||||
#: src/getargs.c:169
|
||||
#, c-format
|
||||
msgid "bison (GNU Bison) %s"
|
||||
msgstr "bison (GNU Bison) %s"
|
||||
|
||||
#: src/getargs.c:170
|
||||
#: src/getargs.c:171
|
||||
msgid "Written by Robert Corbett and Richard Stallman.\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/getargs.c:174
|
||||
#: src/getargs.c:175
|
||||
#, fuzzy, c-format
|
||||
msgid "Copyright (C) %d Free Software Foundation, Inc.\n"
|
||||
msgstr ""
|
||||
"Kopyahakký 1984, 1986, 1989, 1992, 2000, 2001, 2002\n"
|
||||
"Free Software Foundation, Inc.\n"
|
||||
|
||||
#: src/getargs.c:176
|
||||
#: src/getargs.c:177
|
||||
msgid ""
|
||||
"This is free software; see the source for copying conditions. There is NO\n"
|
||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
||||
@@ -223,17 +223,17 @@ msgstr ""
|
||||
"Hiçbir garantisi yoktur; hatta SATILABÝLÝRLÝÐÝ veya ÞAHSÝ KULLANIMINIZA\n"
|
||||
"UYGUNLUÐU için bile garanti verilmez.\n"
|
||||
|
||||
#: src/getargs.c:333
|
||||
#: src/getargs.c:334
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information.\n"
|
||||
msgstr "Daha fazla bilgi için `%s --help' yazýn.\n"
|
||||
|
||||
#: src/getargs.c:340
|
||||
#: src/getargs.c:341
|
||||
#, c-format
|
||||
msgid "%s: no grammar file given\n"
|
||||
msgstr "%s: gramer dosyasý verilmemiþ\n"
|
||||
|
||||
#: src/getargs.c:344
|
||||
#: src/getargs.c:345
|
||||
#, c-format
|
||||
msgid "%s: extra arguments ignored after `%s'\n"
|
||||
msgstr "%s: '%s' den sonraki argümanlar yoksayýldý\n"
|
||||
@@ -321,35 +321,65 @@ msgstr " solda:"
|
||||
msgid " on right:"
|
||||
msgstr " saðda:"
|
||||
|
||||
#: src/reader.c:52
|
||||
#: src/reader.c:53
|
||||
#, c-format
|
||||
msgid "multiple %s declarations"
|
||||
msgstr "çoklu %s bildirimleri"
|
||||
|
||||
#: src/reader.c:202
|
||||
#: src/reader.c:139
|
||||
#, c-format
|
||||
msgid "result type clash on merge function %s: `%s' vs. `%s'"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:257
|
||||
#, c-format
|
||||
msgid "rule given for %s, which is a token"
|
||||
msgstr "bir andaç olan %s için verilen kural"
|
||||
|
||||
#: src/reader.c:227
|
||||
#: src/reader.c:282
|
||||
#, c-format
|
||||
msgid "type clash (`%s' `%s') on default action"
|
||||
msgstr "öntanýmlý eylem üzerinde (`%s' `%s') tip çatýþmasý"
|
||||
|
||||
#: src/reader.c:235
|
||||
#: src/reader.c:290
|
||||
msgid "empty rule for typed nonterminal, and no action"
|
||||
msgstr ""
|
||||
"Tipli deðiþken simge için boþ kural tanýmlanmýþ, ve eylem belirtilmemiþ"
|
||||
|
||||
#: src/reader.c:306
|
||||
#: src/reader.c:361
|
||||
msgid "two @prec's in a row"
|
||||
msgstr "bir satýrda iki @prec"
|
||||
|
||||
#: src/reader.c:447
|
||||
#: src/reader.c:371
|
||||
#, c-format
|
||||
msgid "%%dprec affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:373
|
||||
#, c-format
|
||||
msgid "%%dprec must be followed by positive number"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:375
|
||||
#, c-format
|
||||
msgid "only one %%dprec allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:386
|
||||
#, c-format
|
||||
msgid "%%merge affects only GLR parsers"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:388
|
||||
#, c-format
|
||||
msgid "only one %%merge allowed per rule"
|
||||
msgstr ""
|
||||
|
||||
#: src/reader.c:531
|
||||
msgid "no rules in the input grammar"
|
||||
msgstr "girdi grameri içinde kurallar yok"
|
||||
|
||||
#: src/reader.c:479
|
||||
#: src/reader.c:563
|
||||
#, c-format
|
||||
msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
||||
msgstr "çok fazla simge var (andaçlar ve deðiþken simgeler); en fazla %d"
|
||||
@@ -412,22 +442,22 @@ msgstr[1] "%d yarars
|
||||
msgid "Start symbol %s does not derive any sentence"
|
||||
msgstr "Baþlangýç simgesi %s herhangi bir cümleden türemez"
|
||||
|
||||
#: scan-gram.l:556
|
||||
#: scan-gram.l:559
|
||||
#, c-format
|
||||
msgid "$$ of `%s' has no declared type"
|
||||
msgstr "`%s''in $$'ý bildirilmiþ tip deðil"
|
||||
|
||||
#: scan-gram.l:573 scan-gram.l:660
|
||||
#: scan-gram.l:576 scan-gram.l:663
|
||||
#, fuzzy, c-format
|
||||
msgid "invalid value: %s%d"
|
||||
msgstr "geçersiz @ deðeri"
|
||||
|
||||
#: scan-gram.l:580
|
||||
#: scan-gram.l:583
|
||||
#, c-format
|
||||
msgid "$%d of `%s' has no declared type"
|
||||
msgstr "`%2$s''in %1$d'i bildirilmiþ tip deðil"
|
||||
|
||||
#: scan-gram.l:591 scan-gram.l:608 scan-gram.l:667 scan-gram.l:684
|
||||
#: scan-gram.l:594 scan-gram.l:611 scan-gram.l:670 scan-gram.l:687
|
||||
#, c-format
|
||||
msgid "%s is invalid"
|
||||
msgstr "%s geçersizdir"
|
||||
|
||||
@@ -331,12 +331,15 @@ count_sr_conflicts (state_t *state)
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------------.
|
||||
| Count the number of reduce/reduce conflicts. |
|
||||
`----------------------------------------------*/
|
||||
/*----------------------------------------------------------------.
|
||||
| Count the number of reduce/reduce conflicts. If ONE_PER_TOKEN, |
|
||||
| count one conflict for each token that has any reduce/reduce |
|
||||
| conflicts. Otherwise, count one conflict for each pair of |
|
||||
| conflicting reductions. |
|
||||
+`----------------------------------------------------------------*/
|
||||
|
||||
static int
|
||||
count_rr_conflicts (state_t *state)
|
||||
count_rr_conflicts (state_t *state, int one_per_token)
|
||||
{
|
||||
int i;
|
||||
int rrc_count = 0;
|
||||
@@ -353,7 +356,7 @@ count_rr_conflicts (state_t *state)
|
||||
count++;
|
||||
|
||||
if (count >= 2)
|
||||
rrc_count++;
|
||||
rrc_count += one_per_token ? 1 : count-1;
|
||||
}
|
||||
|
||||
return rrc_count;
|
||||
@@ -412,13 +415,37 @@ conflicts_output (FILE *out)
|
||||
{
|
||||
fprintf (out, _("State %d contains "), i);
|
||||
fputs (conflict_report (count_sr_conflicts (states[i]),
|
||||
count_rr_conflicts (states[i])), out);
|
||||
count_rr_conflicts (states[i], TRUE)), out);
|
||||
printed_sth = TRUE;
|
||||
}
|
||||
if (printed_sth)
|
||||
fputs ("\n\n", out);
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------.
|
||||
| Total the number of S/R and R/R conflicts. Unlike the |
|
||||
| code in conflicts_output, however, count EACH pair of |
|
||||
| reductions for the same state and lookahead as one |
|
||||
| conflict. |
|
||||
`--------------------------------------------------------*/
|
||||
|
||||
int
|
||||
conflicts_total_count (void)
|
||||
{
|
||||
int i;
|
||||
int count;
|
||||
|
||||
/* Conflicts by state. */
|
||||
count = 0;
|
||||
for (i = 0; i < nstates; i++)
|
||||
if (conflicts[i])
|
||||
{
|
||||
count += count_sr_conflicts (states[i]);
|
||||
count += count_rr_conflicts (states[i], FALSE);
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------.
|
||||
| Reporting the total number of conflicts. |
|
||||
@@ -442,7 +469,7 @@ conflicts_print (void)
|
||||
if (conflicts[i])
|
||||
{
|
||||
src_total += count_sr_conflicts (states[i]);
|
||||
rrc_total += count_rr_conflicts (states[i]);
|
||||
rrc_total += count_rr_conflicts (states[i], TRUE);
|
||||
}
|
||||
|
||||
src_ok = src_total == (expected_conflicts == -1 ? 0 : expected_conflicts);
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
void conflicts_solve PARAMS ((void));
|
||||
void conflicts_print PARAMS ((void));
|
||||
int conflicts_total_count PARAMS ((void));
|
||||
void conflicts_output PARAMS ((FILE *out));
|
||||
void conflicts_free PARAMS ((void));
|
||||
|
||||
|
||||
@@ -43,6 +43,7 @@ symbol_number_t *token_translations = NULL;
|
||||
|
||||
int max_user_token_number = 256;
|
||||
|
||||
int glr_parser = 0;
|
||||
int pure_parser = 0;
|
||||
|
||||
|
||||
@@ -249,4 +250,5 @@ grammar_free (void)
|
||||
XFREE (token_translations);
|
||||
/* Free the symbol table data structure. */
|
||||
symbols_free ();
|
||||
free_merger_functions ();
|
||||
}
|
||||
|
||||
13
src/gram.h
13
src/gram.h
@@ -68,6 +68,10 @@
|
||||
|
||||
RULES[R].assoc -- the associativity of R.
|
||||
|
||||
RULES[R].dprec -- the dynamic precedence level of R (for GLR parsing).
|
||||
|
||||
RULES[R].merger -- index of merging function for R (for GLR parsing).
|
||||
|
||||
RULES[R].line -- the line where R was defined.
|
||||
|
||||
RULES[R].useful -- TRUE iff the rule is used (i.e., FALSE if thrown
|
||||
@@ -141,6 +145,9 @@ typedef struct rule_s
|
||||
/* This symbol provides both the associativity, and the precedence. */
|
||||
symbol_t *prec;
|
||||
|
||||
short dprec;
|
||||
short merger;
|
||||
|
||||
/* This symbol was attached to the rule via %prec. */
|
||||
symbol_t *precsym;
|
||||
|
||||
@@ -163,6 +170,12 @@ extern symbol_number_t *token_translations;
|
||||
extern int max_user_token_number;
|
||||
|
||||
|
||||
/* GLR_PARSER is nonzero if the input file says to use the GLR
|
||||
(Generalized LR) parser, and to output some additional
|
||||
information used by the GLR algorithm. */
|
||||
|
||||
extern int glr_parser;
|
||||
|
||||
/* PURE_PARSER is nonzero if should generate a parser that is all pure
|
||||
and reentrant. */
|
||||
|
||||
|
||||
180
src/output.c
180
src/output.c
@@ -115,14 +115,21 @@ static int nvectors;
|
||||
static int nentries;
|
||||
static short **froms = NULL;
|
||||
static short **tos = NULL;
|
||||
static unsigned int **conflict_tos = NULL;
|
||||
static short *tally = NULL;
|
||||
static short *width = NULL;
|
||||
static short *actrow = NULL;
|
||||
static short *conflrow = NULL;
|
||||
static short *state_count = NULL;
|
||||
static short *order = NULL;
|
||||
static short *base = NULL;
|
||||
static short *pos = NULL;
|
||||
|
||||
static unsigned int *conflict_table = NULL;
|
||||
static unsigned int *conflict_list = NULL;
|
||||
static int conflict_list_cnt;
|
||||
static int conflict_list_free;
|
||||
|
||||
/* TABLE_SIZE is the allocated size of both TABLE and CHECK.
|
||||
We start with the original hard-coded value: SHRT_MAX
|
||||
(yes, not USHRT_MAX). */
|
||||
@@ -157,6 +164,8 @@ table_grow (size_t desired)
|
||||
|
||||
table = XREALLOC (table, short, table_size);
|
||||
check = XREALLOC (check, short, table_size);
|
||||
if (glr_parser)
|
||||
conflict_table = XREALLOC (conflict_table, unsigned int, table_size);
|
||||
|
||||
for (/* Nothing. */; old_size < table_size; ++old_size)
|
||||
{
|
||||
@@ -278,7 +287,7 @@ prepare_tokens (void)
|
||||
|
||||
/*-------------------------------------------------------------.
|
||||
| Prepare the muscles related to the rules: rhs, prhs, r1, r2, |
|
||||
| rline. |
|
||||
| rline, dprec, merger |
|
||||
`-------------------------------------------------------------*/
|
||||
|
||||
static void
|
||||
@@ -291,6 +300,8 @@ prepare_rules (void)
|
||||
unsigned int *rline = XMALLOC (unsigned int, nrules + 1);
|
||||
symbol_number_t *r1 = XMALLOC (symbol_number_t, nrules + 1);
|
||||
unsigned int *r2 = XMALLOC (unsigned int, nrules + 1);
|
||||
short *dprec = XMALLOC (short, nrules + 1);
|
||||
short *merger = XMALLOC (short, nrules + 1);
|
||||
|
||||
for (r = 1; r < nrules + 1; ++r)
|
||||
{
|
||||
@@ -308,6 +319,10 @@ prepare_rules (void)
|
||||
rhs[i++] = -1;
|
||||
/* Line where rule was defined. */
|
||||
rline[r] = rules[r].location.first_line;
|
||||
/* Dynamic precedence (GLR) */
|
||||
dprec[r] = rules[r].dprec;
|
||||
/* Merger-function index (GLR) */
|
||||
merger[r] = rules[r].merger;
|
||||
}
|
||||
assert (i == nritems);
|
||||
|
||||
@@ -316,12 +331,16 @@ prepare_rules (void)
|
||||
muscle_insert_unsigned_int_table ("rline", rline, 0, 1, nrules + 1);
|
||||
muscle_insert_symbol_number_table ("r1", r1, 0, 1, nrules + 1);
|
||||
muscle_insert_unsigned_int_table ("r2", r2, 0, 1, nrules + 1);
|
||||
muscle_insert_short_table ("dprec", dprec, 0, 1, nrules + 1);
|
||||
muscle_insert_short_table ("merger", merger, 0, 1, nrules + 1);
|
||||
|
||||
free (rhs);
|
||||
free (prhs);
|
||||
free (rline);
|
||||
free (r1);
|
||||
free (r2);
|
||||
free (dprec);
|
||||
free (merger);
|
||||
}
|
||||
|
||||
/*--------------------------------------------.
|
||||
@@ -341,6 +360,50 @@ prepare_states (void)
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------.
|
||||
| For GLR parsers, for each conflicted token in STATE, as indicated |
|
||||
| by non-zero entries in conflrow, create a list of possible |
|
||||
| reductions that are alternatives to the shift or reduction |
|
||||
| currently recorded for that token in STATE. Store the alternative |
|
||||
| reductions followed by a 0 in conflict_list, updating |
|
||||
| conflict_list_cnt, and storing an index to the start of the list |
|
||||
| back into conflrow. |
|
||||
`-------------------------------------------------------------------*/
|
||||
|
||||
static void
|
||||
conflict_row (state_t *state)
|
||||
{
|
||||
int i, j;
|
||||
|
||||
if (! glr_parser)
|
||||
return;
|
||||
|
||||
for (j = 0; j < ntokens; j += 1)
|
||||
if (conflrow[j])
|
||||
{
|
||||
conflrow[j] = conflict_list_cnt;
|
||||
|
||||
/* find all reductions for token j, and record all that do
|
||||
* not match actrow[j] */
|
||||
for (i = 0; i < state->nlookaheads; i += 1)
|
||||
if (bitset_test (state->lookaheads[i], j)
|
||||
&& actrow[j] != -state->lookaheads_rule[i]->number)
|
||||
{
|
||||
assert (conflict_list_free > 0);
|
||||
conflict_list[conflict_list_cnt]
|
||||
= state->lookaheads_rule[i]->number;
|
||||
conflict_list_cnt += 1;
|
||||
conflict_list_free -= 1;
|
||||
}
|
||||
|
||||
/* Leave a 0 at the end */
|
||||
assert (conflict_list_free > 0);
|
||||
conflict_list_cnt += 1;
|
||||
conflict_list_free -= 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------.
|
||||
| Decide what to do for each type of token if seen as the lookahead |
|
||||
| token in specified state. The value returned is used as the |
|
||||
@@ -353,6 +416,11 @@ prepare_states (void)
|
||||
| This is where conflicts are resolved. The loop over lookahead |
|
||||
| rules considered lower-numbered rules last, and the last rule |
|
||||
| considered that likes a token gets to handle it. |
|
||||
| |
|
||||
| For GLR parsers, also sets conflrow[SYM] to an index into |
|
||||
| conflict_list iff there is an unresolved conflict (s/r or r/r) |
|
||||
| with symbol SYM. The default reduction is not used for a symbol |
|
||||
| that has any such conflicts. |
|
||||
`------------------------------------------------------------------*/
|
||||
|
||||
static int
|
||||
@@ -365,9 +433,10 @@ action_row (state_t *state)
|
||||
errs *errp = state->errs;
|
||||
/* set nonzero to inhibit having any default reduction */
|
||||
int nodefault = 0;
|
||||
int conflicted = 0;
|
||||
|
||||
for (i = 0; i < ntokens; i++)
|
||||
actrow[i] = 0;
|
||||
actrow[i] = conflrow[i] = 0;
|
||||
|
||||
if (redp->nreds >= 1)
|
||||
{
|
||||
@@ -381,7 +450,11 @@ action_row (state_t *state)
|
||||
/* and record this rule as the rule to use if that
|
||||
token follows. */
|
||||
if (bitset_test (state->lookaheads[i], j))
|
||||
actrow[j] = -state->lookaheads_rule[i]->number;
|
||||
{
|
||||
if (actrow[j] != 0)
|
||||
conflicted = conflrow[j] = 1;
|
||||
actrow[j] = -state->lookaheads_rule[i]->number;
|
||||
}
|
||||
}
|
||||
|
||||
/* Now see which tokens are allowed for shifts in this state. For
|
||||
@@ -399,6 +472,8 @@ action_row (state_t *state)
|
||||
if (ISVAR (symbol))
|
||||
break;
|
||||
|
||||
if (actrow[symbol] != 0)
|
||||
conflicted = conflrow[symbol] = 1;
|
||||
actrow[symbol] = shift_state;
|
||||
|
||||
/* Do not use any default reduction if there is a shift for
|
||||
@@ -442,18 +517,20 @@ action_row (state_t *state)
|
||||
}
|
||||
}
|
||||
|
||||
/* actions which match the default are replaced with zero,
|
||||
which means "use the default" */
|
||||
/* GLR parsers need space for conflict lists, so we can't
|
||||
default conflicted entries. For non-conflicted entries
|
||||
or as long as we are not building a GLR parser,
|
||||
actions that match the default are replaced with zero,
|
||||
which means "use the default". */
|
||||
|
||||
if (max > 0)
|
||||
{
|
||||
int j;
|
||||
for (j = 0; j < ntokens; j++)
|
||||
if (actrow[j] == default_rule)
|
||||
if (actrow[j] == default_rule && ! (glr_parser && conflrow[j]))
|
||||
actrow[j] = 0;
|
||||
|
||||
default_rule = -default_rule;
|
||||
}
|
||||
default_rule = -default_rule;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -465,6 +542,9 @@ action_row (state_t *state)
|
||||
if (actrow[i] == SHRT_MIN)
|
||||
actrow[i] = 0;
|
||||
|
||||
if (conflicted)
|
||||
conflict_row (state);
|
||||
|
||||
return default_rule;
|
||||
}
|
||||
|
||||
@@ -477,6 +557,7 @@ save_row (int state)
|
||||
short *sp;
|
||||
short *sp1;
|
||||
short *sp2;
|
||||
unsigned int *sp3;
|
||||
|
||||
count = 0;
|
||||
for (i = 0; i < ntokens; i++)
|
||||
@@ -488,12 +569,18 @@ save_row (int state)
|
||||
|
||||
froms[state] = sp1 = sp = XCALLOC (short, count);
|
||||
tos[state] = sp2 = XCALLOC (short, count);
|
||||
if (glr_parser)
|
||||
conflict_tos[state] = sp3 = XCALLOC (unsigned int, count);
|
||||
else
|
||||
conflict_tos[state] = NULL;
|
||||
|
||||
for (i = 0; i < ntokens; i++)
|
||||
if (actrow[i] != 0)
|
||||
{
|
||||
*sp1++ = i;
|
||||
*sp2++ = actrow[i];
|
||||
if (glr_parser)
|
||||
*sp3++ = conflrow[i];
|
||||
}
|
||||
|
||||
tally[state] = count;
|
||||
@@ -513,9 +600,22 @@ static void
|
||||
token_actions (void)
|
||||
{
|
||||
size_t i;
|
||||
int nconflict = conflicts_total_count ();
|
||||
|
||||
short *yydefact = XCALLOC (short, nstates);
|
||||
|
||||
actrow = XCALLOC (short, ntokens);
|
||||
|
||||
conflrow = XCALLOC (short, ntokens);
|
||||
if (glr_parser)
|
||||
{
|
||||
conflict_list = XCALLOC (unsigned int, 1 + 2 * nconflict);
|
||||
conflict_list_free = 2 * nconflict;
|
||||
conflict_list_cnt = 1;
|
||||
}
|
||||
else
|
||||
conflict_list_free = conflict_list_cnt = 0;
|
||||
|
||||
for (i = 0; i < nstates; ++i)
|
||||
{
|
||||
yydefact[i] = action_row (states[i]);
|
||||
@@ -525,6 +625,7 @@ token_actions (void)
|
||||
muscle_insert_short_table ("defact", yydefact,
|
||||
yydefact[0], 1, nstates);
|
||||
XFREE (actrow);
|
||||
XFREE (conflrow);
|
||||
XFREE (yydefact);
|
||||
}
|
||||
|
||||
@@ -555,6 +656,28 @@ actions_output (FILE *out)
|
||||
fputs ("]])\n\n", out);
|
||||
}
|
||||
|
||||
/*--------------------------------------.
|
||||
| Output the merge functions to OUT. |
|
||||
`--------------------------------------*/
|
||||
|
||||
void
|
||||
merger_output (FILE *out)
|
||||
{
|
||||
int n;
|
||||
merger_list* p;
|
||||
|
||||
fputs ("m4_define([b4_mergers], \n[[", out);
|
||||
for (n = 1, p = merge_functions; p != NULL; n += 1, p = p->next)
|
||||
{
|
||||
if (p->type[0] == '\0')
|
||||
fprintf (out, " case %d: yyval = %s (*yy0, *yy1); break;\n",
|
||||
n, p->name);
|
||||
else
|
||||
fprintf (out, " case %d: yyval.%s = %s (*yy0, *yy1); break;\n",
|
||||
n, p->type, p->name);
|
||||
}
|
||||
fputs ("]])\n\n", out);
|
||||
}
|
||||
|
||||
/*---------------------------------------.
|
||||
| Output the tokens definition to OOUT. |
|
||||
@@ -844,6 +967,7 @@ pack_vector (int vector)
|
||||
int loc = 0;
|
||||
short *from = froms[i];
|
||||
short *to = tos[i];
|
||||
unsigned int *conflict_to = conflict_tos[i];
|
||||
|
||||
assert (t);
|
||||
|
||||
@@ -872,6 +996,8 @@ pack_vector (int vector)
|
||||
{
|
||||
loc = j + from[k];
|
||||
table[loc] = to[k];
|
||||
if (glr_parser && conflict_to != NULL)
|
||||
conflict_table[loc] = conflict_to[k];
|
||||
check[loc] = from[k];
|
||||
}
|
||||
|
||||
@@ -900,6 +1026,8 @@ pack_table (void)
|
||||
base = XCALLOC (short, nvectors);
|
||||
pos = XCALLOC (short, nentries);
|
||||
table = XCALLOC (short, table_size);
|
||||
if (glr_parser)
|
||||
conflict_table = XCALLOC (unsigned int, table_size);
|
||||
check = XCALLOC (short, table_size);
|
||||
|
||||
lowzero = 0;
|
||||
@@ -928,14 +1056,16 @@ pack_table (void)
|
||||
{
|
||||
XFREE (froms[i]);
|
||||
XFREE (tos[i]);
|
||||
XFREE (conflict_tos[i]);
|
||||
}
|
||||
|
||||
XFREE (froms);
|
||||
XFREE (tos);
|
||||
XFREE (conflict_tos);
|
||||
XFREE (pos);
|
||||
}
|
||||
|
||||
/* the following functions output yytable, yycheck
|
||||
/* the following functions output yytable, yycheck, yyconflp, yyconfl,
|
||||
and the vectors whose elements index the portion starts */
|
||||
|
||||
static void
|
||||
@@ -961,6 +1091,28 @@ output_table (void)
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
output_conflicts (void)
|
||||
{
|
||||
/* GLR parsing slightly modifies yytable and yycheck
|
||||
(and thus yypact) so that in states with unresolved conflicts,
|
||||
the default reduction is not used in the conflicted entries, so
|
||||
that there is a place to put a conflict pointer. This means that
|
||||
yyconflp and yyconfl are nonsense for a non-GLR parser, so we
|
||||
avoid accidents by not writing them out in that case. */
|
||||
if (! glr_parser)
|
||||
return;
|
||||
|
||||
muscle_insert_unsigned_int_table ("conflict_list_heads", conflict_table,
|
||||
conflict_table[0], 1, high+1);
|
||||
muscle_insert_unsigned_int_table ("conflicting_rules", conflict_list,
|
||||
conflict_list[0], 1, conflict_list_cnt);
|
||||
|
||||
XFREE (conflict_table);
|
||||
XFREE (conflict_list);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
output_check (void)
|
||||
{
|
||||
@@ -982,6 +1134,7 @@ output_actions (void)
|
||||
|
||||
froms = XCALLOC (short *, nvectors);
|
||||
tos = XCALLOC (short *, nvectors);
|
||||
conflict_tos = XCALLOC (unsigned int *, nvectors);
|
||||
tally = XCALLOC (short, nvectors);
|
||||
width = XCALLOC (short, nvectors);
|
||||
|
||||
@@ -999,6 +1152,7 @@ output_actions (void)
|
||||
|
||||
output_base ();
|
||||
output_table ();
|
||||
output_conflicts ();
|
||||
|
||||
output_check ();
|
||||
|
||||
@@ -1084,6 +1238,7 @@ output_skeleton (void)
|
||||
fputs ("m4_init()\n", out);
|
||||
|
||||
actions_output (out);
|
||||
merger_output (out);
|
||||
token_definitions_output (out);
|
||||
symbol_destructors_output (out);
|
||||
symbol_printers_output (out);
|
||||
@@ -1140,7 +1295,12 @@ prepare (void)
|
||||
|
||||
/* Find the right skeleton file. */
|
||||
if (!skeleton)
|
||||
skeleton = "yacc.c";
|
||||
{
|
||||
if (glr_parser)
|
||||
skeleton = "glr.c";
|
||||
else
|
||||
skeleton = "yacc.c";
|
||||
}
|
||||
|
||||
/* Parse the skeleton file and output the needed parsers. */
|
||||
muscle_insert ("skeleton", skeleton);
|
||||
|
||||
652
src/parse-gram.c
652
src/parse-gram.c
File diff suppressed because it is too large
Load Diff
106
src/parse-gram.h
106
src/parse-gram.h
@@ -23,30 +23,33 @@
|
||||
PERCENT_EXPECT = 270,
|
||||
PERCENT_START = 271,
|
||||
PERCENT_PREC = 272,
|
||||
PERCENT_VERBOSE = 273,
|
||||
PERCENT_ERROR_VERBOSE = 274,
|
||||
PERCENT_OUTPUT = 275,
|
||||
PERCENT_FILE_PREFIX = 276,
|
||||
PERCENT_NAME_PREFIX = 277,
|
||||
PERCENT_DEFINE = 278,
|
||||
PERCENT_PURE_PARSER = 279,
|
||||
PERCENT_DEFINES = 280,
|
||||
PERCENT_YACC = 281,
|
||||
PERCENT_DEBUG = 282,
|
||||
PERCENT_LOCATIONS = 283,
|
||||
PERCENT_NO_LINES = 284,
|
||||
PERCENT_SKELETON = 285,
|
||||
PERCENT_TOKEN_TABLE = 286,
|
||||
TYPE = 287,
|
||||
EQUAL = 288,
|
||||
SEMICOLON = 289,
|
||||
COLON = 290,
|
||||
PIPE = 291,
|
||||
ID = 292,
|
||||
PERCENT_PERCENT = 293,
|
||||
PROLOGUE = 294,
|
||||
EPILOGUE = 295,
|
||||
BRACED_CODE = 296
|
||||
PERCENT_DPREC = 273,
|
||||
PERCENT_MERGE = 274,
|
||||
PERCENT_VERBOSE = 275,
|
||||
PERCENT_ERROR_VERBOSE = 276,
|
||||
PERCENT_OUTPUT = 277,
|
||||
PERCENT_FILE_PREFIX = 278,
|
||||
PERCENT_NAME_PREFIX = 279,
|
||||
PERCENT_DEFINE = 280,
|
||||
PERCENT_PURE_PARSER = 281,
|
||||
PERCENT_GLR_PARSER = 282,
|
||||
PERCENT_DEFINES = 283,
|
||||
PERCENT_YACC = 284,
|
||||
PERCENT_DEBUG = 285,
|
||||
PERCENT_LOCATIONS = 286,
|
||||
PERCENT_NO_LINES = 287,
|
||||
PERCENT_SKELETON = 288,
|
||||
PERCENT_TOKEN_TABLE = 289,
|
||||
TYPE = 290,
|
||||
EQUAL = 291,
|
||||
SEMICOLON = 292,
|
||||
COLON = 293,
|
||||
PIPE = 294,
|
||||
ID = 295,
|
||||
PERCENT_PERCENT = 296,
|
||||
PROLOGUE = 297,
|
||||
EPILOGUE = 298,
|
||||
BRACED_CODE = 299
|
||||
};
|
||||
# endif
|
||||
/* POSIX requires `int' for tokens in interfaces. */
|
||||
@@ -68,30 +71,33 @@
|
||||
#define PERCENT_EXPECT 270
|
||||
#define PERCENT_START 271
|
||||
#define PERCENT_PREC 272
|
||||
#define PERCENT_VERBOSE 273
|
||||
#define PERCENT_ERROR_VERBOSE 274
|
||||
#define PERCENT_OUTPUT 275
|
||||
#define PERCENT_FILE_PREFIX 276
|
||||
#define PERCENT_NAME_PREFIX 277
|
||||
#define PERCENT_DEFINE 278
|
||||
#define PERCENT_PURE_PARSER 279
|
||||
#define PERCENT_DEFINES 280
|
||||
#define PERCENT_YACC 281
|
||||
#define PERCENT_DEBUG 282
|
||||
#define PERCENT_LOCATIONS 283
|
||||
#define PERCENT_NO_LINES 284
|
||||
#define PERCENT_SKELETON 285
|
||||
#define PERCENT_TOKEN_TABLE 286
|
||||
#define TYPE 287
|
||||
#define EQUAL 288
|
||||
#define SEMICOLON 289
|
||||
#define COLON 290
|
||||
#define PIPE 291
|
||||
#define ID 292
|
||||
#define PERCENT_PERCENT 293
|
||||
#define PROLOGUE 294
|
||||
#define EPILOGUE 295
|
||||
#define BRACED_CODE 296
|
||||
#define PERCENT_DPREC 273
|
||||
#define PERCENT_MERGE 274
|
||||
#define PERCENT_VERBOSE 275
|
||||
#define PERCENT_ERROR_VERBOSE 276
|
||||
#define PERCENT_OUTPUT 277
|
||||
#define PERCENT_FILE_PREFIX 278
|
||||
#define PERCENT_NAME_PREFIX 279
|
||||
#define PERCENT_DEFINE 280
|
||||
#define PERCENT_PURE_PARSER 281
|
||||
#define PERCENT_GLR_PARSER 282
|
||||
#define PERCENT_DEFINES 283
|
||||
#define PERCENT_YACC 284
|
||||
#define PERCENT_DEBUG 285
|
||||
#define PERCENT_LOCATIONS 286
|
||||
#define PERCENT_NO_LINES 287
|
||||
#define PERCENT_SKELETON 288
|
||||
#define PERCENT_TOKEN_TABLE 289
|
||||
#define TYPE 290
|
||||
#define EQUAL 291
|
||||
#define SEMICOLON 292
|
||||
#define COLON 293
|
||||
#define PIPE 294
|
||||
#define ID 295
|
||||
#define PERCENT_PERCENT 296
|
||||
#define PROLOGUE 297
|
||||
#define EPILOGUE 298
|
||||
#define BRACED_CODE 299
|
||||
|
||||
|
||||
|
||||
@@ -105,8 +111,8 @@ typedef union {
|
||||
char *string;
|
||||
associativity assoc;
|
||||
} yystype;
|
||||
/* Line 1331 of /usr/local/share/bison/bison.simple. */
|
||||
#line 110 "y.tab.h"
|
||||
/* Line 1343 of /home/cs/hilfingr/work/grammars/glr2/install/share/bison/yacc.c. */
|
||||
#line 116 "y.tab.h"
|
||||
# define YYSTYPE yystype
|
||||
#endif
|
||||
|
||||
|
||||
@@ -114,6 +114,8 @@ braced_code_t current_braced_code = action_braced_code;
|
||||
%token PERCENT_EXPECT "%expect"
|
||||
%token PERCENT_START "%start"
|
||||
%token PERCENT_PREC "%prec"
|
||||
%token PERCENT_DPREC "%dprec"
|
||||
%token PERCENT_MERGE "%merge"
|
||||
%token PERCENT_VERBOSE "%verbose"
|
||||
%token PERCENT_ERROR_VERBOSE "%error-verbose"
|
||||
|
||||
@@ -123,6 +125,7 @@ braced_code_t current_braced_code = action_braced_code;
|
||||
|
||||
%token PERCENT_DEFINE "%define"
|
||||
%token PERCENT_PURE_PARSER "%pure-parser"
|
||||
%token PERCENT_GLR_PARSER "%glr-parser"
|
||||
|
||||
%token PERCENT_DEFINES "%defines"
|
||||
|
||||
@@ -184,6 +187,7 @@ declaration:
|
||||
| "%no-lines" { no_lines_flag = 1; }
|
||||
| "%output" "=" string_content { spec_outfile = $3; }
|
||||
| "%pure-parser" { pure_parser = 1; }
|
||||
| "%glr-parser" { glr_parser = 1; }
|
||||
| "%skeleton" string_content { skeleton = $2; }
|
||||
| "%token-table" { token_table_flag = 1; }
|
||||
| "%verbose" { report_flag = 1; }
|
||||
@@ -355,6 +359,10 @@ rhs:
|
||||
{ grammar_current_rule_action_append ($2, @2); }
|
||||
| rhs "%prec" symbol
|
||||
{ grammar_current_rule_prec_set ($3, @3); }
|
||||
| rhs "%dprec" INT
|
||||
{ grammar_current_rule_dprec_set ($3, @3); }
|
||||
| rhs "%merge" TYPE
|
||||
{ grammar_current_rule_merge_set ($3, @3); }
|
||||
;
|
||||
|
||||
symbol:
|
||||
|
||||
86
src/reader.c
86
src/reader.c
@@ -37,6 +37,7 @@
|
||||
int lineno;
|
||||
static symbol_list_t *grammar = NULL;
|
||||
static int start_flag = 0;
|
||||
merger_list *merge_functions;
|
||||
|
||||
/* Nonzero if %union has been seen. */
|
||||
int typed = 0;
|
||||
@@ -105,6 +106,60 @@ epilogue_set (const char *epilogue, location_t location)
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------.
|
||||
| Return the merger index for a merging function named NAME, whose |
|
||||
| arguments have type TYPE. Records the function, if new, in |
|
||||
| merger_list. |
|
||||
`-------------------------------------------------------------------*/
|
||||
|
||||
static int
|
||||
get_merge_function (const char* name, const char* type)
|
||||
{
|
||||
merger_list *syms;
|
||||
merger_list head;
|
||||
int n;
|
||||
|
||||
if (! glr_parser)
|
||||
return 0;
|
||||
|
||||
if (type == NULL)
|
||||
type = "";
|
||||
|
||||
head.next = merge_functions;
|
||||
for (syms = &head, n = 1; syms->next != NULL; syms = syms->next, n += 1)
|
||||
if (strcmp (name, syms->next->name) == 0)
|
||||
break;
|
||||
if (syms->next == NULL) {
|
||||
syms->next = XMALLOC (merger_list, 1);
|
||||
syms->next->name = strdup (name);
|
||||
syms->next->type = strdup (type);
|
||||
syms->next->next = NULL;
|
||||
merge_functions = head.next;
|
||||
} else if (strcmp (type, syms->next->type) != 0)
|
||||
warn (_("result type clash on merge function %s: `%s' vs. `%s'"),
|
||||
name, type, syms->next->type);
|
||||
return n;
|
||||
}
|
||||
|
||||
/*--------------------------------------.
|
||||
| Free all merge-function definitions. |
|
||||
`--------------------------------------*/
|
||||
|
||||
void
|
||||
free_merger_functions (void)
|
||||
{
|
||||
merger_list *L0;
|
||||
if (! glr_parser)
|
||||
return;
|
||||
L0 = merge_functions;
|
||||
while (L0 != NULL)
|
||||
{
|
||||
merger_list *L1 = L0->next;
|
||||
free (L0);
|
||||
L0 = L1;
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------.
|
||||
| Generate a dummy symbol, a nonterminal, whose name cannot conflict |
|
||||
| with the user's names. |
|
||||
@@ -307,6 +362,34 @@ grammar_current_rule_prec_set (symbol_t *precsym, location_t location)
|
||||
current_rule->ruleprec = precsym;
|
||||
}
|
||||
|
||||
/* Attach dynamic precedence DPREC to the current rule. */
|
||||
|
||||
void
|
||||
grammar_current_rule_dprec_set (int dprec, location_t location)
|
||||
{
|
||||
if (! glr_parser)
|
||||
warn_at (location, _("%%dprec affects only GLR parsers"));
|
||||
if (dprec <= 0)
|
||||
complain_at (location, _("%%dprec must be followed by positive number"));
|
||||
else if (current_rule->dprec != 0)
|
||||
complain_at (location, _("only one %%dprec allowed per rule"));
|
||||
current_rule->dprec = dprec;
|
||||
}
|
||||
|
||||
/* Attach a merge function NAME with argument type TYPE to current
|
||||
rule. */
|
||||
|
||||
void
|
||||
grammar_current_rule_merge_set (const char* name, location_t location)
|
||||
{
|
||||
if (! glr_parser)
|
||||
warn_at (location, _("%%merge affects only GLR parsers"));
|
||||
if (current_rule->merger != 0)
|
||||
complain_at (location, _("only one %%merge allowed per rule"));
|
||||
current_rule->merger =
|
||||
get_merge_function (name, current_rule->sym->type_name);
|
||||
}
|
||||
|
||||
/* Attach a SYMBOL to the current rule. If needed, move the previous
|
||||
action as a mid-rule action. */
|
||||
|
||||
@@ -319,7 +402,6 @@ grammar_current_rule_symbol_append (symbol_t *symbol, location_t location)
|
||||
grammar_symbol_append (symbol, location);
|
||||
}
|
||||
|
||||
|
||||
/* Attach an ACTION to the current rule. If needed, move the previous
|
||||
action as a mid-rule action. */
|
||||
|
||||
@@ -363,6 +445,8 @@ packgram (void)
|
||||
rules[ruleno].useful = TRUE;
|
||||
rules[ruleno].action = p->action;
|
||||
rules[ruleno].action_location = p->action_location;
|
||||
rules[ruleno].dprec = p->dprec;
|
||||
rules[ruleno].merger = p->merger;
|
||||
|
||||
p = p->next;
|
||||
while (p && p->sym)
|
||||
|
||||
17
src/reader.h
17
src/reader.h
@@ -24,6 +24,14 @@
|
||||
# include "symlist.h"
|
||||
# include "parse-gram.h"
|
||||
|
||||
typedef struct merger_list
|
||||
{
|
||||
struct merger_list* next;
|
||||
const char* name;
|
||||
const char* type;
|
||||
}
|
||||
merger_list;
|
||||
|
||||
typedef struct gram_control_s
|
||||
{
|
||||
int errcode;
|
||||
@@ -70,12 +78,21 @@ void grammar_rule_end PARAMS ((location_t l));
|
||||
void grammar_midrule_action PARAMS ((void));
|
||||
void grammar_current_rule_prec_set PARAMS ((symbol_t *precsym,
|
||||
location_t l));
|
||||
void grammar_current_rule_dprec_set PARAMS ((int dprec,
|
||||
location_t l));
|
||||
void grammer_current_rule_merge_set PARAMS ((const char* name,
|
||||
location_t l));
|
||||
|
||||
void grammar_current_rule_symbol_append PARAMS ((symbol_t *symbol,
|
||||
location_t l));
|
||||
void grammar_current_rule_action_append PARAMS ((const char *action,
|
||||
location_t l));
|
||||
extern symbol_list_t *current_rule;
|
||||
void reader PARAMS ((void));
|
||||
void free_merger_functions PARAMS ((void));
|
||||
|
||||
extern merger_list *merge_functions;
|
||||
|
||||
extern int typed;
|
||||
|
||||
#endif /* !READER_H_ */
|
||||
|
||||
1032
src/scan-gram.c
1032
src/scan-gram.c
File diff suppressed because it is too large
Load Diff
@@ -124,12 +124,15 @@ blanks [ \t\f]+
|
||||
"%define" return PERCENT_DEFINE;
|
||||
"%defines" return PERCENT_DEFINES;
|
||||
"%destructor" return PERCENT_DESTRUCTOR;
|
||||
"%dprec" return PERCENT_DPREC;
|
||||
"%error"[-_]"verbose" return PERCENT_ERROR_VERBOSE;
|
||||
"%expect" return PERCENT_EXPECT;
|
||||
"%file-prefix" return PERCENT_FILE_PREFIX;
|
||||
"%fixed"[-_]"output"[-_]"files" return PERCENT_YACC;
|
||||
"%glr"[-_]"parser" return PERCENT_GLR_PARSER;
|
||||
"%left" return PERCENT_LEFT;
|
||||
"%locations" return PERCENT_LOCATIONS;
|
||||
"%merge" return PERCENT_MERGE;
|
||||
"%name"[-_]"prefix" return PERCENT_NAME_PREFIX;
|
||||
"%no"[-_]"lines" return PERCENT_NO_LINES;
|
||||
"%nonassoc" return PERCENT_NONASSOC;
|
||||
|
||||
@@ -36,6 +36,8 @@ symbol_list_new (symbol_t *sym, location_t location)
|
||||
res->location = location;
|
||||
res->action = NULL;
|
||||
res->ruleprec = NULL;
|
||||
res->dprec = 0;
|
||||
res->merger = 0;
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
@@ -35,6 +35,8 @@ typedef struct symbol_list_s
|
||||
location_t action_location;
|
||||
|
||||
symbol_t *ruleprec;
|
||||
int dprec;
|
||||
int merger;
|
||||
} symbol_list_t;
|
||||
|
||||
|
||||
|
||||
@@ -49,7 +49,8 @@ TESTSUITE_AT = \
|
||||
output.at sets.at reduce.at \
|
||||
synclines.at headers.at actions.at conflicts.at \
|
||||
calc.at \
|
||||
torture.at existing.at regression.at
|
||||
torture.at existing.at regression.at \
|
||||
cxx-type.at
|
||||
|
||||
TESTSUITE = $(srcdir)/testsuite
|
||||
|
||||
|
||||
@@ -61,3 +61,6 @@ m4_include([existing.at])
|
||||
|
||||
# Some old bugs.
|
||||
m4_include([regression.at])
|
||||
|
||||
# GLR tests: C++ types, simplified
|
||||
m4_include([cxx-type.at])
|
||||
|
||||
Reference in New Issue
Block a user