aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog10
-rw-r--r--src/algebra/domain.spad.pamphlet7
-rw-r--r--src/algebra/syntax.spad.pamphlet12
-rw-r--r--src/testsuite/interpreter/aw-428.input5
4 files changed, 27 insertions, 7 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 7c707915..c2e51102 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,13 @@
+2008-07-03 Bill Page <bill.page@newsynthesis.org>
+ Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ Fix AW/428
+ * algebra/syntax.spad.pamphlet (ConstructorCall): Now a member of
+ SetCategory.
+ (Domain): Likewise.
+ * share/algebra: Update databases.
+ * testsuite/interpreter/aw-428.input: New.
+
2008-07-02 Gabriel Dos Reis <gdr@cs.tamu.edu>
* interp/compiler.boot (compExpression): Tidy.
diff --git a/src/algebra/domain.spad.pamphlet b/src/algebra/domain.spad.pamphlet
index 571c14a8..0b4d5847 100644
--- a/src/algebra/domain.spad.pamphlet
+++ b/src/algebra/domain.spad.pamphlet
@@ -38,7 +38,7 @@ Category(): Public == Private where
++ Related Constructors: Type, Syntax, OutputForm
++ Also See: Type, ConstructorCall
Domain(): Public == Private where
- Public ==> CoercibleTo(OutputForm) with
+ Public == SetCategory with
reify: % -> ConstructorCall
++ reify(d) returns the abstract syntax for the domain `x'.
@@ -51,7 +51,7 @@ Domain(): Public == Private where
++ showSummary(d) prints out implementation detail information
++ of domain `d'.
- Private ==> add
+ Private == add
coerce x ==
outputDomainConstructor(x)$Lisp
@@ -61,6 +61,9 @@ Domain(): Public == Private where
reflect cc ==
evalDomain(cc)$Lisp @ %
+ x = y ==
+ reify x = reify y
+
showSummary x ==
showSummary(x)$Lisp
diff --git a/src/algebra/syntax.spad.pamphlet b/src/algebra/syntax.spad.pamphlet
index 365cac19..40b2f066 100644
--- a/src/algebra/syntax.spad.pamphlet
+++ b/src/algebra/syntax.spad.pamphlet
@@ -217,21 +217,20 @@ Syntax(): Public == Private where
)abbrev domain CTORCALL ConstructorCall
++ Author: Gabriel Dos Reis
++ Date Created: January 19, 2008
-++ Date Last Updated: January 19, 2008
+++ Date Last Updated: July 03, 2008
++ Description: This domains represents a syntax object that
++ designates a category, domain, or a package.
++ See Also: Syntax, Domain
ConstructorCall(): Public == Private where
- Public ==> CoercibleTo OutputForm with
+ Public == SetCategory with
constructorName: % -> Symbol
++ constructorName c returns the name of the constructor
arguments: % -> List Syntax
++ arguments returns the list of syntax objects for the
++ arguments used to invoke the constructor.
- Private ==> add
- rep(x: %): List Syntax ==
- x pretend List(Syntax)
+ Private == add
+ Rep == List Syntax
constructorName x ==
(first rep x)::Symbol
@@ -239,6 +238,9 @@ ConstructorCall(): Public == Private where
arguments x ==
rest rep x
+ x = y ==
+ rep x = rep y
+
coerce x ==
outputDomainConstructor(x)$Lisp
@
diff --git a/src/testsuite/interpreter/aw-428.input b/src/testsuite/interpreter/aw-428.input
new file mode 100644
index 00000000..9d8f23fc
--- /dev/null
+++ b/src/testsuite/interpreter/aw-428.input
@@ -0,0 +1,5 @@
+V1 := DirectProduct(3+4,Integer)
+V2 := DirectProduct(7,Integer)
+V1 = V2
+%::Boolean
+(Integer=Float)@Boolean