Layer 0: Syntax
INTERSCRIPT/INTERCHANGE/1.0
{ -- body of the script -- }
ENDSCRIPT
INTERSCRIPT/INTERCHANGE/1.0
{Text$ "Now is the ... party." "A second string"
font←{Font$ name←Helvetica}}
ENDSCRIPT
INTERSCRIPT/INTERCHANGE/1.0
{Paragraph$ lineJustification←T leftMargin𡤁.0*inch
{Text$ "Now is the ... party." "A second string"
font←{Font$ name←Helvetica}}
}
ENDSCRIPT
INTERSCRIPT/INTERCHANGE/1.0
{BarChart$
xEdge←{edge | range←{1970 1980} delta𡤁 lbl←"Year"}}
yEdge←{edge | range←{0 11.5} delta𡤀.5
lbl←"Corn(tons)"}
{1970 7.7} {1980 11.2} {1973 7.8}
}
ENDSCRIPT
Layer 1: Semantics
value space: atoms, numbers, strings, nodes, quoted expressions
bindings and content
structure: bindings, evaluation
scope for names
external environment
The Interscript semantic function maps a script into a tree-like representation
two scripts are equivalent if their semantic representations are equal
Safe Editing
A tag on a node is like a type in Mesa
A tag definition specifies
relevant attributes
other required tags
allowed parent tags
type of the contents
a node invariant
what more basic tag it can be reduced to (if any)
Tag definitions enable an editor to deal safely with nodes with tags that it doesn't directly implement (deletion, copying, moving)
Standard Document Constructs
Document$
Measure$: {under, nominal, over}
Span$: measures to define end points, distances from sibling spans, distances from enclosing span
Box$: two spans
Page$
Text$, Font$, PseudoChar$
Paragraph$
TextField$
TextRemoteContent$
Together$
Table$: TableHeading$, TableRow$, TableEntry$
Inked$
InterPress$
Caution$
Layout
Everything is defined in terms of boxes
Solid layout
Layout with templates: Pouring streams, labels
Pours and penalties: fences
Multi-level pours
Contents of the Draft Standard
1. Introduction
2. The Language Basis: Syntax, Semantics, and Encoding
3. Tag Declaration, Node Invariants, and Safety Rules for Editors
4. Standard Document Constructs
5. Layout
6. Other Constructs
7. Pragmatics
Appendix A: Glossary
Appendix B: Example of Script Evaluation
Index