2007-12-04  Ben Pfaff  <blp@gnu.org>

	* lexer.c (lex_match_id_n): New function.
	(lex_match_id): Reimplement in terms of lex_match_id_n.

2007-08-16  Ben Pfaff  <blp@gnu.org>

	Implement journaling.  Bug #17240.
	
	* lexer.c (lex_get_line_raw): Pass the line read to journal_write.

2007-06-03  Ben Pfaff  <blp@gnu.org>

	Implement missing functions for subcommand integer lists.
	
	* subcommand-list.c (subc_list_int_create): New function.
	(subc_list_int_push): New function.
	(subc_list_int_count): New function.
	(subc_list_int_at): New function.
	(subc_list_int_destroy): New function.

2007-05-06  Ben Pfaff  <blp@gnu.org>

	Abstract the documents within a dictionary a little better.
	Thanks to John Darrington for suggestion, initial version, and
	review.  Patch #5917.

	* lexer.c (lex_entire_line): Add const to parameter.
	(lex_entire_line_ds): Ditto.
	(lex_rest_of_line): Drop end_dot parameter.  Update all callers to
	use lex_end_dot instead.
	(lex_end_dot): New function.

2007-05-03  John Darrington <john@darrington.wattle.id.au>
	
	* lexer.c lexer.h: Added lex_is_string function.
	
2007-04-15  Ben Pfaff  <blp@gnu.org>

	* q2c.c: Fully support lists of integer values.  Add support for
	lists of string values.  Add some more needed declarations to
	headers.

Fri Feb 16 11:14:42 2007  Ben Pfaff  <blp@gnu.org>

	Better support cross-compiling by using CC_FOR_BUILD and
	EXEEXT_FOR_BUILD for q2c.
	
	* automake.mk: Use EXEEXT_FOR_BUILD and CC_FOR_BUILD to build and
	clean q2c.

	* q2c.c: Avoid external dependencies, besides the standard C
	library.

Sun Feb 11 20:31:51 2007  Ben Pfaff  <blp@gnu.org>

	* q2c.c: Make q2c link under mingw32, by eliminating the
	dependency on localtime.  Gnulib replaces localtime by a fixed
	version, but we don't link q2c against gnulib.  q2c only uses
	localtime to put the time of processing into the output file,
	which I've never in practice found to be useful, so the patch just
	drops this feature.

Wed Dec 13 21:00:24 2006  Ben Pfaff  <blp@gnu.org>

	* variable-parser.c (parse_variables): If not successful, set
	output pointer to NULL and output count to 0.

Sat Dec  9 18:46:11 2006  Ben Pfaff  <blp@gnu.org>

	* variable-parser.h: New PV_SAME_WIDTH variable parsing option.

	* variable-parser.c (add_variable): Implement new PV_SAME_WIDTH
	option.
	(parse_var_set_vars) Ditto.
	(array_var_set_lookup_var_idx) Use new var_create, var_destroy
	functions.

Sat Dec  2 21:19:50 2006  Ben Pfaff  <blp@gnu.org>

	General clean-up.
	
	* lexer.c: (lex_token_name) Don't use a static buffer or, rather,
	use a separate static buffer for each possible answer.
	(lex_token_representation) Now use lex_token_name as building
	block.  Previously this broke lex_force_match because it uses
	lex_token_name in a call to lex_error, which in turn uses
	lex_token_representation.
	(lex_force_match_id) Use lex_match_id as building block, to
	simplify.
	(parse_id) Rewrite to work with modified lex_id_to_token and
	lex_id_get_length.  The computation of rest_of_line is a bit of an
	abomination but it will get fixed later.
	
Sat Dec  2 20:16:50 2006  Ben Pfaff  <blp@gnu.org>

	* lexer.c (struct lexer): Change function signature for
	`read_line' to take an "enum getl_syntax *" instead of "bool *".
	(lex_create) Ditto, for argument.
	(lex_preprocess_line) New function.
	(lex_get_line_raw) New arg, to allow caller to obtain getl_syntax
	of the line read.
	(lex_get_line) Use lex_get_line_raw and lex_preprocess_line to
	simplify.

Sun Nov 19 09:20:42 2006  Ben Pfaff  <blp@gnu.org>

	* range-parser.c (parse_num_range): Because data_in takes an enum
	fmt_type now, not a struct fmt_spec, change the type of the
	corresponding argument.  Updated all callers.
	(parse_number) Ditto.

Sun Nov 12 06:34:06 WST 2006 John Darrington <john@darrington.wattle.id.au>

	* format-parser.c format-parser.h lexer.c lexer.h q2c.c range-parser.c
	  range-parser.h subcommand-list.c variable-parser.c
	  variable-parser.h:

	Encapsulated the lexer into an object, and updated everything
	accordingly.

Tue Oct 31 18:09:32 2006  Ben Pfaff  <blp@gnu.org>

	* range-parser.c (parse_number): Fix error message.

Sat Oct 28 16:17:18 WST 2006 John Darrington <john@darrington.wattle.id.au>

	* lexer.c lexer.h: Added a line_buffer (previously an external
	reference called getl_buf). 

Thu Oct 26 20:18:03 2006  Ben Pfaff  <blp@gnu.org>

	* lexer.c (parse_string): Make lexing of binary, hex, and octal
	strings work (fixes bug #17948).  Allow null bytes in strings, now
	that there's a use for them (see tests/formats/float-format.sh).

Sun Jul 16 21:03:34 2006  Ben Pfaff  <blp@gnu.org>

	* format-parser.h: New file.  Moved prototypes of format-parser.c
	functions here, from lexer.h.

	* format-parser.c: (parse_format_specifier_name) Rewrote and
	changed semantics.
	(parse_abstract_format_specifier) New function.
	(parse_format_specifier) Rewrote in terms of
	parse_abstract_format_specifier.  Removed "options" parameter, so
	callers had to be updated.  Callers that didn't want messages
	emitted were changed to use the new msg_disable/msg_enable
	functions.

	* variables-parser.c: (parse_variables_pool) New function.
	(register_vars_pool) New function.
	(parse_DATA_LIST_vars_pool) New function.
	(parse_mixed_vars_pool) Use register_vars_pool.  Assert that
	PV_APPEND is not in the options.
	
Sat Jul  1 17:40:38 2006  Ben Pfaff  <blp@gnu.org>

	Fix bug #11612, "q2c documentation does not agree with code".
	
	* q2c.c (parse_subcommand): Make "+" mean ARITY_MANY, absence
	mean ARITY_ONCE_ONLY.

Tue Jul  4 09:45:12 2006  Ben Pfaff  <blp@gnu.org>

	Fix bug #15766 (/KEEP subcommand on SAVE doesn't fully support
	ALL) and additional underlying system file issues.
	
	* variable-parser.c (add_variable): Move test earlier for clarity
	and efficiency.
	(parse_var_set_vars) Accept ALL within a variable list, not just
	at the beginning of one.

Tue Jun 27 22:54:30 2006  Ben Pfaff  <blp@gnu.org>

	* automake.mk (src_language_lexer_liblexer_a_SOURCES): Add
	variable-parser.h.

Tue Jun 27 19:15:33 2006  Ben Pfaff  <blp@gnu.org>

	Add auxiliary data pointer to q2c parse_<command> function, and
	pass it along to the custom parser functions.

	Updated all uses of custom functions in all the existing .q files.
	
	* q2c.c (dump_declarations): Include auxiliary parameter in
	function prototypes.
	(dump_subcommand) Include aux arg in calls to custom functions.
	(dump_parser) Include aux param in parse_<command> function
	definition.  Include aux arg in calls to custom functions.

Tue Jun 27 12:07:34 2006  Ben Pfaff  <blp@gnu.org>

	* variable-parser.h: New header.  Moved the var_set and variable
	parsing declarations here.

	* q2c.c (main): Emit include for new variable-parser.h header.

Sun Jun 25 22:41:00 2006  Ben Pfaff  <blp@gnu.org>

	* q2c.c (dump_free): For SBC_DBL_LIST, enclose the output code in
	curly braces, because it contains a variable declaration and might
	not be at the beginning of a block.

Fri Jun  9 14:02:19 2006  Ben Pfaff  <blp@gnu.org>

	Reform string library.
	
	* q2c.c (dump_subcommand): ds_c_str() became ds_cstr(), in
	generated code.

Wed Apr 26 13:30:41 2006  Ben Pfaff  <blp@gnu.org>

	* lexer.c: (lex_discard_rest_of_command) New function.

Mon Apr 24 14:12:08 2006  Ben Pfaff  <blp@gnu.org>

	* q2c.c: Use exit.h from gnulib instead of checking for and
	defining EXIT_SUCCESS and EXIT_FAILURE by hand.

Sat Apr 15 14:30:35 2006  Ben Pfaff  <blp@gnu.org>

	* q2c.c: Change DEBUGGING macro to DUMP_TOKENS for clarity and to
	avoid dumping all the tokens to stdout when --enable-debug is
	passed to configure.

Fri Mar 10 08:29:25 2006  Ben Pfaff  <blp@gnu.org>

	* q2c.c: (dump_free) Free proper member for var list, instead of
	hard-coding to v_variables.  Thanks to Jason Stover for reporting
	this bug.

Thu Mar  2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
	
	* Moved files from src directory
