summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Convert lib/Makefile.am into lib/local.mk.candidates/lib-local-mkAkim Demaille2008-11-196-22/+196
| | | | | | | | | | | | | | | The real problem is rather gnulib.mk, which itself is extracted from a Makefile.am that gnulib expects to the "recursive". The tool prefix-gnulib-mk converts such a gnulib.mk to be non-recursive. Also, some AC_SUBST variables need to be adjusted. * etc/prefix-gnulib-mk: New. * bootstrap (slurp): Use it to convert further gnulib.mk. * lib/Makefile.am: Rename as... * lib/local.mk: this. Adjust to be prefixed. * Makefile.am, configure.ac: Adjust. * src/local.mk (AM_CPPFLAGS): Extend it, don't define it.
* More TODO.Akim Demaille2008-11-182-0/+19
| | | | * TODO: More short term issues.
* Regen.Akim Demaille2008-11-183-89/+94
| | | | * src/parse-gram.h, src/parse-gram.c: Regen.
* Use b4_subtract where possible.Akim Demaille2008-11-185-18/+20
| | | | | | | * data/lalr1.cc (b4_subtract): Move to... * data/bison.m4: here. * data/glr.c (b4_rhs_data): Use it. * data/yacc.c (b4_rhs_value, b4_rhs_location): Use it.
* Remove incorrect mode specification.Akim Demaille2008-11-182-2/+5
| | | | * data/glr.cc: Don't pretend it's C code.
* Simplify last patch slightly.Joel E. Denny2008-11-172-6/+7
| | | | * src/getargs.c (getargs): Here.
* Fix last warning from --enable-gcc-warnings.Joel E. Denny2008-11-172-4/+13
| | | | | * src/getargs.c (getargs): Don't assign const address to non-const pointer.
* Don't let maintainer-*-check targets force a version update.Joel E. Denny2008-11-172-6/+12
| | | | | * cfg.mk (_is-dist-target): Implement. maintainer-check* was already handled.
* Fix formatting and content of bison.texinfo menusDi-an Jan2008-11-172-172/+183
| | | | | | | | | * doc/bison.texinfo: Synchronize ``Detail Node Listing''. Align menus. Adjust word wrapping. Use node names for menu names. (Examples): Don't abbreviate node names. (LocalWords): Remove abbreviations. (Copying): Make description a sentence. (Java Action Features): Remove period to match the rest of menu.
* Handles several --enable-gcc-warnings.Di-an Jan2008-11-174-10/+23
| | | | | | | | | | | | * src/getargs.c (command_line_location): Set parameters to void. * src/output.c (symbol_type_name_cmp): Make static. (symbols_by_type_name): Set parameters to void. (symbol_definitions_output): Remove unused parameter. Rename as... (prepare_symbol_definitions): this. (muscles_output): Move symbol_definitions_output to... (output): here as prepare_symbol_definitions. * tests/c++.at (AT_CHECK_VARIANTS): Remove unused parameters of main. (AT_CHECK_NAMESPACE): Make unused parameter lloc unnamed.
* Use AT_DATA_GRAMMAR for C++ variants compiled tests.Di-an Jan2008-11-172-1/+6
| | | | | * tests/c++.at (AT_CHECK_VARIANTS): Fixes tests 198-202. Use AT_DATA_GRAMMAR instead of AT_DATA for compiled tests.
* Fix ChangeLog.Akim Demaille2008-11-161-1/+1
|
* Add missing $(EXEEXT).Akim Demaille2008-11-162-2/+8
| | | | | | * doc/local.mk ($(CROSS_OPTIONS_TEXI)): The target is "src/bison$(EXEEXT)". Reported by Di-an Jan.
* Update ignores.Akim Demaille2008-11-1614-30/+0
| | | | | | | | | | * data/.cvsignore, data/.gitignore, examples/.cvsignore, * examples/.gitignore: Remove. * build-aux/.cvsignore, build-aux/.gitignore, doc/.cvsignore, * doc/.gitignore, etc/.cvsignore, etc/.gitignore, src/.cvsignore, * src/.gitignore, tests/.cvsignore, tests/.gitignore: Remove MAkefile and Makefile.in.
* Update TODO.Akim Demaille2008-11-152-0/+32
| | | | * TODO: Update.
* Formatting changes.Akim Demaille2008-11-152-21/+21
| | | | * tests/input.at: here.
* Remove duplicate header inclusion.Akim Demaille2008-11-152-2/+6
| | | | * src/LR0.c: here.
* Regen.Akim Demaille2008-11-153-18/+22
| | | | * src/parse-gram.h, src/parse-gram.c: Regen.
* Fixes.Akim Demaille2008-11-151-68/+78
|
* Support parametric types.Akim Demaille2008-11-156-47/+127
| | | | | | | | | | | | | | | | | | | | | | | There are two issues to handle: first scanning nested angle bracket pairs to support types such as std::pair< std::string, std::list<std::string> > >. Another issue is to address idiosyncracies of C++: do not glue two closing angle brackets together (otherwise it's operator>>), and avoid sticking blindly a TYPE to the opening <, as it can result in '<:' which is a digraph for '['. * src/scan-gram.l (brace_level): Rename as... (nesting): this. (SC_TAG): New. Implement support for complex tags. (tag): Accept \n, but not <. * data/lalr1.cc (b4_symbol_value, b4_symbol_value_template) (b4_symbol_variant): Leave space around types as parameters. * examples/variant.yy: Use nested template types and leading ::. * src/parse-gram.y (TYPE, TYPE_TAG_ANY, TYPE_TAG_NONE, type.opt): Rename as... (TAG, TAG_ANY, TAG_NONE, tag.opt): these. * tests/c++.at: Test parametric types.
* Test token.prefix.Akim Demaille2008-11-152-0/+11
| | | | | | | | | This is not sufficient, but we test at least that the make_SYMBOL interface is not affected by token.prefix. A more general test will be implemented when the support of token.prefix is generalized to more skeletons. * tests/c++.at: One more variant test, using token.prefix.
* Test the make_TOKEN interface.Akim Demaille2008-11-152-32/+63
| | | | | | * tests/c++.at (AT_CHECK_VARIANTS): Require and use locations. Factor the common code in yylex. Use it to test "%define lex_symbol".
* Formatting change.Akim Demaille2008-11-152-2/+6
|
* Simplify code for variants bench marks.Akim Demaille2008-11-152-17/+21
| | | | | | * etc/bench.pl.in (&generate_grammar_list): Define and use location_type. Factor the common code in yylex.
* Better error message.Akim Demaille2008-11-152-2/+7
| | | | * bootstrap (find_tool): Fix the error message.
* Update variant.yy to newest interface.Akim Demaille2008-11-152-30/+23
| | | | | * examples/variant.yy: Define lex_symbol. Adjust.
* Don't use locations in variant.yy.Akim Demaille2008-11-152-3/+7
| | | | * examples/variant.yy: Adjust to not using locations.
* Comment changes.Akim Demaille2008-11-154-36/+42
| | | | | * data/local.mk, etc/local.mk, examples/local.mk: Use Automake comments for the license.
* Remove tests/Makefile.am.Akim Demaille2008-11-156-118/+131
| | | | | | | | | * tests/Makefile.am: Rename as... * tests/local.mk: this. * Makefile.am, configure.ac: Adjust. * Makefile.am (DISTCLEANFILES): Define. (maintainer-check, maintainer-xml-check, maintainer-push-check): Remove, we no longer need to bounce to the real targets.
* Comment changes.Akim Demaille2008-11-152-12/+16
|
* djgpp/local.mk.Akim Demaille2008-11-153-6/+37
| | | | | * Makefile.am (EXTRA_DIST): Move djgpp related part to... * djgpp/local.mk: this new file.
* Remove doc/Makefile.am.Akim Demaille2008-11-156-127/+140
| | | | | | | | | * doc/Makefile.am: Rename as... * doc/local.mk: this. Adjust paths * Makefile.am, configure.ac: Adjust. * Makefile.am (MOSTLYCLEANFILES): New. * src/local.mk: Adjust.
* Move sc_tight_scope into maint.mk.Akim Demaille2008-11-153-36/+38
| | | | | | | | | | It does not work, and I don't know how it was supposed to work: it seems to be looking for sources in the build tree. I just moved it at a better place, fixing it is still required. * src/local.mk (echo): Remove. (sc_tight_scope): Move to... * maint.mk: here.
* Regen.Akim Demaille2008-11-153-336/+343
| | | | * src/parse-gram.h, src/parse-gram.c: Regen.
* Remove src/Makefile.am.Akim Demaille2008-11-1513-162/+229
| | | | | | | | | | | | | | | | | | | | | | * src/Makefile.am: Rename as... * src/local.mk: this. Prefix all the paths with src/. (AUTOMAKE_OPTIONS): Build object files in the sub dirs. (AM_CPPFLAGS): Find find in builddir/src. (YACC): Move the flags into... (AM_YFLAGS): here. * maint.mk (sc_tight_scope): Disable. It used to bounce to the version in src/Makefile.am which is now part of this very Makefile. * Makefile.am, configure.ac: Adjust. * src/scan-code-c.c, src/scan-code.l: We can no longer rely on include "..." to find files "here": we are no longer in src/, so qualify the includes with src/. * doc/Makefile.am (PREPATH): No longer include the top_builddir prefix. (.x.1): Adjust to be able to create src/foo from the top level Makefile, instead of going bounce to src/Makefile the creation of foo.
* Remove useless variable.Akim Demaille2008-11-152-1/+5
| | | | * doc/Makefile.am (srcsrcdir): Remove.
* Remove data/Makefile.am.Akim Demaille2008-11-154-11/+32
| | | | | | | * data/Makefile.am: Rename as... * data/local.mk: this. Adjust paths. * Makefile.am, configure.ac: Adjust.
* Remove etc/Makefile.am.Akim Demaille2008-11-154-4/+12
| | | | | | | * etc/Makefile.am: Rename as... * etc/local.mk: this. Adjust. * Makefile.am, configure.ac: Adjust.
* Remove examples/local.mk.Akim Demaille2008-11-154-10/+19
| | | | | | | | | | examples/calc++/Makefile.am might be interesting to keep as is, since it is an example in itself. * examples/Makefile.am: Rename as... * examples/local.mk: this. Adjust. * Makefile.am, configure.ac: Adjust.
* Remove build-aux/Makefile.am.Akim Demaille2008-11-155-4/+16
| | | | | | | | | | Recursive Makefiles are really way too slow, let's get rid of some of them. * build-aux/Makefile.am: Rename as... * build-aux/local.mk: this. Adjust paths. * Makefile.am, configure.ac: Adjust.
* Provide convenience constructors for locations and positions.Akim Demaille2008-11-152-12/+40
| | | | | | | * data/location.cc (position::position): Accept file, line and column as arguments with default values. Always qualify initial line and column literals as unsigned. (location::location): Provide convenience constructors.
* Instead of using make_symbol<TOK_FOO>, generate make_FOO for each token type.Akim Demaille2008-11-153-49/+53
| | | | | | | | | | | | | | | | | | | | | Using template buys us nothing, and makes it uselessly complex to construct a symbol. Besides, it could not be generalized to other languages, while make_FOO would work in C/Java etc. * data/lalr1.cc (b4_symbol_): New. (b4_symbol): Use it. (b4_symbol_constructor_declaration_) (b4_symbol_constructor_definition_): Instead of generating specializations of an overloaded template function, just generate several functions whose names are forged from the token names without the token.prefix. (b4_symbol_constructor_declarations): Generate them for all the symbols, not just by class of symbol type, now that instead of specializing a function template by the token, we generate a function named after the token. (b4_symbol_constructor_specialization_) (b4_symbol_constructor_specializations): Remove. * etc/bench.pl.in: Adjust to this new API.
* %define token.prefix.Akim Demaille2008-11-134-4/+24
| | | | | | | | | | | Provide a means to add a prefix to the name of the tokens as output in the generated files. Because of name clashes, it is good to have such a prefix such as TOK_ that protects from names such as EOF, FILE etc. But it clutters the grammar itself. * data/bison.m4 (token.prefix): Empty by default. * data/c.m4 (b4_token_enum, b4_token_define): Use it. * data/lalr1.cc (b4_symbol): Ditto.
* Compute at M4 time some of the subtractions.Akim Demaille2008-11-132-1/+16
| | | | | * data/lalr1.cc (b4_substract): New. (b4_rhs_data): Use it.
* symbol::token.Akim Demaille2008-11-132-9/+33
| | | | | | | | | | | | | | This is allows the user to get the type of a token return by yylex. * data/lalr1.cc (symbol::token): New. (yytoknum_): Define when %define lex_symbol, independently of %debug. (yytoken_number_): Move into... (symbol::token): here, since that's the only use. The other one is YYPRINT which was not officially supported by lalr1.cc, and anyway it did not work since YYPRINT uses this array under a different name (yytoknum).
* YYERRCODE.Akim Demaille2008-11-132-0/+28
| | | | * TODO (YYERRCODE): Mention the case of $undef.
* TODO: YYPRINT.Akim Demaille2008-11-132-0/+12
| | | | * TODO (YYPRINT): New.
* Comment changes.Akim Demaille2008-11-133-8/+17
| | | | | * data/lalr1.cc, data/yacc.c: Fix the description of the yytranslate and yytoknum tables.
* Define make_symbol in the header.Akim Demaille2008-11-132-1/+15
| | | | | | | | | | | | To reach good performances these functions should be inlined (yet this is to measure precisely). To this end they must be available to the caller. * data/lalr1.cc (b4_symbol_constructor_definition_): Qualify location_type with the class name. Since will now be output in the header, declare "inline". No longer use b4_symbol_constructor_specializations, but b4_symbol_constructor_definitions in the header. Don't call it in the *.cc file.
* Define yytranslate in the header for lex_symbol.Akim Demaille2008-11-132-2/+12
| | | | | | * data/lalr1.cc: Move the invocation of b4_yytranslate_definition into the header file when using %define lex_symbol. (yytranslate_): Declare inline.