[uim-commit] r2926 - branches/r5rs/sigscheme/src

yamaken at freedesktop.org yamaken at freedesktop.org
Sat Jan 14 18:25:59 PST 2006


Author: yamaken
Date: 2006-01-14 18:25:35 -0800 (Sat, 14 Jan 2006)
New Revision: 2926

Modified:
   branches/r5rs/sigscheme/src/syntax.c
Log:
* This commit conclude support for the proper internal
  definitions. All known specifications are implemented and validated
  by test-define.scm. Please let me know if you have found something
  wrong.

* sigscheme/src/syntax.c
  - Add description of valid placement for definitions


Modified: branches/r5rs/sigscheme/src/syntax.c
===================================================================
--- branches/r5rs/sigscheme/src/syntax.c	2006-01-15 02:02:44 UTC (rev 2925)
+++ branches/r5rs/sigscheme/src/syntax.c	2006-01-15 02:25:35 UTC (rev 2926)
@@ -651,6 +651,29 @@
 /*===========================================================================
   R5RS : 4.2 Derived expression types : 4.2.2 Binding constructs
 ===========================================================================*/
+/*
+ * Valid placement for definitions
+ *
+ * Definitions on SigScheme is strictly conformed to the three rule specified
+ * in R5RS (see below), when SCM_STRICT_DEFINE_PLACEMENT is enabled. All
+ * conditions that are not specified by the rules cause syntax error.
+ *
+ * 5.2 Definitions
+ *
+ * Definitions are valid in some, but not all, contexts where expressions are
+ * allowed. They are valid only at the top level of a <program> and at the
+ * beginning of a <body>.
+ *
+ * 5.2.2 Internal definitions
+ *
+ * Definitions may occur at the beginning of a <body> (that is, the body of a
+ * lambda, let, let*, letrec, let-syntax, or letrec-syntax expression or that
+ * of a definition of an appropriate form).
+ *
+ * Wherever an internal definition may occur (begin <definition1> ...) is
+ * equivalent to the sequence of definitions that form the body of the begin.
+ */
+
 #if SCM_STRICT_DEFINE_PLACEMENT
 static ScmObj
 filter_definitions(ScmObj body, ScmObj *formals, ScmObj *actuals,



More information about the uim-commit mailing list