SaffronDoc.tioga
Bill Jackson (bj) April 14, 1987 6:58:36 pm PDT
James Rauen, June 9, 1988 6:05:15 pm PDT
Last edited by: James Rauen July 25, 1988 3:29:25 pm PDT
Saffron
CEDAR 7.0 — FOR INTERNAL XEROX USE ONLY
Saffron
A prototype Cedar compiler
Howard Sturgis, Bill Jackson, James Rauen
© Copyright 1988 Xerox Corporation. All rights reserved.
Abstract: Saffron is a compiler for the Cedar language for experimentation. Its primary use right now is for Howard's research on semantics. Other potential projects seem to be developing...
saf|fron n.
1. A plant, Crocus sativus, native to the Old World, having purple or white flowers with orange stigmas.
2. The dried stigmas of this plant, used to color foods and as a cooking spice and a dyestuff.
3. Moderate or strong orange-yellow to moderate orange. In this sense, also called ''saffron yellow.'' See color. [Middle English saffran, from Old French safran, from Medieval Latin safranum, from Arabic za'faran.] --saf"fron adj.
Created by: Victor Shoup, Howard Sturgis, Bill Jackson
Maintained by: Bill Jackson <BJackson.pa>
Keywords: Casaba, Cedar, Type-theory, Programming Language Semantics
XEROX  Xerox Corporation
   Palo Alto Research Center
   3333 Coyote Hill Road
   Palo Alto, California 94304

For Internal Xerox Use Only
1. Main head 1
Subhead 1
Body
Subhead 2
Body
2. Organization
Primitive Functions
In the file SaffronBaseDecls.ThreeC4.
Concrete Grammar
In the file SaffronCG.ThreeC4. The concrete grammar is used to construct the parse tables. It is taken (almost verbatim) from the actual Cedar grammar. This file also contains Build rules which describe how to build an abstract parse tree.
Abstract Grammar
In the file SaffronAG.ThreeC4
Tree Recursive Function Declarations
In the file SaffronTreeDecls.ThreeC4. Contains a declaration for each function which is applied to the abstract parse tree or some of its subtrees.
Methods
In the file SaffronMethods.ThreeC4. Contains incremental definitions of the tree recursive functions.
Foo
In the file SaffronNoops.ThreeC4.
3. Foo. Bar!
Steps involved in building a local context.
Create a Field List
Create a field list cell for each name defined in the local context:
For each type declaration, make a named type graph node. The "type" field of the named tgn contains a type graph tree.
For each constant declaration, just hang on to the expression's parse tree.
For each variable declaration, just hang on to the expression's initialization.