1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 20:00:19 +02:00
Commit graph

68 commits

Author SHA1 Message Date
Dirk Herrmann
609a8b86ae * libguile/eval.c (s_extra_expression, s_misplaced_else_clause,
s_bad_cond_clause, s_missing_recipient): New static identifiers.

	(s_extra_case_clause): Removed.

	(scm_m_case, scm_m_cond): If a clause appears after an else
	clause, report a misplaced else clause.

	(scm_m_cond): Use ASSERT_SYNTAX to signal syntax errors.  Be more
	specific about the kind of error that was detected.  Handle bound
	'else and '=>.  Avoid unnecessary consing when creating the
	memoized code.

	(scm_m_cond, unmemocopy, SCM_CEVAL): Use SCM_IM_ELSE to memoize
	the syntactic keyword 'else and SCM_IM_ARROW to memoize the
	syntactic keyword '=>.

	* test-suite/tests/syntax.test (exception:misplaced-else-clause,
	exception:bad-cond-clause): New.

	(exception:bad/missing-clauses, exception:extra-case-clause):
	Removed.

	Adapted tests for 'case' and 'cond' to the new way of error
	reporting.

	The tests that check if cond is hygienic pass now.
2003-10-11 10:40:19 +00:00
Dirk Herrmann
58a2510b07 * libguile/eval.c (scm_m_case): Allow empty lists of case labels.
* test-suite/tests/syntax.test: Fixed and activated test of empty case
        label support.
2003-10-11 01:52:25 +00:00
Dirk Herrmann
2a6f7afe04 * libguile/tags.h (SCM_IM_ELSE, SCM_IM_ARROW): New memoizer codes.
* libguile/print.c (scm_isymnames): Add names for the new memoizer
        codes.

	* libguile/eval.c (s_missing_clauses, s_bad_case_clause,
	s_extra_case_clause, s_bad_case_labels, s_duplicate_case_label,
	literal_p): New static identifiers.

	(scm_m_case): Use ASSERT_SYNTAX to signal syntax errors.  Be more
	specific about the kind of error that was detected.  Check for
	duplicate case labels.  Handle bound 'else.  Avoid unnecessary
	consing when creating the memoized code.

	(scm_m_case, unmemocopy, SCM_CEVAL): Use SCM_IM_ELSE to memoize
	the syntactic keyword 'else.

	* test-suite/tests/syntax.test (exception:bad-expression,
	exception:missing-clauses, exception:bad-case-clause,
	exception:extra-case-clause, exception:bad-case-labels): New.

	Added some tests and adapted tests for 'case' to the new way of
	error reporting.
2003-10-11 00:57:25 +00:00
Dirk Herrmann
d6e04e7c4a * lib.scm (exception:missing-expression): New.
* tests/dynamic-scope.test, tests/eval.test,
	tests/r5rs_pitfall.test, tests/srfi-17.test, tests/syncase.test:
	Wrap tests in module (test-suite test-<file-name without .test>),
	following a practice that was used on a couple of files already.

	* tests/dynamic-scope.test (exception:duplicate-binding,
	exception:bad-binding): New.

	* tests/dynamic-scope.test, tests/srfi-17.test, tests/syntax.test:
	Execute syntactically wrong tests using eval.  With the upcoming
	new memoizer this is necessary in order to postpone the syntax
	check to the actual evaluation of the syntactically wrong form.

	* tests/syntax.test: Added some test cases and modified one test
	case.
2003-10-07 22:00:05 +00:00
Dirk Herrmann
8aa28a916c * guile-test: Wrapped in module (test-suite guile-test).
(main data-file-name test-file-name): Exported.

	((guile-user)::main): New function, wrapper for function
	(test-suite guile-test)::main.

	* tests/load.test: Wrapped in module (test-suite test-load).

	* tests/ports.test: Wrapped in module (test-suite test-ports).

	* tests/r4rs.test: Wrapped in module (test-suite test-r4rs).
	Added comments about the required structure of the file itself,
	since it is subject to some tests.  Removed some now unnecessary
	undefine operations.

	* tests/syntax.test: Wrapped in module (test-suite test-syntax)
2003-09-22 19:00:41 +00:00
Kevin Ryde
cc08aafdaf (while): Exercise break and continue from
recursive nested loops.
2003-08-17 00:40:33 +00:00
Kevin Ryde
9f977dd883 Add a copyright year. 2003-08-12 21:39:56 +00:00
Kevin Ryde
2798ba71cd (while): New tests. 2003-08-12 21:39:30 +00:00
Dirk Herrmann
4dce3c9645 * tests/syntax.test: Modified some tests to use eval when
providing bad syntax.  Otherwise, the memoizer will report an
	error immediately after reading the form, without even the chance
	to get the pass-if-exception mechanism started.
2003-04-23 19:04:00 +00:00
Dirk Herrmann
7171f1ab47 * tests/syntax.test: Added some tests, updated some others with
respect to recent changes in eval.c.  Further, extracted test
cases for guile's extended set! functionality to srfi-17.test.

* tests/srfi-17.test:  New file.
2001-11-17 11:44:06 +00:00
Dirk Herrmann
b461abe73f * tests/syntax.test: Added test cases for 'cond =>' syntax with
else clause.  Changed some tests and comments related to the
'case' form to reflect recent changes in the implementation.
2001-10-18 21:59:29 +00:00
Dirk Herrmann
ea6c2147b7 * tests/syntax.test: Added test cases for 'lambda' syntax. 2001-10-13 23:59:27 +00:00
Dirk Herrmann
27a226665e * tests/syntax.test: Added test cases for 'case' syntax. 2001-10-13 17:02:01 +00:00
Dirk Herrmann
e1a7b2cea7 * Added a new test case plus minor improvements. 2001-03-11 23:31:58 +00:00
Martin Grabmüller
880c285882 * tests/syntax.test ("let*"): Changed the `duplicate bindings'
test, dups are allowed in `let*' and are now expected to pass.
2001-03-09 09:44:26 +00:00
Marius Vollmer
c0ed1605f1 * tests/syntax.test ("let,duplicate bindings", "let*,duplicate
bindings", "letrec,duplicate bindings"): Expect to pass, bug has
been fixed.
2001-03-03 23:54:42 +00:00
Marius Vollmer
1c54a87cb2 * tests/syntax.test ("duplicate formals"): New category, move
appropriate tests here.  Expect them to pass.
("empty parentheses"): Expect to pass, bug has been fixed.
2001-03-03 17:29:09 +00:00
Dirk Herrmann
08c608e10a * extracted the tests from exceptions.test into eval.test and syntax.test.
* added a few test cases.
2001-03-02 01:38:01 +00:00