Ruler

ArieMiddelkoop

Strategies

RulerStrategy

Ruler data types

VwScGam

Environment for

Below is just a temporary dump of gathered information.

File layout

ARule AG rules
AttrProps? Direction of an attribute

Naming conventions

Wr Wrapper (around expressions)
Rw Complex (non-variable) expressions
Sc Scheme
Fm Format (tex, ag, haskell, spec?,constr?)
At Attribute (i.e. parameters of a type scheme)
Rn Rename

Things

Constr A Constr is an expression with a type (e \bar ty). Related to ECnstr and WrapConstr? . ECnstr: Ty(=names)/Var/Empty
AtProp? Properties of an attribute, such as Node, Thread, Retain, Extern, Inh, Syn. AtDir? is an Alias for AtProp? .
Expr A ruler expression (i.e. variables (Nm/ANm), applications, unique/retain)
Sel Dotted notation for sub/super/over script

Subversion revisions

Some history:

SVN Revision 3

Ruler is only used for lhs2TeX generation. A ruler file consists of declarations of two types: judgements and rules. A judgement contains a JExpr which denotes the type of the judgement (more a syntactic check than a type check, because the Cnstr mechanism isn't introduced yet). The JExpr is the definition of the judgement. A rule constains a bunch of RExprs as preconditions (above the line) and postcondition (below the line). An RExpr is either the use of a judgement or a condition, where a condition is just a normal JExpr.

Static analysis in this release amounts to verifying that all judgements are defined and that each use is syntactially correct (by unifying the definition of a judgment with a use-site of a judgement).

Translation to LaTeX? is straightforward in this revision: for each rule, create a latex version of a type scheme with pretty printed judgements below and above the line.

SVN Revision 11,13,44

Only cosmetic changes.

SVN Revision 55, 131

Some concept of aliasses was introduced (a predecessor of the "ag"-like attribute definition style)

SVN Revision 157

Introduction of views. Addition of keywords scheme, rule and lets. No inheritance between views. I have the impression that in this revision the scheme should encapsulate all views, and that for each view then the judgements are taken that belong to this view (possibly controlled by "viewas" instructions).

-- ArieMiddelkoop - 17 Nov 2006