mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-08-18 23:24:26 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2d90916067 | ||
|
|
91e5a23ff2 | ||
|
|
d4ae66c371 | ||
|
|
70fb574717 | ||
|
|
0820f16ca8 | ||
|
|
49f1e5f428 | ||
|
|
238692ad77 | ||
|
|
5f95583da7 | ||
|
|
964fb2aa6f | ||
|
|
7c0d36b760 |
+1
-1
@@ -1 +1 @@
|
|||||||
3.6.4
|
3.6.90
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
GNU Bison NEWS
|
GNU Bison NEWS
|
||||||
|
|
||||||
|
* Noteworthy changes in release 3.6.91 (2020-07-09) [beta]
|
||||||
|
|
||||||
|
** Bug fixes
|
||||||
|
|
||||||
|
Portability issues.
|
||||||
|
|
||||||
|
|
||||||
* Noteworthy changes in release 3.6.90 (2020-07-04) [beta]
|
* Noteworthy changes in release 3.6.90 (2020-07-04) [beta]
|
||||||
|
|
||||||
** Deprecated features
|
** Deprecated features
|
||||||
@@ -27,8 +34,11 @@ GNU Bison NEWS
|
|||||||
First derivation exp ::=[ exp ::=[ exp '+' exp • ] '/' exp ]
|
First derivation exp ::=[ exp ::=[ exp '+' exp • ] '/' exp ]
|
||||||
Second derivation exp ::=[ exp '+' exp ::=[ exp • '/' exp ] ]
|
Second derivation exp ::=[ exp '+' exp ::=[ exp • '/' exp ] ]
|
||||||
|
|
||||||
|
When Bison is installed with text styling enabled, the example is actually
|
||||||
|
shown twice, with colors highlighting the ambiguity.
|
||||||
|
|
||||||
This is a shift/reduce conflict caused by none of the operators having
|
This is a shift/reduce conflict caused by none of the operators having
|
||||||
precedence, so the example can be parsed in the two ways shown. When
|
precedence, so the example can be parsed in the two ways shown. When
|
||||||
bison cannot find an example that can be derived in two ways, it instead
|
bison cannot find an example that can be derived in two ways, it instead
|
||||||
generates two examples that are the same up until the dot:
|
generates two examples that are the same up until the dot:
|
||||||
|
|
||||||
@@ -40,6 +50,11 @@ GNU Bison NEWS
|
|||||||
In these cases, the parser usually doesn't have enough lookahead to
|
In these cases, the parser usually doesn't have enough lookahead to
|
||||||
differentiate the two given examples.
|
differentiate the two given examples.
|
||||||
|
|
||||||
|
The counterexamples are "focused": in two different ways. First, they do
|
||||||
|
not clutter the output with all the derivations from the start symbol,
|
||||||
|
rather they start on the "conflicted nonterminal". They go straight to the
|
||||||
|
point. Second, they don't "expand" nonterminal symbols uselessly.
|
||||||
|
|
||||||
*** File prefix mapping
|
*** File prefix mapping
|
||||||
|
|
||||||
Contributed by Joshua Watt.
|
Contributed by Joshua Watt.
|
||||||
|
|||||||
@@ -211,6 +211,8 @@ assert/abort), and all the --trace output which is meant for the maintainers
|
|||||||
only.
|
only.
|
||||||
|
|
||||||
## Vocabulary
|
## Vocabulary
|
||||||
|
- "lookahead", not "look-ahead".
|
||||||
|
- "midrule", not "mid-rule".
|
||||||
- "nonterminal", not "variable" or "non-terminal" or "non terminal".
|
- "nonterminal", not "variable" or "non-terminal" or "non terminal".
|
||||||
Abbreviated as "nterm".
|
Abbreviated as "nterm".
|
||||||
- "shift/reduce" and "reduce/reduce", not "shift-reduce" or "shift reduce",
|
- "shift/reduce" and "reduce/reduce", not "shift-reduce" or "shift reduce",
|
||||||
|
|||||||
+3
-3
@@ -86,7 +86,7 @@ The macro `b4_symbol(NUM, FIELD)` gives access to the following FIELDS:
|
|||||||
- `has_id`: 0 or 1
|
- `has_id`: 0 or 1
|
||||||
Whether the symbol has an `id`.
|
Whether the symbol has an `id`.
|
||||||
|
|
||||||
- `id`: string
|
- `id`: string (e.g., `exp`, `NUM`, or `TOK_NUM` with api.token.prefix)
|
||||||
If `has_id`, the name of the token kind (prefixed by api.token.prefix if
|
If `has_id`, the name of the token kind (prefixed by api.token.prefix if
|
||||||
defined), otherwise empty. Guaranteed to be usable as a C identifier.
|
defined), otherwise empty. Guaranteed to be usable as a C identifier.
|
||||||
This is used to define the token kind (i.e., the enum used by the return
|
This is used to define the token kind (i.e., the enum used by the return
|
||||||
@@ -105,9 +105,9 @@ The macro `b4_symbol(NUM, FIELD)` gives access to the following FIELDS:
|
|||||||
- `is_token`: 0 or 1
|
- `is_token`: 0 or 1
|
||||||
Whether this is a terminal symbol.
|
Whether this is a terminal symbol.
|
||||||
|
|
||||||
- `kind_base`: string
|
- `kind_base`: string (e.g., `YYSYMBOL_exp`, `YYSYMBOL_NUM`)
|
||||||
The base of the symbol kind, i.e., the enumerator of this symbol (token or
|
The base of the symbol kind, i.e., the enumerator of this symbol (token or
|
||||||
nonterminal) which is mapping to its `number`.
|
nonterminal) which is mapped to its `number`.
|
||||||
|
|
||||||
- `kind`: string
|
- `kind`: string
|
||||||
Same as `kind_base`, but possibly with a prefix in some languages. E.g.,
|
Same as `kind_base`, but possibly with a prefix in some languages. E.g.,
|
||||||
|
|||||||
@@ -594,11 +594,12 @@ m4_define([b4_yytranslate_define],
|
|||||||
{
|
{
|
||||||
]b4_translate[
|
]b4_translate[
|
||||||
};
|
};
|
||||||
const int code_max_ = ]b4_code_max[;
|
// Last valid token kind.
|
||||||
|
const int code_max = ]b4_code_max[;
|
||||||
|
|
||||||
if (t <= 0)
|
if (t <= 0)
|
||||||
return symbol_kind::]b4_symbol_prefix[YYEOF;
|
return symbol_kind::]b4_symbol_prefix[YYEOF;
|
||||||
else if (t <= code_max_)
|
else if (t <= code_max)
|
||||||
return YY_CAST (symbol_kind_type, translate_table[t]);
|
return YY_CAST (symbol_kind_type, translate_table[t]);
|
||||||
else
|
else
|
||||||
return symbol_kind::]b4_symbol_prefix[YYUNDEF;]])[
|
return symbol_kind::]b4_symbol_prefix[YYUNDEF;]])[
|
||||||
|
|||||||
@@ -333,7 +333,7 @@ static YYLTYPE yyloc_default][]b4_yyloc_default;])[
|
|||||||
accessed by $0, $-1, etc., in any rule. */
|
accessed by $0, $-1, etc., in any rule. */
|
||||||
#define YYMAXLEFT ]b4_max_left_semantic_context[
|
#define YYMAXLEFT ]b4_max_left_semantic_context[
|
||||||
|
|
||||||
/* YYMAXUTOK -- Last valid token number (for yychar). */
|
/* YYMAXUTOK -- Last valid token kind. */
|
||||||
#define YYMAXUTOK ]b4_code_max[
|
#define YYMAXUTOK ]b4_code_max[
|
||||||
|
|
||||||
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
|
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
|
||||||
|
|||||||
@@ -428,8 +428,9 @@ b4_locations_if([, ref ]b4_location_type[ yylocationp])[)
|
|||||||
*/
|
*/
|
||||||
public bool parse ()
|
public bool parse ()
|
||||||
{
|
{
|
||||||
/// Lookahead and lookahead in internal form.
|
// Lookahead token kind.
|
||||||
int yychar = TokenKind.YYEMPTY;
|
int yychar = TokenKind.YYEMPTY;
|
||||||
|
// Lookahead symbol kind.
|
||||||
SymbolKind yytoken = ]b4_symbol(-2, kind)[;
|
SymbolKind yytoken = ]b4_symbol(-2, kind)[;
|
||||||
|
|
||||||
/* State. */
|
/* State. */
|
||||||
@@ -841,11 +842,12 @@ m4_popdef([b4_at_dollar])])dnl
|
|||||||
]b4_translate[
|
]b4_translate[
|
||||||
@};
|
@};
|
||||||
|
|
||||||
immutable int code_max_ = ]b4_code_max[;
|
// Last valid token kind.
|
||||||
|
immutable int code_max = ]b4_code_max[;
|
||||||
|
|
||||||
if (t <= 0)
|
if (t <= 0)
|
||||||
return ]b4_symbol(0, kind)[;
|
return ]b4_symbol(0, kind)[;
|
||||||
else if (t <= code_max_)
|
else if (t <= code_max)
|
||||||
{
|
{
|
||||||
import std.conv : to;
|
import std.conv : to;
|
||||||
return to!SymbolKind (translate_table[t]);
|
return to!SymbolKind (translate_table[t]);
|
||||||
|
|||||||
@@ -53,8 +53,9 @@ b4_use_push_for_pull_if([
|
|||||||
# allows them to be defined either in parse() when doing pull parsing,
|
# allows them to be defined either in parse() when doing pull parsing,
|
||||||
# or as class instance variable when doing push parsing.
|
# or as class instance variable when doing push parsing.
|
||||||
m4_define([b4_define_state],[[
|
m4_define([b4_define_state],[[
|
||||||
/* Lookahead and lookahead in internal form. */
|
/* Lookahead token kind. */
|
||||||
int yychar = YYEMPTY_;
|
int yychar = YYEMPTY_;
|
||||||
|
/* Lookahead symbol kind. */
|
||||||
SymbolKind yytoken = null;
|
SymbolKind yytoken = null;
|
||||||
|
|
||||||
/* State. */
|
/* State. */
|
||||||
@@ -1078,17 +1079,18 @@ b4_dollar_popdef[]dnl
|
|||||||
|
|
||||||
/* YYTRANSLATE_(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
|
/* YYTRANSLATE_(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
|
||||||
as returned by yylex, with out-of-bounds checking. */
|
as returned by yylex, with out-of-bounds checking. */
|
||||||
private static final SymbolKind yytranslate_ (int t)
|
private static final SymbolKind yytranslate_(int t)
|
||||||
]b4_api_token_raw_if(dnl
|
]b4_api_token_raw_if(dnl
|
||||||
[[ {
|
[[ {
|
||||||
return SymbolKind.get(t);
|
return SymbolKind.get(t);
|
||||||
}
|
}
|
||||||
]],
|
]],
|
||||||
[[ {
|
[[ {
|
||||||
int code_max_ = ]b4_code_max[;
|
// Last valid token kind.
|
||||||
|
int code_max = ]b4_code_max[;
|
||||||
if (t <= 0)
|
if (t <= 0)
|
||||||
return ]b4_symbol(0, kind)[;
|
return ]b4_symbol(0, kind)[;
|
||||||
else if (t <= code_max_)
|
else if (t <= code_max)
|
||||||
return SymbolKind.get(yytranslate_table_[t]);
|
return SymbolKind.get(yytranslate_table_[t]);
|
||||||
else
|
else
|
||||||
return ]b4_symbol(2, kind)[;
|
return ]b4_symbol(2, kind)[;
|
||||||
|
|||||||
@@ -48,6 +48,10 @@ m4_define([b4_pure_if],
|
|||||||
## api.push-pull. ##
|
## api.push-pull. ##
|
||||||
## --------------- ##
|
## --------------- ##
|
||||||
|
|
||||||
|
# b4_pull_if, b4_push_if
|
||||||
|
# ----------------------
|
||||||
|
# Whether the pull/push APIs are needed. Both can be enabled.
|
||||||
|
|
||||||
b4_percent_define_default([[api.push-pull]], [[pull]])
|
b4_percent_define_default([[api.push-pull]], [[pull]])
|
||||||
b4_percent_define_check_values([[[[api.push-pull]],
|
b4_percent_define_check_values([[[[api.push-pull]],
|
||||||
[[pull]], [[push]], [[both]]]])
|
[[pull]], [[push]], [[both]]]])
|
||||||
@@ -155,7 +159,7 @@ m4_define([b4_rhs_location],
|
|||||||
# Declare the variables that are global, or local to YYPARSE if
|
# Declare the variables that are global, or local to YYPARSE if
|
||||||
# pure-parser.
|
# pure-parser.
|
||||||
m4_define([b4_declare_scanner_communication_variables], [[
|
m4_define([b4_declare_scanner_communication_variables], [[
|
||||||
/* The lookahead symbol. */
|
/* Lookahead token kind. */
|
||||||
int yychar;
|
int yychar;
|
||||||
|
|
||||||
]b4_pure_if([[
|
]b4_pure_if([[
|
||||||
@@ -571,6 +575,7 @@ union yyalloc
|
|||||||
/* YYNSTATES -- Number of states. */
|
/* YYNSTATES -- Number of states. */
|
||||||
#define YYNSTATES ]b4_states_number[
|
#define YYNSTATES ]b4_states_number[
|
||||||
|
|
||||||
|
/* YYMAXUTOK -- Last valid token kind. */
|
||||||
#define YYMAXUTOK ]b4_code_max[
|
#define YYMAXUTOK ]b4_code_max[
|
||||||
|
|
||||||
|
|
||||||
@@ -1544,7 +1549,7 @@ yyparse (]m4_ifset([b4_parse_param], [b4_formals(b4_parse_param)], [void])[)]])[
|
|||||||
int yyn;
|
int yyn;
|
||||||
/* The return value of yyparse. */
|
/* The return value of yyparse. */
|
||||||
int yyresult;
|
int yyresult;
|
||||||
/* Lookahead token as an internal (translated) token number. */
|
/* Lookahead symbol kind. */
|
||||||
yysymbol_kind_t yytoken = ]b4_symbol(-2, kind)[;
|
yysymbol_kind_t yytoken = ]b4_symbol(-2, kind)[;
|
||||||
/* The variables used to return semantic value and location from the
|
/* The variables used to return semantic value and location from the
|
||||||
action routines. */
|
action routines. */
|
||||||
|
|||||||
+221
-2
@@ -1677,6 +1677,31 @@ Here are the C and Bison declarations for the Reverse Polish Notation
|
|||||||
calculator. As in C, comments are placed between @samp{/*@dots{}*/} or
|
calculator. As in C, comments are placed between @samp{/*@dots{}*/} or
|
||||||
after @samp{//}.
|
after @samp{//}.
|
||||||
|
|
||||||
|
@ignore
|
||||||
|
@comment file: rpcalc.y
|
||||||
|
@example
|
||||||
|
/* Parser for rpcalc. -*- C -*-
|
||||||
|
|
||||||
|
Copyright (C) 1988-1993, 1995, 1998-2015, 2018-2020 Free Software
|
||||||
|
Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
@end example
|
||||||
|
@end ignore
|
||||||
|
|
||||||
@comment file: rpcalc.y
|
@comment file: rpcalc.y
|
||||||
@example
|
@example
|
||||||
/* Reverse Polish Notation calculator. */
|
/* Reverse Polish Notation calculator. */
|
||||||
@@ -2538,6 +2563,31 @@ Note that multiple assignment and nested function calls are permitted.
|
|||||||
|
|
||||||
Here are the C and Bison declarations for the multi-function calculator.
|
Here are the C and Bison declarations for the multi-function calculator.
|
||||||
|
|
||||||
|
@ignore
|
||||||
|
@comment file: mfcalc.y
|
||||||
|
@example
|
||||||
|
/* Parser for mfcalc. -*- C -*-
|
||||||
|
|
||||||
|
Copyright (C) 1988-1993, 1995, 1998-2015, 2018-2020 Free Software
|
||||||
|
Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
@end example
|
||||||
|
@end ignore
|
||||||
|
|
||||||
@comment file: mfcalc.y: 1
|
@comment file: mfcalc.y: 1
|
||||||
@example
|
@example
|
||||||
@group
|
@group
|
||||||
@@ -2642,6 +2692,31 @@ The symbol table itself consists of a linked list of records. Its
|
|||||||
definition, which is kept in the header @file{calc.h}, is as follows. It
|
definition, which is kept in the header @file{calc.h}, is as follows. It
|
||||||
provides for either functions or variables to be placed in the table.
|
provides for either functions or variables to be placed in the table.
|
||||||
|
|
||||||
|
@ignore
|
||||||
|
@comment file: calc.h
|
||||||
|
@example
|
||||||
|
/* Functions for mfcalc. -*- C -*-
|
||||||
|
|
||||||
|
Copyright (C) 1988-1993, 1995, 1998-2015, 2018-2020 Free Software
|
||||||
|
Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
@end example
|
||||||
|
@end ignore
|
||||||
|
|
||||||
@comment file: calc.h
|
@comment file: calc.h
|
||||||
@example
|
@example
|
||||||
@group
|
@group
|
||||||
@@ -11745,6 +11820,30 @@ A Bison file has three parts. In the first part, the prologue, we start by
|
|||||||
making sure we run a version of Bison which is recent enough, and that we
|
making sure we run a version of Bison which is recent enough, and that we
|
||||||
generate C++.
|
generate C++.
|
||||||
|
|
||||||
|
@ignore
|
||||||
|
@comment file: c++/simple.yy: 1
|
||||||
|
@example
|
||||||
|
/* Simple variant-based parser. -*- C++ -*-
|
||||||
|
|
||||||
|
Copyright (C) 2018-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
@end example
|
||||||
|
@end ignore
|
||||||
|
|
||||||
@comment file: c++/simple.yy: 1
|
@comment file: c++/simple.yy: 1
|
||||||
@example
|
@example
|
||||||
%require "3.2"
|
%require "3.2"
|
||||||
@@ -12817,6 +12916,30 @@ The declaration of this driver class, in @file{driver.hh}, is as follows.
|
|||||||
The first part includes the CPP guard and imports the required standard
|
The first part includes the CPP guard and imports the required standard
|
||||||
library components, and the declaration of the parser class.
|
library components, and the declaration of the parser class.
|
||||||
|
|
||||||
|
@ignore
|
||||||
|
@comment file: calc++/driver.hh
|
||||||
|
@example
|
||||||
|
/* Driver for calc++. -*- C++ -*-
|
||||||
|
|
||||||
|
Copyright (C) 2005--2015, 2018--2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
@end example
|
||||||
|
@end ignore
|
||||||
|
|
||||||
@comment file: calc++/driver.hh
|
@comment file: calc++/driver.hh
|
||||||
@example
|
@example
|
||||||
#ifndef DRIVER_HH
|
#ifndef DRIVER_HH
|
||||||
@@ -12889,6 +13012,30 @@ member functions to open and close the scanning phase.
|
|||||||
|
|
||||||
The implementation of the driver (@file{driver.cc}) is straightforward.
|
The implementation of the driver (@file{driver.cc}) is straightforward.
|
||||||
|
|
||||||
|
@ignore
|
||||||
|
@comment file: calc++/driver.cc
|
||||||
|
@example
|
||||||
|
/* Driver for calc++. -*- C++ -*-
|
||||||
|
|
||||||
|
Copyright (C) 2005--2015, 2018--2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
@end example
|
||||||
|
@end ignore
|
||||||
|
|
||||||
@comment file: calc++/driver.cc
|
@comment file: calc++/driver.cc
|
||||||
@example
|
@example
|
||||||
#include "driver.hh"
|
#include "driver.hh"
|
||||||
@@ -12932,6 +13079,30 @@ parser skeleton, the creation of the parser header file. Because the C++
|
|||||||
skeleton changed several times, it is safer to require the version you
|
skeleton changed several times, it is safer to require the version you
|
||||||
designed the grammar for.
|
designed the grammar for.
|
||||||
|
|
||||||
|
@ignore
|
||||||
|
@comment file: calc++/parser.yy
|
||||||
|
@example
|
||||||
|
/* Parser for calc++. -*- C++ -*-
|
||||||
|
|
||||||
|
Copyright (C) 2005--2015, 2018--2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
@end example
|
||||||
|
@end ignore
|
||||||
|
|
||||||
@comment file: calc++/parser.yy
|
@comment file: calc++/parser.yy
|
||||||
@example
|
@example
|
||||||
%skeleton "lalr1.cc" // -*- C++ -*-
|
%skeleton "lalr1.cc" // -*- C++ -*-
|
||||||
@@ -13120,6 +13291,30 @@ yy::parser::error (const location_type& l, const std::string& m)
|
|||||||
In addition to standard headers, the Flex scanner includes the driver's,
|
In addition to standard headers, the Flex scanner includes the driver's,
|
||||||
then the parser's to get the set of defined tokens.
|
then the parser's to get the set of defined tokens.
|
||||||
|
|
||||||
|
@ignore
|
||||||
|
@comment file: calc++/scanner.ll
|
||||||
|
@example
|
||||||
|
/* Scanner for calc++. -*- C++ -*-
|
||||||
|
|
||||||
|
Copyright (C) 2005--2015, 2018--2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
@end example
|
||||||
|
@end ignore
|
||||||
|
|
||||||
@comment file: calc++/scanner.ll
|
@comment file: calc++/scanner.ll
|
||||||
@example
|
@example
|
||||||
%@{ /* -*- C++ -*- */
|
%@{ /* -*- C++ -*- */
|
||||||
@@ -13293,7 +13488,7 @@ The rules are simple. The driver is used to report errors.
|
|||||||
You should keep your rules simple, both in the parser and in the scanner.
|
You should keep your rules simple, both in the parser and in the scanner.
|
||||||
Throwing from the auxiliary functions is then very handy to report errors.
|
Throwing from the auxiliary functions is then very handy to report errors.
|
||||||
|
|
||||||
@comment file: scanner.ll
|
@comment file: calc++/scanner.ll
|
||||||
@example
|
@example
|
||||||
@group
|
@group
|
||||||
yy::parser::symbol_type
|
yy::parser::symbol_type
|
||||||
@@ -13343,7 +13538,31 @@ driver::scan_end ()
|
|||||||
|
|
||||||
The top level file, @file{calc++.cc}, poses no problem.
|
The top level file, @file{calc++.cc}, poses no problem.
|
||||||
|
|
||||||
@comment file: calc++.cc
|
@ignore
|
||||||
|
@comment file: calc++/calc++.cc
|
||||||
|
@example
|
||||||
|
/* Main for calc++. -*- C++ -*-
|
||||||
|
|
||||||
|
Copyright (C) 2005--2015, 2018--2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
@end example
|
||||||
|
@end ignore
|
||||||
|
|
||||||
|
@comment file: calc++/calc++.cc
|
||||||
@example
|
@example
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "driver.hh"
|
#include "driver.hh"
|
||||||
|
|||||||
@@ -1,5 +1,25 @@
|
|||||||
%require "3.6"
|
/* Parser and scanner for bistromathic. -*- C -*-
|
||||||
|
|
||||||
|
Copyright (C) 2019-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
%require "3.7"
|
||||||
|
|
||||||
|
// Emitted on top of the implementation file.
|
||||||
%code top {
|
%code top {
|
||||||
#include <ctype.h> // isdigit
|
#include <ctype.h> // isdigit
|
||||||
#include <locale.h> // LC_ALL
|
#include <locale.h> // LC_ALL
|
||||||
@@ -24,6 +44,7 @@
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Emitted in the header file, before the definition of YYSTYPE.
|
||||||
%code requires {
|
%code requires {
|
||||||
// Function type.
|
// Function type.
|
||||||
typedef double (func_t) (double);
|
typedef double (func_t) (double);
|
||||||
@@ -46,6 +67,7 @@
|
|||||||
symrec *getsym (char const *name);
|
symrec *getsym (char const *name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Emitted in the header file, after the definition of YYSTYPE.
|
||||||
%code provides {
|
%code provides {
|
||||||
# ifndef __attribute__
|
# ifndef __attribute__
|
||||||
# ifndef __GNUC__
|
# ifndef __GNUC__
|
||||||
@@ -57,6 +79,7 @@
|
|||||||
__attribute__ ((__format__ (__printf__, 2, 3)));
|
__attribute__ ((__format__ (__printf__, 2, 3)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Emitted in the implementation file.
|
||||||
%code {
|
%code {
|
||||||
#if defined ENABLE_NLS && ENABLE_NLS
|
#if defined ENABLE_NLS && ENABLE_NLS
|
||||||
# define _(Msgid) gettext (Msgid)
|
# define _(Msgid) gettext (Msgid)
|
||||||
@@ -68,6 +91,9 @@
|
|||||||
int done = 0;
|
int done = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Include the header in the implementation rather than duplicating it.
|
||||||
|
%define api.header.include {"parse.h"}
|
||||||
|
|
||||||
// Don't share global variables between the scanner and the parser.
|
// Don't share global variables between the scanner and the parser.
|
||||||
%define api.pure full
|
%define api.pure full
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,22 @@
|
|||||||
|
/* Parser for lexcalc. -*- C -*-
|
||||||
|
|
||||||
|
Copyright (C) 2018-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
// Prologue (directives).
|
// Prologue (directives).
|
||||||
%expect 0
|
%expect 0
|
||||||
|
|
||||||
@@ -19,6 +38,9 @@
|
|||||||
#include <stdlib.h> // getenv.
|
#include <stdlib.h> // getenv.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Include the header in the implementation rather than duplicating it.
|
||||||
|
%define api.header.include {"parse.h"}
|
||||||
|
|
||||||
// Don't share global variables between the scanner and the parser.
|
// Don't share global variables between the scanner and the parser.
|
||||||
%define api.pure full
|
%define api.pure full
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,23 @@
|
|||||||
/* Prologue (directives). -*- C -*- */
|
/* Scanner for lexcalc. -*- C -*-
|
||||||
|
|
||||||
|
Copyright (C) 2018-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Prologue (directives). */
|
||||||
|
|
||||||
/* Disable Flex features we don't need, to avoid warnings. */
|
/* Disable Flex features we don't need, to avoid warnings. */
|
||||||
%option nodefault noinput nounput noyywrap
|
%option nodefault noinput nounput noyywrap
|
||||||
|
|||||||
@@ -1,3 +1,22 @@
|
|||||||
|
/* Parser and scanner for pushcalc. -*- C -*-
|
||||||
|
|
||||||
|
Copyright (C) 2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
%code top {
|
%code top {
|
||||||
#include <ctype.h> /* isdigit. */
|
#include <ctype.h> /* isdigit. */
|
||||||
#include <stdio.h> /* printf. */
|
#include <stdio.h> /* printf. */
|
||||||
|
|||||||
@@ -1,3 +1,22 @@
|
|||||||
|
/* Parser for reccalc. -*- C -*-
|
||||||
|
|
||||||
|
Copyright (C) 2019-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
// Prologue (directives).
|
// Prologue (directives).
|
||||||
%expect 0
|
%expect 0
|
||||||
|
|
||||||
@@ -46,14 +65,29 @@
|
|||||||
result parse (void);
|
result parse (void);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Include the header in the implementation rather than duplicating it.
|
||||||
|
%define api.header.include {"parse.h"}
|
||||||
|
|
||||||
|
// Don't share global variables between the scanner and the parser.
|
||||||
%define api.pure full
|
%define api.pure full
|
||||||
|
|
||||||
|
// To avoid name clashes (e.g., with C's EOF) prefix token definitions
|
||||||
|
// with TOK_ (e.g., TOK_EOF).
|
||||||
%define api.token.prefix {TOK_}
|
%define api.token.prefix {TOK_}
|
||||||
|
|
||||||
|
// Generate YYSTYPE from the types assigned to symbols.
|
||||||
%define api.value.type union
|
%define api.value.type union
|
||||||
%define parse.error verbose
|
|
||||||
|
// Error messages with "unexpected XXX, expected XXX...".
|
||||||
|
%define parse.error detailed
|
||||||
|
|
||||||
|
// Enable run-time traces (yydebug).
|
||||||
%define parse.trace
|
%define parse.trace
|
||||||
|
|
||||||
|
// Generate the parser description file (parse.output).
|
||||||
%verbose
|
%verbose
|
||||||
|
|
||||||
// Scanner and error count are exchanged between main, yyparse and yylex.
|
// Scanner and error count are exchanged between main, yyparse and yylex.
|
||||||
%param {yyscan_t scanner}{result *res}
|
%param {yyscan_t scanner}{result *res}
|
||||||
|
|
||||||
%token
|
%token
|
||||||
|
|||||||
@@ -1,3 +1,22 @@
|
|||||||
|
/* Scanner for reccalc. -*- C -*-
|
||||||
|
|
||||||
|
Copyright (C) 2019-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
/* Prologue (directives). -*- C -*- */
|
/* Prologue (directives). -*- C -*- */
|
||||||
|
|
||||||
/* Disable Flex features we don't need, to avoid warnings. */
|
/* Disable Flex features we don't need, to avoid warnings. */
|
||||||
|
|||||||
@@ -1,3 +1,22 @@
|
|||||||
|
/* Parser and scanner for calc in D. -*- D -*-
|
||||||
|
|
||||||
|
Copyright (C) 2018-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
%language "D"
|
%language "D"
|
||||||
|
|
||||||
%define api.parser.class {Calc}
|
%define api.parser.class {Calc}
|
||||||
|
|||||||
@@ -1,3 +1,22 @@
|
|||||||
|
/* Parser and scanner for calc in Java. -*- Java -*-
|
||||||
|
|
||||||
|
Copyright (C) 2018-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
%language "Java"
|
%language "Java"
|
||||||
|
|
||||||
%define api.parser.class {Calc}
|
%define api.parser.class {Calc}
|
||||||
|
|||||||
@@ -1,3 +1,22 @@
|
|||||||
|
/* Simple parser and scanner in Java. -*- Java -*-
|
||||||
|
|
||||||
|
Copyright (C) 2018-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
%language "Java"
|
%language "Java"
|
||||||
|
|
||||||
%define api.parser.class {Calc}
|
%define api.parser.class {Calc}
|
||||||
|
|||||||
+1
-1
Submodule gnulib updated: 845d69187a...12c89745e3
@@ -20,6 +20,7 @@
|
|||||||
/assure.h
|
/assure.h
|
||||||
/attribute.h
|
/attribute.h
|
||||||
/basename-lgpl.c
|
/basename-lgpl.c
|
||||||
|
/basename-lgpl.h
|
||||||
/basename.c
|
/basename.c
|
||||||
/binary-io.c
|
/binary-io.c
|
||||||
/binary-io.h
|
/binary-io.h
|
||||||
|
|||||||
@@ -13,7 +13,6 @@
|
|||||||
/codeset.m4
|
/codeset.m4
|
||||||
/config-h.m4
|
/config-h.m4
|
||||||
/configmake.m4
|
/configmake.m4
|
||||||
/dirname.m4
|
|
||||||
/double-slash-root.m4
|
/double-slash-root.m4
|
||||||
/dup2.m4
|
/dup2.m4
|
||||||
/eealloc.m4
|
/eealloc.m4
|
||||||
|
|||||||
+22
-20
@@ -1,4 +1,4 @@
|
|||||||
/* A Bison parser, made by GNU Bison 3.6.4.130-76c4d. */
|
/* A Bison parser, made by GNU Bison 3.6.90. */
|
||||||
|
|
||||||
/* Bison implementation for Yacc-like parsers in C
|
/* Bison implementation for Yacc-like parsers in C
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
#define YYBISON 1
|
#define YYBISON 1
|
||||||
|
|
||||||
/* Bison version. */
|
/* Bison version. */
|
||||||
#define YYBISON_VERSION "3.6.4.130-76c4d"
|
#define YYBISON_VERSION "3.6.90"
|
||||||
|
|
||||||
/* Skeleton name. */
|
/* Skeleton name. */
|
||||||
#define YYSKELETON_NAME "yacc.c"
|
#define YYSKELETON_NAME "yacc.c"
|
||||||
@@ -234,6 +234,10 @@ typedef enum yysymbol_kind_t yysymbol_kind_t;
|
|||||||
#include "scan-code.h"
|
#include "scan-code.h"
|
||||||
#include "scan-gram.h"
|
#include "scan-gram.h"
|
||||||
|
|
||||||
|
/* Pretend to be at least that version, to check features published
|
||||||
|
in that version while developping it. */
|
||||||
|
static const char* api_version = "3.7";
|
||||||
|
|
||||||
static int current_prec = 0;
|
static int current_prec = 0;
|
||||||
static location current_lhs_loc;
|
static location current_lhs_loc;
|
||||||
static named_ref *current_lhs_named_ref;
|
static named_ref *current_lhs_named_ref;
|
||||||
@@ -623,6 +627,7 @@ union yyalloc
|
|||||||
/* YYNSTATES -- Number of states. */
|
/* YYNSTATES -- Number of states. */
|
||||||
#define YYNSTATES 167
|
#define YYNSTATES 167
|
||||||
|
|
||||||
|
/* YYMAXUTOK -- Last valid token kind. */
|
||||||
#define YYMAXUTOK 315
|
#define YYMAXUTOK 315
|
||||||
|
|
||||||
|
|
||||||
@@ -634,19 +639,19 @@ union yyalloc
|
|||||||
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
|
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
|
||||||
static const yytype_int16 yyrline[] =
|
static const yytype_int16 yyrline[] =
|
||||||
{
|
{
|
||||||
0, 308, 308, 317, 318, 322, 323, 329, 333, 338,
|
0, 312, 312, 321, 322, 326, 327, 333, 337, 342,
|
||||||
339, 340, 341, 342, 343, 344, 349, 354, 355, 356,
|
343, 344, 345, 346, 347, 348, 353, 358, 359, 360,
|
||||||
357, 358, 359, 359, 360, 361, 362, 363, 364, 365,
|
361, 362, 363, 363, 364, 365, 366, 367, 368, 369,
|
||||||
366, 367, 371, 372, 381, 382, 386, 397, 401, 405,
|
370, 371, 375, 376, 385, 386, 390, 401, 405, 409,
|
||||||
413, 423, 424, 434, 435, 441, 454, 454, 459, 459,
|
417, 427, 428, 438, 439, 445, 458, 458, 463, 463,
|
||||||
464, 468, 478, 479, 480, 481, 485, 486, 491, 492,
|
468, 472, 482, 483, 484, 485, 489, 490, 495, 496,
|
||||||
496, 497, 501, 502, 503, 516, 525, 529, 533, 541,
|
500, 501, 505, 506, 507, 520, 529, 533, 537, 545,
|
||||||
542, 546, 559, 560, 565, 566, 567, 585, 589, 593,
|
546, 550, 563, 564, 569, 570, 571, 589, 593, 597,
|
||||||
601, 603, 608, 615, 625, 629, 633, 641, 646, 658,
|
605, 607, 612, 619, 629, 633, 637, 645, 650, 662,
|
||||||
659, 665, 666, 667, 674, 674, 682, 683, 684, 689,
|
663, 669, 670, 671, 678, 678, 686, 687, 688, 693,
|
||||||
692, 694, 696, 698, 700, 702, 704, 706, 708, 713,
|
696, 698, 700, 702, 704, 706, 708, 710, 712, 717,
|
||||||
714, 723, 747, 748, 749, 750, 762, 764, 788, 793,
|
718, 727, 751, 752, 753, 754, 766, 768, 792, 797,
|
||||||
794, 799, 807, 808
|
798, 803, 811, 812
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1748,7 +1753,7 @@ yydestruct (const char *yymsg,
|
|||||||
int
|
int
|
||||||
yyparse (void)
|
yyparse (void)
|
||||||
{
|
{
|
||||||
/* The lookahead symbol. */
|
/* Lookahead token kind. */
|
||||||
int yychar;
|
int yychar;
|
||||||
|
|
||||||
|
|
||||||
@@ -1803,7 +1808,7 @@ YYLTYPE yylloc = yyloc_default;
|
|||||||
int yyn;
|
int yyn;
|
||||||
/* The return value of yyparse. */
|
/* The return value of yyparse. */
|
||||||
int yyresult;
|
int yyresult;
|
||||||
/* Lookahead token as an internal (translated) token number. */
|
/* Lookahead symbol kind. */
|
||||||
yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
|
yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
|
||||||
/* The variables used to return semantic value and location from the
|
/* The variables used to return semantic value and location from the
|
||||||
action routines. */
|
action routines. */
|
||||||
@@ -3070,9 +3075,6 @@ handle_require (location const *loc, char const *version_quoted)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Pretend to be at least that version, to check features published
|
|
||||||
in that version while developping it. */
|
|
||||||
const char* api_version = "3.6";
|
|
||||||
const char* package_version =
|
const char* package_version =
|
||||||
0 < strverscmp (api_version, PACKAGE_VERSION)
|
0 < strverscmp (api_version, PACKAGE_VERSION)
|
||||||
? api_version : PACKAGE_VERSION;
|
? api_version : PACKAGE_VERSION;
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
/* A Bison parser, made by GNU Bison 3.6.4.130-76c4d. */
|
/* A Bison parser, made by GNU Bison 3.6.90. */
|
||||||
|
|
||||||
/* Bison interface for Yacc-like parsers in C
|
/* Bison interface for Yacc-like parsers in C
|
||||||
|
|
||||||
|
|||||||
+6
-5
@@ -58,6 +58,10 @@
|
|||||||
#include "scan-code.h"
|
#include "scan-code.h"
|
||||||
#include "scan-gram.h"
|
#include "scan-gram.h"
|
||||||
|
|
||||||
|
/* Pretend to be at least that version, to check features published
|
||||||
|
in that version while developping it. */
|
||||||
|
static const char* api_version = "3.7";
|
||||||
|
|
||||||
static int current_prec = 0;
|
static int current_prec = 0;
|
||||||
static location current_lhs_loc;
|
static location current_lhs_loc;
|
||||||
static named_ref *current_lhs_named_ref;
|
static named_ref *current_lhs_named_ref;
|
||||||
@@ -691,8 +695,8 @@ rhs:
|
|||||||
current_lhs_named_ref); }
|
current_lhs_named_ref); }
|
||||||
| rhs symbol named_ref.opt
|
| rhs symbol named_ref.opt
|
||||||
{ grammar_current_rule_symbol_append ($2, @2, $3); }
|
{ grammar_current_rule_symbol_append ($2, @2, $3); }
|
||||||
| rhs tag.opt "{...}"[act] named_ref.opt[name]
|
| rhs tag.opt "{...}"[action] named_ref.opt[name]
|
||||||
{ grammar_current_rule_action_append ($act, @act, $name, $[tag.opt]); }
|
{ grammar_current_rule_action_append ($action, @action, $name, $[tag.opt]); }
|
||||||
| rhs "%?{...}"
|
| rhs "%?{...}"
|
||||||
{ grammar_current_rule_predicate_append ($2, @2); }
|
{ grammar_current_rule_predicate_append ($2, @2); }
|
||||||
| rhs "%empty"
|
| rhs "%empty"
|
||||||
@@ -1082,9 +1086,6 @@ handle_require (location const *loc, char const *version_quoted)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Pretend to be at least that version, to check features published
|
|
||||||
in that version while developping it. */
|
|
||||||
const char* api_version = "3.6";
|
|
||||||
const char* package_version =
|
const char* package_version =
|
||||||
0 < strverscmp (api_version, PACKAGE_VERSION)
|
0 < strverscmp (api_version, PACKAGE_VERSION)
|
||||||
? api_version : PACKAGE_VERSION;
|
? api_version : PACKAGE_VERSION;
|
||||||
|
|||||||
+4
-6
@@ -695,12 +695,10 @@ packgram (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*------------------------------------------------------------------.
|
/*--------------------------------------------------------------.
|
||||||
| Read in the grammar specification and record it in the format |
|
| Read in the grammar specification and record it in the format |
|
||||||
| described in gram.h. All actions are copied into ACTION_OBSTACK, |
|
| described in gram.h. |
|
||||||
| in each case forming the body of a C function (YYACTION) which |
|
`--------------------------------------------------------------*/
|
||||||
| contains a switch statement to decide which action to execute. |
|
|
||||||
`------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
void
|
void
|
||||||
reader (const char *gram)
|
reader (const char *gram)
|
||||||
|
|||||||
@@ -145,6 +145,7 @@ void code_props_symbol_action_init (code_props *self, char const *code,
|
|||||||
location code_loc);
|
location code_loc);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* \param type type for midrule actions
|
||||||
* \pre
|
* \pre
|
||||||
* - <tt>self != NULL</tt>.
|
* - <tt>self != NULL</tt>.
|
||||||
* - <tt>code != NULL</tt>.
|
* - <tt>code != NULL</tt>.
|
||||||
|
|||||||
Reference in New Issue
Block a user