diff options
Diffstat (limited to 'src/algebra')
-rw-r--r-- | src/algebra/Makefile.in | 61 | ||||
-rw-r--r-- | src/algebra/Makefile.pamphlet | 61 | ||||
-rw-r--r-- | src/algebra/exposed.lsp.pamphlet | 2 | ||||
-rw-r--r-- | src/algebra/syntax.spad.pamphlet | 183 |
4 files changed, 247 insertions, 60 deletions
diff --git a/src/algebra/Makefile.in b/src/algebra/Makefile.in index 4dab8997..db67d2ad 100644 --- a/src/algebra/Makefile.in +++ b/src/algebra/Makefile.in @@ -825,7 +825,7 @@ axiom_algebra_layer_user = \ LSTAST EXITAST RETAST SEGAST PRTDAST CRCAST \ LETAST SUCHAST RDUCEAST COLONAST ADDAST CAPSLAST \ CASEAST HASAST ISAST CATAST WHEREAST COMMAAST \ - QQUTAST DEFAST MACROAST + QQUTAST DEFAST MACROAST SPADXPT axiom_algebra_layer_user_nrlibs = \ $(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_user)) @@ -838,40 +838,41 @@ SASTCAT.NRLIB/code.$(FASLEXT): $(OUT)/ASTCAT.$(FASLEXT) LITERAL.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) IDENT.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) HEADAST.NRLIB/code.$(FASLEXT): $(OUT)/IDENT.$(FASLEXT) -ATTRAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -TYPEAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) +SPADXPT.NRLIB/code.$(FASLEXT): $(OUT)/ASTCAT.$(FASLEXT) +ATTRAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +TYPEAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) IMPTAST.NRLIB/code.$(FASLEXT): $(OUT)/TYPEAST.$(FASLEXT) MAPPAST.NRLIB/code.$(FASLEXT): $(OUT)/TYPEAST.$(FASLEXT) SIGAST.NRLIB/code.$(FASLEXT): $(OUT)/SIG.$(FASLEXT) JOINAST.NRLIB/code.$(FASLEXT): $(OUT)/TYPEAST.$(FASLEXT) -IFAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -RPTAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -WHILEAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -INAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -CLLCTAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -LSTAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -EXITAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -RETAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -SEGAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -SEQAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -PRTDAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -CRCEAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -RSTRCAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -LETAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -RDUCEAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -SUCHTAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -COLONAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -ADDAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -CAPSLAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -CASEAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -HASEAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -ISAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -CATAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -WHEREAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -COMMAAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) +IFAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +RPTAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +WHILEAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +INAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +CLLCTAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +LSTAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +EXITAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +RETAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +SEGAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +SEQAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +PRTDAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +CRCEAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +RSTRCAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +LETAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +RDUCEAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +SUCHTAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +COLONAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +ADDAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +CAPSLAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +CASEAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +HASEAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +ISAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +CATAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +WHEREAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +COMMAAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) QQUTAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -DEFAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -MACROAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) +DEFAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +MACROAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) .PHONY: all all-algebra mkdir-output-directory all: all-ax diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index d34998bd..c4a89300 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -1252,7 +1252,7 @@ axiom_algebra_layer_user = \ LSTAST EXITAST RETAST SEGAST PRTDAST CRCAST \ LETAST SUCHAST RDUCEAST COLONAST ADDAST CAPSLAST \ CASEAST HASAST ISAST CATAST WHEREAST COMMAAST \ - QQUTAST DEFAST MACROAST + QQUTAST DEFAST MACROAST SPADXPT axiom_algebra_layer_user_nrlibs = \ $(addsuffix .NRLIB/code.$(FASLEXT),$(axiom_algebra_layer_user)) @@ -1265,40 +1265,41 @@ SASTCAT.NRLIB/code.$(FASLEXT): $(OUT)/ASTCAT.$(FASLEXT) LITERAL.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) IDENT.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) HEADAST.NRLIB/code.$(FASLEXT): $(OUT)/IDENT.$(FASLEXT) -ATTRAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -TYPEAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) +SPADXPT.NRLIB/code.$(FASLEXT): $(OUT)/ASTCAT.$(FASLEXT) +ATTRAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +TYPEAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) IMPTAST.NRLIB/code.$(FASLEXT): $(OUT)/TYPEAST.$(FASLEXT) MAPPAST.NRLIB/code.$(FASLEXT): $(OUT)/TYPEAST.$(FASLEXT) SIGAST.NRLIB/code.$(FASLEXT): $(OUT)/SIG.$(FASLEXT) JOINAST.NRLIB/code.$(FASLEXT): $(OUT)/TYPEAST.$(FASLEXT) -IFAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -RPTAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -WHILEAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -INAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -CLLCTAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -LSTAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -EXITAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -RETAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -SEGAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -SEQAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -PRTDAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -CRCEAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -RSTRCAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -LETAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -RDUCEAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -SUCHTAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -COLONAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -ADDAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -CAPSLAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -CASEAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -HASEAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -ISAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -CATAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -WHEREAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -COMMAAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) +IFAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +RPTAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +WHILEAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +INAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +CLLCTAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +LSTAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +EXITAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +RETAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +SEGAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +SEQAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +PRTDAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +CRCEAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +RSTRCAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +LETAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +RDUCEAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +SUCHTAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +COLONAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +ADDAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +CAPSLAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +CASEAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +HASEAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +ISAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +CATAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +WHEREAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +COMMAAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) QQUTAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -DEFAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) -MACROAST.NRLIB/code.$(FASLEXT): $(OUT)/SASTCAT.$(FASLEXT) +DEFAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) +MACROAST.NRLIB/code.$(FASLEXT): $(OUT)/SPADXPT.$(FASLEXT) @ \section{Broken Files} diff --git a/src/algebra/exposed.lsp.pamphlet b/src/algebra/exposed.lsp.pamphlet index fe76c79f..8f50526d 100644 --- a/src/algebra/exposed.lsp.pamphlet +++ b/src/algebra/exposed.lsp.pamphlet @@ -440,6 +440,7 @@ (|VectorFunctions2| . VECTOR2) (|ViewDefaultsPackage| . VIEWDEF) (|Void| . VOID) + (|WhereAst| . WHEREAST) (|WhileAst| . WHILEAST) (|WuWenTsunTriangularSet| . WUTSET) ) @@ -746,6 +747,7 @@ (|SetAggregate| . SETAGG) (|SetCategory| . SETCAT) (|SExpressionCategory| . SEXCAT) + (|SpadAstExports| . SPADXPT) (|SpadSyntaxCategory| . SASTCAT) (|SpecialFunctionCategory| . SPFCAT) (|SquareFreeNormalizedTriangularSetCategory| . SNTSCAT) diff --git a/src/algebra/syntax.spad.pamphlet b/src/algebra/syntax.spad.pamphlet index b8d68f84..e38347eb 100644 --- a/src/algebra/syntax.spad.pamphlet +++ b/src/algebra/syntax.spad.pamphlet @@ -545,6 +545,188 @@ SpadSyntaxCategory(): Category == AbstractSyntaxCategory renderSyntax(x::Syntax) @ +\subsection{The Exports of SpadAst} + +<<category SPADXPT SpadAstExports>>= +)abbrev category SPADXPT SpadAstExports +++ Author: Gabriel Dos Reis +++ Date Created: September 20, 2008 +++ Date Last Modified: September 21, 2008 +++ Description: This category describes the exported +++ signatures of the SpadAst domain. +SpadAstExports(): Category == Join(SpadSyntaxCategory, UnionType) with + _case: (%, ImportAst()) -> Boolean + ++ s case ImportAst holds if `s' represents an `import' statement. + autoCoerce: % -> ImportAst() + ++ autoCoerce(s) returns the ImportAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, DefinitionAst()) -> Boolean + ++ s case DefinitionAst holds if `s' represents a definition. + autoCoerce: % -> DefinitionAst() + ++ autoCoerce(s) returns the DefinitionAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, MacroAst()) -> Boolean + ++ s case MacroAst holds if `s' represents a macro definition. + autoCoerce: % -> MacroAst() + ++ autoCoerce(s) returns the MacroAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, WhereAst()) -> Boolean + ++ s case WhereAst holds if `s' represents an expression with + ++ local definitions. + autoCoerce: % -> WhereAst() + ++ autoCoerce(s) returns the WhereAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, CategoryAst()) -> Boolean + ++ s case CategoryAst holds if `s' represents an unnamed category. + autoCoerce: % -> CategoryAst() + ++ autoCoerce(s) returns the CategoryAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, CapsuleAst()) -> Boolean + ++ s case CapsuleAst holds if `s' represents a domain capsule. + autoCoerce: % -> CapsuleAst() + ++ autoCoerce(s) returns the CapsuleAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, SignatureAst()) -> Boolean + ++ s case SignatureAst holds if `s' represents a signature export. + autoCoerce: % -> SignatureAst() + ++ autoCoerce(s) returns the SignatureAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, AttributeAst()) -> Boolean + ++ s case AttributeAst holds if `s' represents an attribute. + autoCoerce: % -> AttributeAst() + ++ autoCoerce(s) returns the AttributeAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, MappingAst()) -> Boolean + ++ s case MappingAst holds if `s' represents a mapping type. + autoCoerce: % -> MappingAst() + ++ autoCoerce(s) returns the MappingAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, IfAst()) -> Boolean + ++ s case IfAst holds if `s' represents an if-statement. + autoCoerce: % -> IfAst() + ++ autoCoerce(s) returns the IfAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, RepeatAst()) -> Boolean + ++ s case RepeatAst holds if `s' represents an repeat-loop. + autoCoerce: % -> RepeatAst() + ++ autoCoerce(s) returns the RepeatAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, WhileAst()) -> Boolean + ++ s case WhileAst holds if `s' represents a while-iterator + autoCoerce: % -> WhileAst() + ++ autoCoerce(s) returns the WhileAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, InAst()) -> Boolean + ++ s case InAst holds if `s' represents a in-iterator + autoCoerce: % -> InAst() + ++ autoCoerce(s) returns the InAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, CollectAst()) -> Boolean + ++ s case CollectAst holds if `s' represents a list-comprehension. + autoCoerce: % -> CollectAst() + ++ autoCoerce(s) returns the CollectAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, ConstructAst()) -> Boolean + ++ s case ConstructAst holds if `s' represents a list-expression. + autoCoerce: % -> ConstructAst() + ++ autoCoerce(s) returns the ConstructAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, ExitAst()) -> Boolean + ++ s case ExitAst holds if `s' represents an exit-expression. + autoCoerce: % -> ExitAst() + ++ autoCoerce(s) returns the ExitAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, ReturnAst()) -> Boolean + ++ s case ReturnAst holds if `s' represents a return-statement. + autoCoerce: % -> ReurnAst() + ++ autoCoerce(s) returns the ReturnAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, CoerceAst()) -> Boolean + ++ s case ReturnAst holds if `s' represents a coerce-expression. + autoCoerce: % -> CoerceAst() + ++ autoCoerce(s) returns the CoerceAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, PretendAst()) -> Boolean + ++ s case PretendAst holds if `s' represents a pretend-expression. + autoCoerce: % -> PretendAst() + ++ autoCoerce(s) returns the PretendAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, RestrictAst()) -> Boolean + ++ s case RestrictAst holds if `s' represents a restrict-expression. + autoCoerce: % -> RestrictAst() + ++ autoCoerce(s) returns the RestrictAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, SegmentAst()) -> Boolean + ++ s case SegmentAst holds if `s' represents a segment-expression. + autoCoerce: % -> SegmentAst() + ++ autoCoerce(s) returns the SegmentAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, SequenceAst()) -> Boolean + ++ s case SequenceAst holds if `s' represents a sequence-of-statements. + autoCoerce: % -> SequenceAst() + ++ autoCoerce(s) returns the SequenceAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, LetAst()) -> Boolean + ++ s case LetAst holds if `s' represents an assignment-expression. + autoCoerce: % -> LetAst() + ++ autoCoerce(s) returns the LetAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, SuchThatAst()) -> Boolean + ++ s case SuchThatAst holds if `s' represents a qualified-expression. + autoCoerce: % -> SuchThatAst() + ++ autoCoerce(s) returns the SuchThatAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, ColonAst()) -> Boolean + ++ s case ColonAst holds if `s' represents a colon-expression. + autoCoerce: % -> ColonAst() + ++ autoCoerce(s) returns the ColoonAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, CaseAst()) -> Boolean + ++ s case CaseAst holds if `s' represents a case-expression. + autoCoerce: % -> CaseAst() + ++ autoCoerce(s) returns the CaseAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, HasAst()) -> Boolean + ++ s case HasAst holds if `s' represents a has-expression. + autoCoerce: % -> HasAst() + ++ autoCoerce(s) returns the HasAst view of `s'. Left at the + ++ discretion of the compiler. + + _case: (%, IsAst()) -> Boolean + ++ s case IsAst holds if `s' represents an is-expression. + autoCoerce: % -> IsAst() + ++ autoCoerce(s) returns the IsAst view of `s'. Left at the + ++ discretion of the compiler. + +@ + + \subsection{The Literal domain} <<domain LITERAL Literal>>= @@ -1423,6 +1605,7 @@ MacroAst(): Public == Private where <<category ASTCAT AbstractSyntaxCategory>> <<category SASTCAT SpadSyntaxCategory>> +<<category SPADXPT SpadAstExports>> <<domain LITERAL Literal>> <<domain HEADAST HeadAst>> |