DSSSL Prototype Procedure Summary

Copyright © 1996 Harvey Bingham

The DSSSL procedure prototypes appear following the sub-clause where their semantics are provided. Only sub-clauses in the lineage of those containing prototype(s) are shown.

Prototypes in a sub-clause appear in original order, indented, as monospaced parenthesized strings. Each procedure prototype begins with its name. That name is either an initial symbol or symbols, a reserved name or a hyphen-separated compound name that identifies it. Following the name are possibly some other reserved words that end with a colon and identify argument options, other characters, and variable-names.

Some procedure prototypes are identified as forming the core expression language in 8.6.2. These are noted in the sub-clause where specified with a {core} suffix.

An alphabetic list of variable-names used in the procedure prototypes concludes this file.

DSSSL Clauses with Procedure Prototypes

1 Scope

2 Conformance

3 Normative references

4 Definitions

5 Notation and Conventions

5.2 Procedure Prototypes
(foo a b)
(foo a b #!key key1: key2:)

6 DSSSL Overview

7 DSSSL Specifications

8 Expression Language

8.5 Standard Procedures
8.5.1 Booleans
8.5.1.1 Negation
(not obj) {core}
8.5.1.2 Boolean Type Predicate
(boolean? obj) {core}
8.5.2 Equivalence
(equal? obj1 obj2) {core}
8.5.3 Pairs and Lists
8.5.3.1 Pair Type Predicate
(pair? obj)
8.5.3.2 Pair Construction Procedure
(cons obj1 obj2)
8.5.3.3 car Procedure
(car pair)
8.5.3.4 cdr Procedure
(cdr pair)
8.5.3.5 c...r Procedures
(caar pair)
(cadr pair)
(cdar pair)
(cddr pair)
(caaar pair)
(caadr pair)
(cadar pair)
(caddr pair)
(cdaar pair)
(cdadr pair)
(cddar pair)
(cdddr pair)
(caaaar pair)
(caaadr pair)
(caadar pair)
(caaddr pair)
(cadaar pair)
(cadadr pair)
(caddar pair)
(cadddr pair)
(cdaaar pair)
(cdaadr pair)
(cdadar pair)
(cdaddr pair)
(cddaar pair)
(cddadr pair)
(cdddar pair)
(cddddr pair)
8.5.3.6 Empty List Type Predicate
(null? obj) {core}
8.5.3.7 List Type Predicate
(list? obj) {core}
8.5.3.8 List Construction
(list obj ...) {core}
8.5.3.9 List Length
(length list) {core}
8.5.3.10 Lists Appendance
(append list ...) {core}
8.5.3.11 List Reversal
(reverse list) {core}
8.5.3.12 Sublist Extraction
(list-tail list k) {core}
8.5.3.13 List Access
(list-ref list k) {core}
8.5.3.14 List Membership
(member obj list) {core}
8.5.3.15 Association Lists
(assoc obj alist)
8.5.4 Symbols
8.5.4.1 Symbol Type Predicate
(symbol? obj) {core}
8.5.4.2 Symbol to String Conversion
(symbol->string symbol)
8.5.4.3 String to Symbol Conversion
(string->symbol string)
8.5.5 Keywords
8.5.5.1 Keyword Type Predicate
(keyword? obj) {core}
8.5.5.2 Keyword to String Conversion
(keyword->string keyword)
8.5.5.3 String to Keyword Conversion
(string->keyword string)
8.5.7 Quantities and Numbers
8.5.7.5 Number Type Predicates
(quantity? obj) {core}
(number? obj) {core}
(real? obj) {core}
(integer? obj) {core}
8.5.7.6 Exactness Predicates
(exact? q)
(inexact? q)
8.5.7.7 Comparison Predicates
(= q1 q2 q3 ...) {core}
(< q1 q2 q3 ...) {core}
(> q1 q2 q3 ...) {core}
(<= q1 q2 q3 ...) {core}
(>= q1 q2 q3 ...) {core}
8.5.7.8 Numerical Property Predicates
(zero? q)
(positive? q)
(negative? q)
(odd? n)
(even? n)
8.5.7.9 Maximum and Minimum
(max q1 q2 ...) {core}
(min q1 q2 ...) {core}
8.5.7.10 Addition
(+ q1 ...) {core}
8.5.7.11 Multiplication
(* q1 ...) {core}
8.5.7.12 Subtraction
(- q1 q2) {core}
(- q) {core}
(- q1 q2 ...)
8.5.7.13 Division
(/ q1 q2) {core}
(/ q) {core}
(/ q1 q2 ...)
8.5.7.14 Absolute Value
(abs q) {core}
8.5.7.15 Number-theoretic Division
(quotient n1 n2) {core}
(remainder n1 n2) {core}
(modulo n1 n2) {core}
8.5.7.16 Real to Integer Conversion
(floor x) {core}
(ceiling x) {core}
(truncate x) {core}
(round x) {core}
8.5.7.17 en and Natural Logarithm
(exp x)
(log x)
8.5.7.18 Trigonometric Functions
(sin x)
(cos x)
(tan x)
8.5.7.19 Inverse Trigonometric Functions
(asin x)
(acos x)
(atan x)
(atan q1 q2)
8.5.7.20 Square Root
(sqrt q) {core}
8.5.7.21 Exponentiation
(expt x1 x2)
8.5.7.22 Exactness Conversion
(exact->inexact q)
(inexact->exact q)
8.5.7.23 Quantity to Number Conversion
(quantity->number q)
8.5.7.24 Number to String Conversion
(number->string number) {core}
(number->string number radix) {core}
(format-number n string)
(format-number-list list obj1 obj2)
8.5.7.25 String to Number Conversion
(string->number string) {core}
(string->number string radix) {core}
8.5.8 Characters
8.5.8.2 Language-dependent Operations
(language? obj)
(current-language)
(with-language language proc)
8.5.8.3 Character Type Predicate
(char? obj) {core}
8.5.8.4 Character Comparison Predicates
(char=? char1 char2) {core}
(charchar1 char2)
(char>? char1 char2)
(char<=? char1 char2)
(char>=? char1 char2)
8.5.8.5 Case-insensitive Character Predicates
(char-ci=? char1 char2)
(char-cichar1 char2)
(char-ci>? char1 char2)
(char-ci<=? char1 char2)
(char-ci>=? char1 char2)
8.5.8.6 Character Case Conversion
(char-upcase char)
(char-downcase char)
8.5.8.7 Character Properties
(char-property symbol char) {core}
(char-property symbol char obj) {core}
8.5.9 Strings
8.5.9.1 String Type Predicate
(string? obj) {core}
8.5.9.2 String Construction
(string char ...) {core}
8.5.9.3 String Length
(string-length string) {core}
8.5.9.4 String Access
(string-ref string k) {core}
8.5.9.5 String Equivalence
(string=? string1 string2) {core}
(string-ci=? string1 string2)
(string-equiv? string1 string2 k)
8.5.9.6 String Comparison
(stringstring1 string2)
(string>? <string1 string2)
(string<=? string1 string2)
(string>=? string1 string2)
(string-cistring1 string2)
(string-ci>? string1 string2)
(string-ci<=? string1 string2)
(string-ci>=? string1 string2)
8.5.9.7 Substring Extraction
(substring string start end) {core}
8.5.9.8 String Appendance
(string-append string ...) {core}
8.5.9.9 Conversion between Strings and Lists
(string->list string)
(list->string chars)
8.5.10 Procedures
8.5.10.1 Procedure Type Predicate
(procedure? obj) {core}
8.5.10.2 Procedure Application
(apply proc args) {core}
(apply proc arg1 ... args)
8.5.10.3 Mapping Procedures over Lists
(map proc list1 list2 ...)
8.5.10.4 External Procedures
(external-procedure string) {core}
8.5.11 Date and Time
(time) {core}
(time->string k) {core}
(time->string k boolean) {core}
(timestring1 string2)
(time>? string1 string2)
(time<=? string1 string2)
(time>=? string1 string2)
8.5.12 Error Signaling
(error string) {core}
8.6 Core Expression Language
8.6.2 {Core} Procedures
(not obj)
(boolean? obj)
(equal? obj1 obj2)
(null? obj)
(list? obj)
(list obj ...)
(length list)
(append list ...)
(reverse list)
(list-tail list k)
(list-ref list k)
(member obj list)
(symbol? obj)
(keyword? obj)
(quantity? obj)
(number? obj)
(real? obj)
(integer? obj)
(= q1 q2 q3 ...)
(< q1 q2 q3 ...)
(> q1 q2 q3 ...)
(<= q1 q2 q3 ...)
(>= q1 q2 q3 ...)
(max q1 q2 ...)
(min q1 q2 ...)
(+ q1 ...)
(* q1 ...)
(- q1 q2)
(- q)
(/ q1 q2)
(/ q)
(abs q)
(quotient n1 n2)
(remainder n1 n2)
(modulo n1 n2)
(floor x)
(ceiling x)
(truncate x)
(round x)
(sqrt q)
(number->string number)
(number->string number radix)
(string->number string)
(string->number string radix)
(char? obj)
(char=? char1 char2)
(char-property symbol char)
(char-property symbol char obj)
(string? obj)
(string char ...)
(string-length string)
(string-ref string k)
(string=? string1 string2)
(substring string start end)
(string-append string ...)
(procedure? obj)
(apply proc args)
(external-procedure string)
(time)
(time->string k)
(time->string k boolean)
(error string)

9 Groves

10 Standard Document Query Language

10.1 Primitive Procedures
10.1.1 Application Binding
(current-node)
(current-root)
10.1.2 Node Lists
(node-list? obj)
(node-list-empty? nl)
(node-list-first nl)
(node-list-rest nl)
(node-list nl1 nl2 ...)
(node-list=? nl1 nl2)
(node-list-no-order nl)
10.1.3 Named Node Lists
(named-node-list? obj)
(named-node string nnl)
(named-node-list-normalize string nnl symbol)
(named-node-list-names nnl)
10.1.4 Error Reporting
(node-list-error string nl)
10.1.6 Property Values
(node-property propname snl #!key default: null: rcs?:)
10.1.7 SGML Grove Construction
(sgml-parse string #!key active: parent:)
10.2 Derived Procedures
10.2.1 HyTime Support
(value-proploc propname snl #!key apropsrc?: default:)
(list-proploc propname nl #!key apropsrc?: ignore-missing?:)
(node-list-proploc propname nl #!key apropsrc?: ignore-missing?:)
(listloc dimlist nl #!key overrun:)
(listloc dimlist list #!key overrun:)
(listloc dimlist string #!key overrun:)
(nameloc nmlist nnl #!key ignore-missing?:)
(groveloc list nl #!key overrun:)
(treeloc marklist nl #!key overrun: treecom?:)
(pathloc dimlist nl #!key overrun: treecom?:)
(relloc-anc dimlist nl #!key overrun:)
(relloc-esib dimlist nl #!key overrun:)
(relloc-ysib dimlist nl #!key overrun:)
(relloc-des dimlist nl #!key overrun:)
(datatok nl #!key filter: concat: catsrcsp: catressp: tokensep: ascp: stop: min: max: nlword: stem?:)
(make-grove string nl)
(literal-match string nl #!key level: boundary: min-hits: max-hits:)
(hylex-match string nl #!key norm?: level: boundary: min-hits: max-hits:)
(compare proc list)
(ordered-may-overlap? nl)
(ordered-no-overlap? nl)
(span nl symbol)
10.2.2 List Operations
(empty-node-list)
(node-list-reduce nl proc obj)
(node-list-contains? nl snl)
(node-list-remove-duplicates nl)
(node-list-union #!rest args)
(node-list-intersection #!rest args)
(node-list-difference #!rest args)
(node-list-symmetric-difference #!rest args)
(node-list-map proc nl)
(node-list-union-map proc nl)
(node-list-some? proc nl)
(node-list-every? proc nl)
(node-list-filter proc nl)
(node-list->list nl)
(node-list-length nl)
(node-list-reverse nl)
(node-list-ref nl k)
(node-list-tail nl k)
(node-list-head nl k)
(node-list-sublist nl k1 k2)
(node-list-count nl)
(node-list-last nl)
10.2.3 Generic Property Operations
(node-list-property propname nl)
(origin nl)
(origin-to-subnode-rel snl)
(tree-root nl)
(grove-root nl)
(children nl)
(data nl)
(parent nl)
(source nl)
(subtree nl)
(subgrove nl)
(descendants nl)
(ancestors nl)
(grove-root-path nl)
(rsiblings nl)
(ipreced nl)
(ifollow nl)
(preced nl)
(follow nl)
(grove-before? snl1 snl2)
(sort-in-tree-order nl)
(tree-before? snl1 snl2)
(tree-before nl)
(property-lookup propname snl if-present if-not-present)
(select-by-class nl sym)
(select-by-property nl sym proc)
(select-by-null-property nl sym)
(select-by-missing-property nl sym)
10.2.4 Core Query Language
10.2.4.1 Navigation
(ancestor string osnl)
(gi osnl)
(first-child-gi osnl)
(id osnl)
10.2.4.2 Counting
(child-number snl)
(ancestor-child-number string snl)
(hierarchical-number list snl)
(hierarchical-number-recursive string snl)
(element-number snl)
(element-number-list list snl)
10.2.4.3 Accessing Attribute Values
(attribute-string string osnl)
(inherited-attribute-string string osnl)
(inherited-element-attribute-string string1 string2 osnl )
10.2.4.4 Testing Current Location
(first-sibling? snl)
(absolute-first-sibling? snl)
(last-sibling? snl)
(absolute-last-sibling? snl)
(have-ancestor? obj snl)
10.2.4.5 Entities and Notations
(entity-public-id string snl)
(entity-system-id string snl)
(entity-generated-system-id string snl)
(entity-text string snl)
(entity-notation string snl)
(entity-attribute-string string1 string2 snl)
(entity-type string snl)
(notation-public-id string snl)
(notation-system-id string snl)
(notation-generated-system-id string snl)
10.2.4.6 Name Normalization
(general-name-normalize string snl)
(entity-name-normalize string snl)
10.2.5 SGML Property Operations
(attributes nl)
(attribute string nl)
(element-with-id string snl)
(referent nl)
(match-element? pattern snl)
(select-elements nl pattern)
(q-element pattern nl)
(q-element pattern)
(q-class symbol nl)
(q-class symbol)
(q-sdata string nl)
(q-sdata string)
10.3 Auxiliary Parsing
10.3.1 Word Searching
(word-parse nl string)
(word-parse nl)
(select-tokens nl string)
10.3.2 Node Regular Expressions
(regexp? obj)
10.3.3 Regexp Constructors
(regexp-node proc)
(regexp-seq regexp1 regexp2 ... regexpn)
(regexp-or regexp1 regexp2 ... regexpn)
(regexp-and regexp1 regexp2 ... regexpn)
(regexp-rep regexp)
(regexp-plus regexp)
(regexp-opt regexp)
(regexp-range regexp k1 k2)
(string->regexp string)
10.3.4 Regular Expression Searching Procedures
(regexp-search nl regexp)
(regexp-search-disjoint nl regexp)

11 Transformation Language

11.3 Transform-expression
11.3.1 Subgrove-spec
(subgrove-spec #!key node: subgrove: class: add: null: remove: children: sub: label: sort-children:)
11.3.2 Create-spec
(create-spec? obj)
(create-root obj sg)
(create-sub snl sg #!key property: label: result-path: optional: unique:)
(create-preced snl sg #!key label: result-path: optional: unique:)
(create-follow snl sg #!key label: result-path: optional: unique:)
11.3.3 Result-node-list
(node-list-union rnl ...)
(node-list-intersection rnl ...)
(children rnl)
(attributes rnl)
(preced rnl)
(follow rnl)
(parent rnl)
(ancestors rnl)
(descendants rnl)
(origin rnl)
(select-by-class rnl sym)
(select-by-property rnl sym proc)
(select-by-null-property rnl sym)
(select-by-missing-property rnl sym)
(select-by-relation rnl i proc)
(select-by-attribute-token rnl string1 string2)
11.3.4 Transform-grove-spec
(transform-grove-spec? obj)
(transform-grove snl obj ...)
(select-grove nl obj)
11.3.5 SGML Prolog Parsing
(sgml-parse-prolog string)
11.4 SGML Document Generator
11.4.2 Transliteration
(transliteration-map? obj)

12 Style Language

12.4 Flow Object Tree Construction
12.4.3 Sosofos
(sosofo? obj)
(empty-sosofo)
(literal string ...)
(process-children)
(process-children-trim)
(process-matching-children pattern ...)
(process-first-descendant pattern ...)
(process-element-with-id string)
(process-node-list ndlist)
(map-constructor procedure node-list)
(sosofo-append sosofo ...)
(sosofo-label sosofo symbol)
(sosofo-discard-labeled sosofo symbol)
(next-match)
(next-match style)
12.4.5 Styles
(style? obj)
(merge-style style ...)
12.4.6 Characteristic Specification
(inherited-c)
(actual-c)
(char-script-case string1 obj1 ... stringn-1 objn-1 objn)
12.4.7 Synchronization of Flow Objects
(sync sosofo1 sosofo2 #!key type: min: max:)
(side-sync list)
12.5 Common Data Types and Procedures
12.5.1 Layout-driven Generated Text
(generated-object? obj)
12.5.1.1 Constructing Indirect Sosofos
(general-indirect-sosofo procedure generated-object ...)
(asis-indirect-sosofo generated-object)
(number-indirect-sosofo generated-object #!key format: add: multiple:)
12.5.1.2 Layout Numbering
(page-number #!key first-area-of-node: last-area-of-node:)
(category-page-number #!key first-area-of-node: last-area-of-node:)
(page-number-in-node nd)
(total-node-page-numbers nd)
(column-number #!key first-area-of-node: last-area-of-node:)
(footnote-number symbol #!key first-area-of-node: last-area-of-node:)
(line-number symbol #!key first-area-of-node: last-area-of-node:)
12.5.1.3 Reference Values
(first-area-reference-value symbol #!key default: inherit:)
(last-area-reference-value symbol #!key default: inherit:)
(last-preceding-area-reference-value symbol #!key default:)
(all-area-reference-values symbol #!key unique: inherit:)
12.5.2 Length Specification
(+ length-spec ...)
(- length-spec ...)
(* length-spec x)
(* x length-spec)
(/ length-spec x)
(/ x length-spec)
(display-size)
12.5.3 Decoration Areas
(decoration-area sosofo #!key placement-point-x: placement-point-y: placement-direction:)
(decorated-area-width) (decorated-area-height)
12.5.4 Spaces
12.5.4.1 Display Spaces
(display-space? obj)
(display-space length-spec #!key min: max: conditional?: priority:)
12.5.4.2 Inline Spaces
(inline-space? obj)
(inline-space length-spec #!key min: max:)
12.5.5 Glyph Identifiers
(glyph-id? obj)
(glyph-id string)
12.5.6 Glyph Substitution Tables
(glyph-subst-table? obj)
(glyph-subst-table list)
(glyph-subst glyph-subst-table glyph-id)
12.5.7 Font Information
(font-property string list #!key size: name: family-name: weight: posture: structure: proportionate-width: writing-mode:)
12.5.8 Addresses
(address? obj)
(address-local? address)
(address-visited? address)
(hytime-linkend)
(idref-address string)
(current-node-address)
(entity-address string)
(sgml-document-address string1 string2)
(node-list-address node-list)
12.5.9 Color
(color-space string arg ...)
(color-space? obj)
(color color-space arg ...)
(color? obj)
12.6 Flow Object Classes
12.6.3 Simple-page-sequence Flow Object Class
(page-number-sosofo)
(current-node-page-number-sosofo)
12.6.4 Page-sequence Flow Object Class
12.6.4.1 Page-model
(page-model? obj)
12.6.5 Column-set-sequence Flow Object Class
12.6.5.1 Column-set-model
(column-set-model? obj)
12.6.27 Flow Object Classes for Tables
12.6.27.3 Table-column flow object
(table-unit k)

Variable Names Occurring in Procedure Prototypes

Variable naming has some consistency, and some meaning may be inferred from some of the names. Following each name that represents a variable is the count of occurrences in prototypes.

Links to sort groups: A B C D E G H I K L M N O P Q R S X

A

a 2
address 2
alist 1
arg 2
arg1 1
args 3

B

b 2
boolean 2

C

c 2
char 8
char1 11
char2 11
chars 1
color-space 1

D

dimlist 8

E

end 2

G

generated-object 3
glyph-id 1
glyph-subst-table 1

I

i 1
if-not-present 1
if-present 1

K

k 15
k1 2
k2 2
keyword 1

L

language 1
length-spec 8
list 21
list1 1
list2 1

M

marklist 1

N

n 3
n1 6
n2 6
nd 2
ndlist 1
nl 76
nl1 2
nl2 2
nmlist 1
nnl 4
node-list 2
number 4
obj 58

O

obj1 5
obj2 4
objn-1 1
objn 1
osnl 7

P

pair 30
pattern 6
proc 15
procedure 2
propname 6

Q

q 16
q1 25
q2 21
q3 10

R

radix 4
regexp 6
regexp1 3
regexp2 3
regexpn 3
rnl 16

S

sg 4
snl 34
snl1 2
snl2 2
sosofo 4
sosofo1 1
sosofo2 1
start 2
string 59
string1 21
string2 20
stringn-1 1
style 2
sym 8
symbol 17

X

x 20
x1 1
x2 1

See DSSSL Prototype Procedure Index for the above prototype procedures sorted, with subclause references.

DSSSL Syntax Summary Index begins the syntax summary.

Version 1.6 25 Jun 1996 original
Version 1.6.1 15 Jul 1996 clarified meaning of {core}.

Version 2.1 2002-10-24 Changed ISP from rcn to hbingham.com.

Harvey Bingham's home page
email hbingham@ACM.org

Copyright restrictions:
This material may be used freely for the purposes of studying DSSSL and promoting its application. This copyright notice shall be included in any subsequent copies. The author reserves the right to update this material and to determine the primary server on which it is available.