Home

Center

Page

Web

Wiki

# Ruler

ArieMiddelkoop

## 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