Commit Graph
100 Commits
Author SHA1 Message Date
Akim Demaille 730739e41d Fix tabs. 2007-11-04 20:39:50 +00:00
Akim Demaille a8c2e813f2 * doc/bison.texinfo (Calc++ Parser): Don't try to alias
nonterminals.
Use per-type %printer.
2007-01-17 08:44:55 +00:00
Akim Demaille bb32f4f284 * doc/bison.texinfo (Calc++ Parsing Driver): Let "parse" return an
error code.
(Calc++ Scanner): Exit with failure if we can't open the input
file.
Accept "-" standing for stdin.
(Calc++ Top Level): Print the result only if the parsing was
successful.
2007-01-16 13:11:30 +00:00
Akim Demaille 7cff04b572 * data/lalr1.cc (yy_reduce_print_): Add a missing end-of-line. 2007-01-16 12:27:19 +00:00
Akim Demaille 2ce4ed68c9 Support %define "KEY" {VALUE}.
* src/scan-code.h, src/scan-code.l (translate_action)
(translate_rule_action, translate_symbol_action, translate_code):
Return char *, not const char *.
* src/parse-gram.y (declaration): Rename as...
(prologue_declaration): this.
(string_content): Remove this nonterminal, use STRING.
(braceless, content, content.opt): New nonterminal.
Use them.
(%define): Now accept content.opt, i.e., accept also BRACED_CODE
as value.
* src/scan-gram.l (getargs.h): Don't include it.
2006-07-13 08:12:00 +00:00
Akim Demaille a5d80ba505 * data/c.m4: Comment changes. 2006-07-12 13:48:41 +00:00
Akim Demaille 23eb2a692f * src/complain.c (error_message, ERROR_MESSAGE): New.
To factor...
(fatal_at, fatal, warn_at, warn, complain_at, complain): these.
* src/complain.h, src/complain.c (warning_issued): Remove, unused.
2006-07-10 19:36:31 +00:00
Akim Demaille 7b42569e12 Implement --warnings/-W.
* src/getargs.c (report_argmatch, trace_argmatch): Remove,
replaced by...
(flags_argmatch, FLAGS_ARGMATCH): this new function and macro.
Adjust callers.
* src/getargs.h, src/getargs.c (warnings, warnings_flags)
(warnings_args, warnings_types): New.
(getargs, short_options, long_options): Accept -W/--warnings.
Sort the options by alphabetical order, upper case letter right
before its lower case.
2006-07-09 17:01:22 +00:00
Akim Demaille b8a4155924 * src/getargs.h, src/getargs.c: Swap --report and --trace handling
to be in alphabetical order.
(trace_args): Spelling fixes.
2006-07-09 15:38:42 +00:00
Akim Demaille cd48d21d94 * data/c.m4 (b4_location_initial_column, b4_location_initial_line):
New, default to 1.
* data/yacc.c, data/glr.c, data/location.cc: Use them.
* NEWS, doc/bison.texinfo: The initial column and line are 1 by
default.
* tests/calc.at: Adjust.
2006-07-08 20:38:14 +00:00
Akim Demaille 8ec0a172bc * data/c.m4 (b4_dirname): New.
(b4_syncline): Also output the location of its invocation (from
the skeleton).
(b4_user_action, b4_define_user_action, b4_user_actions)
(b4_user_initial_action, b4_user_post_prologue,	b4_user_start_header)
(b4_user_stype): New.
* data/yacc.c, data/glr.c, data/lalr1.cc, data/glr.cc: Use them.
2006-07-08 14:24:56 +00:00
Akim Demaille 2073e1b602 * doc/Doxyfile.in: New.
* doc/Makefile.am: Use it.
* src/lalr.h, src/symtab.h: Initial doxygenation.
2006-06-27 14:09:54 +00:00
Akim Demaille 203b927414 * src/symtab.h, src/symtab.c (symbol_from_uniqstr): New.
(symbol_get): Use it.
* src/parse-gram.y: Use it.
2006-06-20 11:39:22 +00:00
Akim Demaille 1b818f33ad Install these changes:
* data/c.m4 (b4_union_name): Leave a default value.
* data/glr.c, data/yacc.c: Use it.
2006-06-20 11:32:19 +00:00
Akim Demaille 58d7a1a1c7 * src/scan-gram.l: No longer "parse" things after `%union' until
`{'.  Rather, return a single "%union" token.
No longer make symbols: return strings, and leave the conversion
to symbols to the parser.
(SC_PRE_CODE, token_type): Remove.
* src/parse-gram.y (%union): New field `character'.
Sort tokens.
(CHAR): New token.
(ID, ID_COLON): Now that the scanner no longer makes them
identifiers, adjust all uses to invoke symbol_get.
(id_colon): New, wraps the conversion from string to symbol.
(%union): Accept a possible union_name.
(symbol): Now can be a char.
* data/c.m4 (b4_union_name): Leave a default value.
* data/glr.c, data/yacc.c: Use it.
2006-06-19 16:49:44 +00:00
Akim Demaille 9f936c5e9c Add it for real. 2006-06-07 07:58:28 +00:00
Akim Demaille 2346344a08 * src/scan-gram.l: Move the "add a trailing ; to actions" code
to...
* src/scan-code.l: here.
* tests/input.at (Torturing the Scanner): Fix another location
error.
2006-06-07 07:09:32 +00:00
Akim Demaille 4862bdfd61 * src/Makefile.am (BUILT_SOURCES): Fix the trailing backslash. 2006-06-07 06:52:12 +00:00
Akim Demaille e9071366c3 Extract the parsing of user actions from the grammar scanner.
As a consequence, the relation between the grammar scanner and
parser is much simpler.  We can also split "composite tokens" back
into simple tokens.
* src/gram.h (ITEM_NUMBER_MAX, RULE_NUMBER_MAX): New.
* src/scan-gram.l (add_column_width, adjust_location): Move to and
rename as...
* src/location.h, src/location.c (add_column_width)
(location_compute): these.
Fix the column count: the initial column is 0.
(location_print): Be robust to ending column being 0.
* src/location.h (boundary_set): New.
* src/main.c: Adjust to scanner_free being renamed as
gram_scanner_free.
* src/output.c: Include scan-code.h.
* src/parse-gram.y: Include scan-gram.h and scan-code.h.
Use boundary_set.
(PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_INITIAL_ACTION)
(PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Remove the {...} part,
which is now, again, a separate token.
Adjust all dependencies.
Whereever actions with $ and @ are used, use translate_code.
(action): Remove this nonterminal which is now useless.
* src/reader.c: Include assert.h, scan-gram.h and scan-code.h.
(grammar_current_rule_action_append): Use translate_code.
(packgram): Bound check ruleno, itemno, and rule_length.
* src/reader.h (gram_in, gram__flex_debug, scanner_cursor)
(last_string, last_braced_code_loc, max_left_semantic_context)
(scanner_initialize, scanner_free, scanner_last_string_free)
(gram_out, gram_lineno, YY_DECL_): Move to...
* src/scan-gram.h: this new file.
(YY_DECL): Rename as...
(GRAM_DECL): this.
* src/scan-code.h, src/scan-code.l, src/scan-code-c.c: New.
* src/scan-gram.l (gram_get_lineno, gram_get_in, gram_get_out):
(gram_get_leng, gram_get_text, gram_set_lineno, gram_set_in):
(gram_set_out, gram_get_debug, gram_set_debug, gram_lex_destroy):
Move these declarations, and...
(obstack_for_string, STRING_GROW, STRING_FINISH, STRING_FREE):
these to...
* src/flex-scanner.h: this new file.
* src/scan-gram.l (rule_length, rule_length_overflow)
(increment_rule_length): Remove.
(last_braced_code_loc): Rename as...
(gram_last_braced_code_loc): this.
Adjust to the changes of the parser.
Move all the handling of $ and @ into...
* src/scan-code.l: here.
* src/scan-gram.l (handle_dollar, handle_at): Remove.
(handle_action_dollar, handle_action_at): Move to...
* src/scan-code.l: here.
* src/Makefile.am (bison_SOURCES): Add flex-scanner.h,
scan-code.h, scan-code-c.c, scan-gram.h.
(EXTRA_bison_SOURCES): Add scan-code.l.
(BUILT_SOURCES): Add scan-code.c.
(yacc): Be robust to white spaces.
* tests/conflicts.at, tests/input.at, tests/reduce.at,
* tests/regression.at: Adjust the column numbers.
* tests/regression.at: Adjust the error message.
2006-06-06 16:40:06 +00:00
Akim Demaille cd8b579166 * doc/bison.texinfo (C++ Bison Interface): Clarify the naming
scheme.
Reported by Steve Murphy.
2006-05-14 21:00:37 +00:00
Akim Demaille 34376418e2 * data/glr.cc, data/lalr1.cc: Using %defines is mandatory.
* data/glr.cc: b4_location_flag is now b4_locations_flag.
2006-05-14 20:48:24 +00:00
Akim Demaille 327afc7c84 Implement --trace=m4.
* src/getargs.c (trace_types, trace_args): Accept trace_m4.
* src/output.c (output_skeleton): When set, pass -dV to m4.
Factor the handling of flags in m4.
* src/output.c (prepare): Rename the muscle names debug, defines,
error_verbose to debug_flag, defines_flag, error_verbose_flag.
* data/c.m4: Adjust.
(_b4_define_flag_if, b4_define_flag_if, b4_defines_if): New.
Use b4_define_flag_if to define other b4_FLAG_if macros.
(b4_location_if): As a consequence, rename as...
(b4_locations_if): this, for consistency.
Adjust all the skeletons.
2006-05-14 20:40:35 +00:00
Akim Demaille ba9ecd1910 * etc/bench.pm: Shorten bench names. 2006-05-14 20:39:18 +00:00
Akim Demaille 4e83ea15f7 * src/output.h, src/output.c (error_verbose): Move to...
* src/getargs.h, src/getargs.c: here.
Sort the flags.
Adjust dependencies.
2006-05-14 19:14:10 +00:00
Akim Demaille 0a9f1c7d45 Fix. 2006-05-14 07:23:21 +00:00
Akim Demaille 3cf084ecae * examples/extexi: Enforce the precedence of concatenation over
>>.
Reported by   [email protected]
2006-05-11 11:35:13 +00:00
Akim Demaille f94705b204 Complete ChangeLog. 2006-05-11 06:21:18 +00:00
Akim Demaille 32c96bd755 * data/lalr1.cc (yytranslate_): Rename token as t to avoid clashes
with the member "token".
2006-05-11 06:18:34 +00:00
Akim Demaille 6e2d1146f2 * data/glr.cc: Remove dead code. 2006-04-27 10:43:02 +00:00
Akim Demaille ed2e6384ed * doc/bison.texinfo (Multiple start-symbols): New. 2006-04-24 09:45:57 +00:00
Akim Demaille 3cedc2dc0d * etc/README, etc/bench.pl: New. 2006-04-24 08:35:44 +00:00
Akim Demaille b2ddc3f337 * src/scan-gram.l: Be robust to BRACED_CODE appearing before any
rule.
Reported by Mickael Labau.
* tests/input.at (Torturing the Scanner): Test it.
2006-04-03 13:50:10 +00:00
Akim Demaille 5cf61e933d * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Fix the definition
of AT_NAME_PREFIX when %name-prefix is not used.
2006-03-12 15:26:05 +00:00
Akim Demaille aa08666d72 Apply --prefix to C++ skeletons too: they change the namespace.
The test suite already exercize these cases.
* data/c++.m4 (b4_namespace): New.
* data/lalr1.cc, data/glr.cc, data/location.cc: Use it instead of `yy'.
* data/lalr1.cc (yytnameerr_): Move its definition into the namespace.
* data/yacc.c, data/glr.c: Remove a useless `[]'.
* doc/bison.texinfo: Document it.
(Option Cross Key): Use @multitable in all formats.  It looks
nicer, even in TeX outputs.
(Rules): Use the same code whatever the output type is.
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS)
(_AT_BISON_OPTION_POPDEFS): Support AT_NAME_PREFIX.
* tests/calc.at: Use it, instead of hard coding `yy'.
2006-03-12 14:45:27 +00:00
Akim Demaille 455671735e * TODO: Remove dead items. 2006-03-10 13:56:47 +00:00
Akim Demaille e9d8f881ce Fix ChangeLog. 2006-03-10 13:53:48 +00:00
Akim Demaille 55ba27be34 * doc/FAQ: Remove, merged into...
* doc/bison.texinfo (FAQ): this.
* doc/Makefile.am (EXTRA_DIST): Adjust.
2006-03-10 13:45:03 +00:00
Akim Demaille c095d689c3 * data/c.m4 (b4_token_enum): Always define the enum of tokens,
even if empty.
* data/lalrl1.cc, data/glr.cc (parser::token_type): New.
* doc/bison.texinfo (Calc++ Scanner): Use it.
2006-03-10 13:30:19 +00:00
Akim Demaille ed94ef2ae4 * tests/calc.at (_AT_DATA_CALC_Y): Initialize the whole initial
location, not just parts of it.
2006-01-19 12:47:17 +00:00
Akim Demaille 6ec2c0f295 * src/reader.c, src/symlist.h, src/symlist.c: s/mid_rule/midrule/. 2006-01-05 13:38:58 +00:00
Akim Demaille 8486615972 Also warn about non-used mid-rule values.
* src/symlist.h, src/symlist.c (symbol_list): Add a mid_rule
member.
(symbol_list_new): Adjust.
* src/reader.c (symbol_typed_p): New.
(grammar_rule_check): Use it.
(grammar_midrule_action): Bind a mid-rule LHS to its rule.
Check its rule.
* tests/input.at (AT_CHECK_UNUSED_VALUES): New.
Use it.
* tests/actions.at (Exotic Dollars): Adjust.
2006-01-04 09:18:37 +00:00
Akim Demaille 378f4bd846 * src/reader.c (grammar_midrule_action): If $$ is set in a
mid-rule, move the `used' bit to its lhs.
* tests/input.at (Unused values): New.
* tests/actions.at (Exotic Dollars): Adjust: exp is not typed.
2006-01-04 08:32:46 +00:00
Akim Demaille 8f7e3cf9d0 Have glr.cc pass (some of) the calc.at tests.
* data/glr.cc (b4_parse_param_orig): New.
(b4_parse_param): Improve its definition, and bound it more
clearly in the skeleton.
(b4_epilogue): Append, instead of prepending, in order to keep
#line consistency.
Simplify the generation of auxiliary functions: locations and
purity are mandated.
(b4_global_tokens_and_yystype): Honor it.
* data/location.cc (c++.m4): Don't include it.
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Define AT_GLR_CC_IF
and AT_SKEL_CC_IF.
* tests/calc.at (AT_CHECK_CALC): Rely on AT_SKEL_CC_IF instead of
AT_LALR1_CC_IF.
Be sure to initialize the first position's filename.
(AT_CHECK_CALC_LALR1_CC): Add %location and %defines, they are
mandated anyway.
(AT_CHECK_CALC_GLR_CC): New.
Use it to exercise glr.cc as a lalr1.cc drop-in replacement.
2006-01-03 09:06:22 +00:00
Akim Demaille 0a96ba819f * src/output.c (output_skeleton): Don't hard wire the inclusion of
c.m4.
* data/c++.m4, data/glr.c, data/yacc.c: Include c.m4.
* data/glr.cc: Do not include stack.hh.
2006-01-02 16:26:17 +00:00
Akim Demaille 3953ed882a * src/output.c (output_skeleton): Don't hard wire the inclusion of
c.m4.
* data/c++.m4: Include c.m4.
* data/glr.cc: Do not include stack.hh.
2006-01-02 16:06:11 +00:00
Akim Demaille 9ecafbbfe7 * data/glr.c: Reformat whitespace with tabs.
(b4_lpure_formals): Remove this unused m4 macro.
* tests/cxx-type.at: Reformat whitespace with tabs.
(_AT_TEST_GLR_CXXTYPES): In union Node, rename node_info to nodeInfo
since it's a member.  Rename type to isNterm for clarity.
2006-01-02 15:28:03 +00:00
Akim Demaille c4d497a010 Let glr.cc catch up with symbol_value_print.
* data/glr.cc (b4_yysymprint_generate): Replace by...
(b4_yy_symbol_print_generate): this.
(yy_symbol_print, yy_symbol_value_print): Declare them.
2005-12-29 11:06:33 +00:00
Akim Demaille 8f3596a633 * src/reader.c (grammar_current_rule_check): Also check that $$
is used.
Take the rule to check as argument, hence rename as...
(grammar_rule_check): this.
* src/reader.h, src/reader.c (grammar_rule_begin, grammar_rule_end):
Rename as...
(grammar_rule_begin, grammar_rule_end): these, for consistency.
(grammar_midrule_action, grammar_symbol_append): Now static.
* tests/torture.at (input): Don't rely on the default action
being always performed.
* tests/calc.at: "Set" $$ even when the action is "cut" with
YYERROR or other.
* tests/actions.at (Exotic Dollars): Instead of using unused
values, check that the warning is issued.
2005-12-27 17:50:00 +00:00
Akim Demaille f8e1c9e55b Some wrapping. 2005-12-27 15:42:44 +00:00
Akim Demaille a0af42fce6 * data/lalr1.cc, data/yacc.c, data/glr.c, data/c.m4
(b4_yysymprint_generate): Rename as...
(b4_yy_symbol_print_generate): this.
Generate yy_symbol_print instead of yysymprint.
Generate also yy_symbol_value_print, and use it.
2005-12-22 13:01:50 +00:00
Akim Demaille affac6132a Warn about unused values.
* src/symlist.h, src/symlist.c (symbol_list, symbol_list_new): Add
a `used' member.
(symbol_list_n_get, symbol_list_n_used_set): New.
(symbol_list_n_type_name_get): Use symbol_list_n_get.
* src/scan-gram.l (handle_action_dollar): Flag used symbols.
* src/reader.c (grammar_current_rule_check): Check that values are
used.
* src/symtab.c (symbol_print): Accept 0.
* tests/existing.at: Remove the type information.
Empty the actions.
Remove useless actions (beware of mid-rule actions: perl -000
-pi -e 's/s*{}(?=[ns]*[|;])//g').
* tests/actions.at (Exotic Dollars): Use unused values.
* tests/calc.at: Likewise.
* tests/glr-regression.at (No users destructors if stack 0 deleted):
Likewise.
* src/gram.c (rule_useful_p, rule_never_reduced_p): Use
rule_useful_p.
2005-12-22 11:40:05 +00:00
Akim Demaille 2c3b392a9a * tests/cxx-type.at: Construct a tree, count the parents of shared
nodes, and free each node once and only once.  Previously, the memory
for semantic values was leaked instead.
2005-12-21 15:45:17 +00:00
Akim Demaille d6cff4dc6f * data/glr.c (struct yyGLRStack): If pure, add yyval and yyloc members.
(yylval, yylloc): If pure, #define to yystackp->yyval and
yystackp->yyloc similar to yychar and yynerrs.
(yyparse): If pure, remove local yylval and yylloc. Add local
yystackp to accommodate pure definitions of yylval and yylloc.
(b4_lex_param, b4_lyyerror_args, b4_lpure_args): If pure, change
yylvalp and yyllocp to &yylval and &yylloc.
(nerrs, char, lval, lloc): If pure, add #define's for b4_prefix[]
namespace. Previously, nerrs and char were missing, but lval and lloc
weren't necessary.
(yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError): Remove
yylvalp and yyllocp parameters since, if pure, these are now always
accessible through yystackp.  If not pure, they are still accessible
globally.
* data/glr.c, data/yacc.c (YYLLOC_DEFAULT): Change `if (N)' to
`if (YYID (N))' to pacify lint.
2005-12-21 15:33:13 +00:00
Akim Demaille a85284cfbd YYACCEPT, YYERROR, and YYABORT, as user actions, should not
destroy the RHS symbols of a rule.
* data/yacc.c (yylen): Initialize to 0.
Keep its value to the number of items to possibly shift.
In particular, a regular successful parse that ends on YYFINAL by
a (internal) YYACCEPT must not have yylen != 0.
(yyerrorlab, yyreturn): Pop the RHS.
Reorder a bit to emphasize the `shifting' bits of code.
(YYPOPSTACK): Now accept a number of items to pop.
* data/lalr1.cc: Likewise.
* data/glr.c: Formatting changes.
Use goto instead of fall through.
* doc/bison.texinfo (Destructor Decl): Complete.
2005-12-21 15:28:30 +00:00
Akim Demaille e14d0ab687 Fix NEWS. 2005-12-21 13:49:44 +00:00
Akim Demaille d1ff7a7cc6 Generalize the display of semantic values and locations in traces.
* data/glr.c (yy_reduce_print): Fix indices (again).
* data/c++.m4 (b4_rhs_value, b4_rhs_location): Don't expect
literal integers.
* data/lalr1.cc (yyreduce_print): Rename as...
(yy_reduce_print): this.
Display values and locations.
* data/yacc.c (yy_reduce_print): Likewise.
(YY_REDUCE_PRINT): Adjust to pass the required arguments.
(yysymprint): Move higher to be visible from yy_reduce_print).
(yyparse): Adjust.
* tests/calc.at: Adjust the expected length of the traces.
2005-11-16 14:20:48 +00:00
Akim Demaille 6de5398de3 * data/glr.c (yy_reduce_print): The loop was quite wrong: type are
from 1 to N, while values and location start at 0.
(b4_rhs_location, b4_rhs_value): Add parens around $1 and $2.
2005-11-14 17:20:28 +00:00
Akim Demaille a1373f559a * data/glr.c (yy_reduce_print): Fix the $ number. 2005-11-14 15:33:18 +00:00
Akim Demaille 3dc4aa8c36 Fix incorrect comment. 2005-11-14 15:19:16 +00:00
Akim Demaille 613d8952e3 "Use" parse parameters.
* data/c.m4 (b4_parse_param_for, b4_parse_param_use): New.
* data/glr.c, data/glr.cc: Use them.
* data/glr.c (YYUSE): Have a C++ definition that supports
non-pointer types.
2005-11-14 15:18:34 +00:00
Akim Demaille b2741627b1 * data/glr.c (yyexpandGLRStack): Declare only if defined. 2005-11-14 14:34:38 +00:00
Akim Demaille 422494834c * data/glr.cc: New.
* data/m4sugar/m4sugar.m4 (m4_prepend): New.
2005-11-14 08:13:07 +00:00
Akim Demaille 5059b5c887 Have glr.c include its header file when created.
* data/glr.c (b4_shared_declarations): New.
Output them verbatim in the parser if !%defines, otherwise
output then in the header file, and include it instead.
2005-11-14 08:09:00 +00:00
Akim Demaille 4626a15dd1 Let position and location be PODs.
* data/location.cc (position::initialize, location::initialize): New.
(position::position, location::location): Define only if
b4_location_constructors is defined.
* data/lalr1.cc (b4_location_constructors): Define it for backward
compatibility.
* doc/bison.texinfo (Initial Action Decl): Use initialize.
2005-11-12 14:13:03 +00:00
Akim Demaille 98ae96438e * data/lalr1.cc: Move the body of the ctor and dtor into the
parser file (instead of the header).
Wrap the implementations in a "namespace yy".
2005-11-12 11:32:46 +00:00
Akim Demaille 1989d9476c * data/glr.c: Comment changes. 2005-11-11 10:39:35 +00:00
Akim Demaille 62b08cfcd7 When yydebug, report semantic and location values for reductions.
* data/glr.c (yy_reduce_print): Report the semantic values and the
locations.
(YY_REDUCE_PRINT): Adjust.
(yyglrReduce): Use them.
(b4_rhs_value, b4_rhs_location): Remove m4_eval invocations.
* data/c.m4 (b4_yysymprint_generate): Specify the const arguments.
* tests/calc.at (_AT_CHECK_CALC_ERROR): Remove the reduction
traces.
2005-11-11 10:36:24 +00:00
Akim Demaille 0299809431 * data/glr.c (yynewGLRStackItem, YY_RESERVE_GLRSTACK): New.
(yyaddDeferredAction, yyglrShift, yyglrShiftDefer): Use them.
(yyexpandGLRStack, YYRELOC): Define only when YYSTACKEXPANDABLE.
2005-11-11 09:20:03 +00:00
Akim Demaille a8991a1da4 * src/scan-skel.l: Use a couple of asserts. 2005-11-09 16:11:25 +00:00
Akim Demaille 36b5e963e6 In some (weird) cases, the final state number is incorrect.
Reported by Alexandre Duret-Lutz.
* src/LR0.c (state_list_append): Remove the computation of
final_state.
(save_reductions): Do it here.
(get_state): Alpha conversion.
(generate_states): Use a for loop.
* src/gram.h (item_number_is_rule_number)
(item_number_is_symbol_number): New.
* src/state.c: Use assert.
* src/system.h: Include assert.h.
* tests/sets.at (Accept): New.
2005-11-09 15:48:05 +00:00
Akim Demaille 317fce927c Typo. 2005-11-03 16:23:21 +00:00
Akim Demaille 067b32eef4 * Makefile.cfg: Adjust to config -> build-aux.
Reported by twledo.
2005-10-22 06:44:35 +00:00
Akim Demaille 4b3673159e * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Pass
the %parse-params.
* data/glr.c (YY_SYMBOL_PRINT, yydestroyGLRState): Adjust.
* data/yacc.c (b4_Pure_if): Rename as...
(b4_yacc_pure_if): this.
(YY_SYMBOL_PRINT, yyparse): Adjust.
* doc/bison.texinfo: Formatting changes.
2005-10-21 11:36:22 +00:00
Akim Demaille 24cc23d96d Finish the transition config -> build-aux.
* configure.ac, Makefile.am: Use build-aux.
* config/prev-version, config/announce-gen, config/Makefile.am:
Move to...
* build-aux/prev-version, build-aux/announce-gen,
* build-aux/Makefile.am: here.
2005-10-21 09:13:01 +00:00
Akim Demaille d4476375cf * examples/calc++/test: Use set -x only when VERBOSE. 2005-10-14 06:10:54 +00:00
Akim Demaille 7625ec2c83 * src/scan-skel.l: Output the base name parts of the parser and
header file names.
* tests/output.at (AT_CHECK_OUTPUT): Support subdirectorioes, and
additional checks.
Use this to exercise C++ outputs in subdirs.
Reported by Oleg Smolsky.
2005-10-13 10:13:24 +00:00
Akim Demaille 9b8a5ce03b * src/parse-gram.y (version_check): Exit 63 to please missing
(stands for "version mismatch).
* tests/input.at, doc/bison.texinfo: Adjust.
2005-10-12 10:15:12 +00:00
Akim Demaille a1b3bf8c21 * examples/calc++/test: Be quiet unless VERBOSE. 2005-10-10 11:41:27 +00:00
Akim Demaille 2888e8b946 Less ambiguous wording. 2005-10-05 06:57:16 +00:00
Akim Demaille b50d2359d7 * bootstrap (gnulib_modules): Add strverscmp.
* lib/.cvsignore: Add strverscmp.c, strverscmp.h.
* m4/.cvsignore: Add strverscmp.m4.
* src/parse-gram.y (%require): New token, new rule.
(version_check): New.
* src/scan-gram.l (%require): Adjust.
* tests/input.at (AT_REQUIRE): New.
Use it.
* doc/bison.texinfo (Require Decl): New.
(Calc++ Parser): Use %require.
2005-10-02 18:49:15 +00:00
Akim Demaille 21667f64cd * data/location.cc: New. 2005-10-02 18:17:23 +00:00
Akim Demaille 2b81e969ea Akim Demaille <[email protected]>
Make sure -odir/foo.cc creates dir/location.hh etc.
* src/files.h (spec_outfile, parser_file_name, spec_name_prefix)
(spec_file_prefix, spec_verbose_file, spec_graph_file)
(spec_defines_file): Now const.
(dir_prefix): New.
(short_base_name): Remove.
* src/files.c: Adjust.
(dirname.h): Include.
(base_name): Don't prototype it.
(finput): Remove, duplicates gram_in.
(full_base_name, short_base_name): Replace by...
(all_but_ext, all_but_tab_ext): these.
(compute_base_names): Rename as...
(compute_file_name_parts): this.
Update to compute the new variables, including dir_prefix.
Adjust dependencies.
* src/output.c (prepare): Output them.
* src/reader.c: Adjust to use gram_in, not finput.
* src/scan-skel.l (@dir_prefix@): New.
2005-10-02 17:44:49 +00:00
Akim Demaille fc695704a1 * data/location.cc: New, extract from...
* data/lalr1.cc: here.
(location.hh): Include it after the user prologue, in case the
filename type is defined by the user.
Forward declation location and position before the pre-prologue.
(yyresult_): Rename as...
(yyresult): this, it's a local variable, not an attribute.
* data/Makefile.am (dist_pkgdata_DATA): Adjust.
2005-10-02 16:34:02 +00:00
Akim Demaille 5215c87f14 * examples/extexi: Restore the #line generation. 2005-10-01 07:20:32 +00:00
Akim Demaille fb9712a962 Alexandre Duret-Lutz <[email protected]>
Move the token type and YYSTYPE in the parser class.
* data/lalr1.cc (stack.hh, location.hh): Include earlier.
(parser::token): New, from the moved free definition of tokens.
(parser::semantic_value): Now a full definition instead of an
indirection to YYSTYPE.
(b4_post_prologue): No longer included in the header file, but
in the implementation file.
* doc/bison.texi (C+ Language Interface): Update.
* src/parse-gram.y: Support unary %define.
* tests/actions.at: Define global_tokens_and_yystype for backward
compatibility until we update the tests.
* tests/calc.at: Idem.
(first_line, first_column, last_line, last_column): Define for lalr1.cc
to simplify the code.
2005-09-30 17:57:05 +00:00
Akim Demaille d4fb5e3cb9 * data/c.m4 (b4_error_verbose_if): New.
* data/lalr1.cc: Use it.
(YYERROR_VERBOSE_IF): Remove.
(yyn_, yylen_, yystate_, yynerrs_, yyerrstatus_): Remove as
parser members, replaced by...
(yyn, yylen, yystate, yynerss, yyerrstatus): these parser::parse
local variables.
(yysyntax_error_): Takes the state number as argument.
(yyreduce_print_): Use the argument yyrule, not the former
attribute yyn_.
2005-09-29 06:50:57 +00:00
Akim Demaille 3ab2ca2206 * data/glr.c: Use b4_token_enums, not b4_token_enums_defines. 2005-09-20 07:57:15 +00:00
Akim Demaille f479c6c61e Remove the traits, failed experiment.
It never proved useful, and anyway because of the current
definition, it was not possible to have several specialization of
this traits, making it useless.
* data/lalr1.cc (yy:traits): Remove.
Inline its definitions in the parser class.
2005-09-19 07:34:38 +00:00
Akim Demaille e2586f82b0 * tests/atlocal.in (LIBS): Pass INTLLIBS to address failures on at
least Mac OSX with a /usr/local install of gettext.
2005-09-19 07:22:17 +00:00
Akim Demaille 2e8cf949a5 * data/lalr1.cc (yyparse): Rename yylooka and yyilooka as yychar
and yytoken for similarity with the other skeletons.
2005-09-19 07:21:39 +00:00
Akim Demaille c7fb0b9079 * NEWS, configure.ac: Bump to 2.1a. 2005-09-19 07:08:00 +00:00
Akim Demaille c1432f6538 * src/symtab.h (struct symbol): Declare the printer and destructor
as const, to avoid accidental calls to free.
(symbol_destructor_set, symbol_printer_set): Adjust.
* src/symtab.c: Adjust.
2005-09-16 19:50:08 +00:00
Akim Demaille cf147260d2 * data/c.m4 (b4_token_enums): New.
(b4_token_defines): Rename as...
(b4_token_enums_defines): this.
(b4_token_defines): New, output only the #defines.
* data/yacc.c, data/glr.c: Adjust.
* data/lalr1.cc: Use b4_token_enums instead of b4_token_enums_defines.
* data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Define
as default values.
2005-09-16 19:26:40 +00:00
Akim Demaille 3a73c9ae44 * data/c.m4 (b4_token_enums): New.
(b4_token_defines): Rename as...
(b4_token_enums_defines): this.
(b4_token_defines): New, output only the #defines.
* data/yacc.c, data/glr.c: Adjust.
* data/lalr1.cc: Use b4_token_enums instead of b4_token_enums_defines.
* data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Define
as default values.
2005-09-16 19:03:54 +00:00
Akim Demaille dbcdae2d04 * data/lalr1.cc (yylex_): Remove, inline its code.
(yyreport_syntax_error_): Remove, replaced by...
(yysyntax_error_): this which returns a string and leaves to the
caller the call to the users' error function.
(yylooka_, yyilooka_, yylval, yylloc, yyerror_range_, yyval, yyloc):
Move from members of the parser object...
(yylooka, yyilooka, yylval, yylloc, yyerror_range, yyval, yyloc):
to local variables of the parse function.
2005-09-16 12:12:36 +00:00
Akim Demaille 70d8f2910e * doc/bison.texinfo (Calc++ Parser): Don't promote defining YYEOF
since it's in Bison's name space.
2005-09-16 11:26:43 +00:00
Akim Demaille e6efa9dacc * tests/local.at (AT_COMPILE_CXX): Pass $LINKS too. 2005-08-25 08:53:33 +00:00
Akim Demaille d2aaf69e73 Update. 2005-07-13 11:55:16 +00:00
Akim Demaille 22dda0f004 * src/symtab.h, src/symtab.c (symbol_print): Swap the arguments,
for consistency with the rest of the code.
* src/symlist.h, src/symlist.c (symbol_list_print): Ditto.
Add separators.
2005-07-12 15:58:49 +00:00
Akim Demaille 82b248ada6 * src/parse-gram.y: Use %printer instead of YYPRINT. 2005-07-12 13:54:41 +00:00