next up previous
Next: Sentences Up: Syntax Previous: Lexical tokens

Right-hand-side expressions

  The expressions that may appear as the right-hand-sides of DATR\ equations are sequences of zerogif or more descriptors. Descriptors are defined recursively, and come in seven kinds. The simplest descriptor is just an atom or variable:

    atom1
    $var1

Then there are three kinds of local inheritance descriptor: a node, an (evaluable) path, and a node/path pair. Nodes are primitive tokens, paths are descriptor sequences (defined below) enclosed in angle brackets and node/path pairs consist of a node and a path separated by a colon:

    Node1
    <desc1 desc2 desc3 ...>
    Node1:<desc1 desc2 desc3 ...>

Finally there are three kinds of global inheritance descriptor, which are quoted variants of the three local types just described:

    "Node1"
    "<desc1 desc2 desc3 ...>"
    "Node1:<desc1 desc2 desc3 ...>"

A descriptor sequence is a (possibly empty) sequence of descriptors. The recursive definition of evaluable paths in terms of descriptor sequences allows arbitrarily complex expressions to be constructed, such asgif:

    "Node1:<"<atom1>" Node2:<atom2>>"
    "<"<"<Node1:<atom1 atom2> atom3>" Node2 "<atom4 atom5>" <> >">"
But the value sequences determined by such definitions are flat: they have no structure beyond the simple sequence and in particular do not reflect the structure of the descriptors that define them.

We shall sometimes refer to descriptor sequences containing only atoms as simple values, and similarly (unquoted) path expressions containing only atoms as simple paths.


Copyright © Roger Evans, Gerald Gazdar & Bill Keller
Wed Feb 26 12:00:02 GMT 1997